본문 바로가기

Android

(32)
Static interface methods are only supported starting with Android N (--min-api 24) AndroidX 로 Refactor 후 apk를 빌드하면 에러가 발생할 수 있다. 나의 경우 발생한 정확한 에러는 아래와 같다. Static interface methods are only supported starting with Android N (--min-api 24): androidx.browser.trusted.TrustedWebActivityDisplayMode androidx.browser.trusted.TrustedWebActivityDisplayMode.fromBundle(android.os.Bundle) 조금더 상세한 내용은 아래 링크를 참고하도록 하자. https://android.jlelse.eu/features-of-revolutionary-release-java-8-for-an..
[RealRank] 네이버/다음 실시간 검색어 (8) - Widget Provider 2020.02 업데이트 위젯 레이아웃까지 만들고 나면 마지막으로 실제 위젯 동작을 기술하는 WidgetProvider를 생성한다. WidgetProvider.java package sa.devming.realrank.widget; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; import android.widget.RemoteViews; import java.text.DateFormat; import java.util.Arra..
[RealRank] 네이버/다음 실시간 검색어 (7) - Widget Layout 2020.02 업데이트 위젯은 위 모양처럼 만들어지게 된다. 좌우로 검색어 10개씩 보여지며 중앙에 재조회 버튼을 통해 수동으로 갱신할 수 있다. 아래에는 업데이트한 시간을 보여주어 아직 살아있음을(?) 체크할 수 있다. 첫 게시물처럼 AndroidManifest.xml 을 만들었다면 아래부분을 확인할 수 있다. 아마 지금까지 에러가 났거나 센스가 있었다면 주석을 해놓았을 것이다. 위젯의 각종정보를 widget_provide_info 에 기술하고, 실제 java는 WidgetProvider 에 기술한다. res/xml/widget_provider_info.xml initialLayout - 위젯의 레이아웃이 정의된 xml 위치 minHeight / minWidth - 최소 위젯 사이즈 정의 - https..
[RealRank] 네이버/다음 실시간 검색어 (6) - jsoup 2020.02 업데이트 이 앱을 만들게 된 시작은 jsoup 때문이었다. 누군가 html parser로 좋다고 해서 보다가 한번 사용해보자고 한 것이...ㅎ jsoup은 아래 사이트에서 다운로드 가능하며, maven, gradle 등 가이드가 잘 되어있다. https://jsoup.org/download Download and install jsoup Download and install jsoup jsoup is available as a downloadable .jar java library. The current release version is 1.12.2. What's new See the 1.12.2 release announcement for the latest changes, or the ..
[RealRank] 네이버/다음 실시간 검색어 (5) - AsyncTask 2020.02 업데이트 Fragment가 선택되면 각 검색 사이트에 접속해서 필요한 정보를 가져와야 한다. 안드로이드에서는 네트워크나 이미지등을 로딩할때는 반드시 비동기작업으로 코딩해야 한다. 핸드폰이 뻗는걸 막기위한 것으로 동기작업으로 코딩하면 알아서 에러가 난다. 참 친절하다. Fragment에서 RRAsyncTask() 를 호출할 때, 마지막 변수를 콜백함수를 정의했다. AsyncTaskCallBack.java package sa.devming.realrank.network; public interface AsyncTaskCallBack { void onSuccess(); } 웹으로 부터 데이터를 가져오는 asynctask에 사용될 콜백함수이다. 통신에서 많이 사용되는 구조로 통신결과를 caller..
[RealRank] 네이버/다음 실시간 검색어 (4) - ListView 2020.02 업데이트 각 Fragment 에 ListView가 있고, 해당 list에 리스트를 만들어 줘야 한다. 리스트는 각 item 레이아웃을 가지고 있고, adapter에서 전체 리스트를 조립한다. rank_listview_item.xml 구조는 [검색어 순위와 내용] + [업다운 숫자] + [업다운 이미지] 이다. 네이버는 여기에서 [업다운 숫자]를 보이지 않게 하고, [업다운 이미지]를 차트 이미지로 대체할 것이다. 현재는 사이틑 개편으로 모두 없어졌으며, 심지어 다음은 실시간 검색을 폐지 하였다 (2020.02) RRListItem.java package sa.devming.realrank.adapter; public class RRListItem { private String rank; p..
[RealRank] 네이버/다음 실시간 검색어 (3) - ViewPager 2020.02 업데이트 앞 글에서 FragmentStatePagerAdapter 를 사용하여 자동으로 상태관리를 맡기기로 했다. 그러므로 여기서는 각 Fragment를 잘 정의하면 된다. pager에 들어갈 첫번째 Fragment는 네이버 사이트에 대한 것이며 layout는 아래와 같다. naver_fragment.xml / daum_fragment.xml RelativeLayout - 두 xml의 차이는 @+id/naverRefresh 부분이 @+id/daumRefresh 로 다를 뿐이다. 나머지는 알파벳까지 동일하다. com.baoyz.widget.PullRefreshLayout - 이름에서 알 수 있듯이 ListView를 아래로 당기면 새로고침을 할 수 있는 라이브러리이다. - 라이브러리를 추가하는..
[RealRank] 네이버/다음 실시간 검색어 (2) - MainActivity 2020.02 업데이트 이번에는 메인이 되는 리스트 Activity를 살펴보자 layout은 좌우로 스크롤이 되는 리스트뷰이며 상단의 이미지버튼을 클릭해도 이동이 되는 구조이다. activity_main.xml 구성은 의외로 간단하며 무식(?)하다. RelativeLayout - 나는 개인적으로 가장 외부는 특별한 일이 없다면 RelativeLayout으로 구성한다. - 요즘은 더욱 다양한 Layouy 컴포넌트가 있지만 개취라고 생각하면 된다. ㅎ LinearLayout - 가로 형태의 LinearLayout을 선언하고 높이를 고정으로 설정한다. 이유는 이미지이다 보니 적당한 높이를 잡아준다 - 두개의 ImageView 와 사이에 회색 세로 구분자를 넣어준다. - ImageView에서 중요한 것은 bac..