728x90

IT/Android 49

ADB 명령어로 스마트폰에서 앱 삭제하기(삼성 갤럭시, LG G/V시리즈)

사실 LG폰 뿐만이 아니라, 삼성폰에서도 사용자는 원치 않지만 미리 설치되어 있는 앱들이 상당히 많다. 안드로이드 운영체제를 쓰는 스마트폰 특성상 현재 사용하지 않는 앞으로도 사용하지 않을 것 같은 구글 앱들도 상당히 많은 것이 현실이다. 물론 설정 -> 앱 -> 안쓰는 앱을 지우거나 사용 안함으로 하면 되지만 이렇게 해서는 완벽하게 깔끔하게 지울 수 없다. 이번에는 ADB 명령어를 통해서 깔끔하게 삭제하는 방법을 안내한다. 스마트폰에서는 사전에 개발자 모드를 켜야 한다. adb shell pm uninstall -k --user 0 의 명령어를 사용하여 앱을 삭제하도록 한다. 패키지 이름은 아래의 명령어로 알 수 있다. adb shell pm list package -f | findstr adb she..

IT/Android 2019.04.23

[해상도 변경] Pixel 2 XL(픽셀2XL) 해상도 변경하기(QHD+ 를 FHD+ 로)

사실 픽셀2XL을 사용하면서 사용성이나 성능에 불만을 가진 적은 없다. AOSP 순정을 계속 써온 것도 이유이고, 스냅835가 탑재된 이후로 사진, 게임, 인터넷, 배터리 타임 등에서 타회사 기기와 별 차이가 없거나 발군의 성능을 발휘하고 있기 때문이다.그럼에도 불구하고 해상도 변경 포스팅을 하는 이유는..그냥 더 쾌적하고 더욱 부드럽게 쓰기 위한 소소한 튜닝 정도로 볼 수 있다. 해상도 변경 방법은 굉장히 간단하다. 1080x2160 이 요즘 말하는 FHD+ 해상도이다.> adb shell wm size 1080x2160 해상도 변경 확인 명령어> adb shell wm sizePhysical size: 1440x2880 (실제 기기 해상도)Override size: 1080x2160 (설정한 해상도)..

IT/Android 2019.03.08

[Android] Recyclerview 에서 마지막 아이템 판단하는 방법(Detect when the RecyclerView reaches the bottom)

최근 안드로이드에서는 리스트뷰(Listview) 대신 리사이클러뷰(Recyclerview)를 사용하는 추세로 흘러가고 있다. 리스트뷰의 단점인 메모리 관리나 리스트 레이아웃의 제한적인 기능을 보완할 수 있기 때문이다. 리사이클러뷰를 사용하면 구글 킵처럼 2개의 열에 다양한 크기의 리스트 아이템을 보여주는 것도 가능하고(staggeredGridLayoutManager) 메모리 관리 면에서도 장점이 있다고 한다.각설은 여기까지 하고, 리사이클러뷰를 사용하면서 마지막 아이템을 판단하는 부분이 은근 사용할 곳이 많다. 마지막 아이템이 보여지면 그 다음 데이터를 로딩한다거나.. 마지막 아이템이 보여질때 풋터(Footer)를 추가한다거나 하는 등의 작업을 할때 유용하다. 주로 전자의 경우 많이 사용하게 될 것이다...

IT/Android 2019.02.08

[Android] consider adding at least one Activity with an ACTION-VIEW intent filter. 에러 해결

최근 안드로이드 개발을 하다보면 이전에는 볼 수 없었던 에러 or 경고가 발생하는 것을 알 수 있다.AndroidManifest.xml 에서 아래와 같은 경고가 발생하는 것을 볼 수 있다.App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter. See issue explanation for more details. 이 경고를 해결하는 법은 아주 간단하다. 아래의 소스처럼 android.intent.action.VIEW 액션을 한 줄 추가해준다. 저 경고를 좀 더 살펴보면 아래와 같은 메세지를 볼 수 있다.App is not indexable by Google Se..

IT/Android 2019.01.29

[VoLTE] Pixel 2 XL Volte 활성화(볼테, IMS)

현재 Pixel 2 XL 은 국내에서 Volte(이하 볼테) 서비스가 불가능한 상태이다. 모뎀 쪽에서 국내에 맞는 볼테 파라미터가 활성화가 제대로 안되고 있는 것이 문제인 것으로 보이는데, 이 파라미터들을 강제로 활성화 시켜주면 볼테가 될 것이라 예상이 된다.꾸준히 검색을 하던 도중 XDA 포럼에서 픽셀2XL의(이하 큰픽2) 볼테 활성화 관련 글을 보게 되었다, https://forum.xda-developers.com/pixel-2-xl/how-to/guide-qxdm-port-activation-pixel-2-xl-t3884967 위의 사이트에 가서 필요한 파일을 다운 받도록 한다. Nokia8_835.zip Pixel 2 Diag Port.zip Magisk-uninstaller-20181231.z..

IT/Android 2019.01.24

[Notification] 안드로이드 앱 중복 실행 문제 완벽 해결 방법

안드로이드 애플리케이션을 개발하다 보면 대부분의 개발자들이 필수적으로 겪는 문제가 있다.1. 앱 사용중 알림을 누르면 앱이 중복으로 실행되는 문제. 2. 뷰페이져 갱신 문제.위 2개의 문제는 아주 흔하게 겪는 문제인데, 해결 방법이 찾기가 어렵다. 검색을 해보면 많은 해결 방법들이 우리를 기다리고 있지만 내가 원하는 방향으로 해결되지는 않고.. 흔한데 해결하기 어려운 문제이다.2. 뷰페이저 갱신 문제는 내 블로그에도 포스팅이 되어 있지만 완벽한 해결방법도 아니고, 성능 또한 떨어지는 문제가 있다. 최근 완전한(?) 꼼수(?) 해결방법을 찾아냈고,(구글링으로 계속 찾아봤지만 원하는 답변은 없었고, 결국 뷰페이저 어댑터를 잘 사용하는 것으로 문제를 해결해냈다.) 곧 포스팅 할 예정이다. 기존 포스팅은 [IT..

IT/Android 2019.01.21

[Android] switch error : constant expression required

안드로이드 뿐만 아니라 자바로 프로그래밍 할 때 switch 문을 많이 사용하게 된다.그 때 간혹 "constant expression required" 라는 에러를 마주치는 경우가 있다. 처음 겪는 개발자라면 뭐가 문제인지 몰라서 삽질을 하는 경우가 발생한다.에러가 발생하는 원인은 case에서 사용하는 상수의 경우 반드시 final 로 선언이 되어야 한다는 것이다.아래의 예제에서 RC_SIGN_IN에 final 이 붙어 있지 않으면 위의 에러가 반드시 발생하게 된다.상수로 처리되는 구문의 경우는 무조건 final을 붙여서 변수 값이 변동되지 않도록 한다.public static final int RC_SIGN_IN = 9001; switch (requestCode) { case RC_SIGN_IN: /..

IT/Android 2018.12.04

[OKHttp3] java.lang.NullPointerException: Attempt to get length of null array / BasicTrustRootIndex 관련 에러 처리

오늘은 OKHttp3 에서 발생하는 에러 처리를 다루어 보겠다.OKHttp3에서 원활한 https 를 접속하기 위해서 대부분 인증서를 무시하는 코드를 함께 넣어서 client 를 빌드해서 사용하는 경우가 많다.그 때 흔하게 발생하는 에러 중 하나는 아래의 에러이다.java.lang.NullPointerException: Attempt to get length of null array,BasicTrustRootIndex 관련 메세지들.. 위의 에러는 주로 아래 코드가 문제가 된다. 아래의 getAcceptedIssuers() 의 return null; 이 부분이 문제./** * UnCertificated 허용 */ public static OkHttpClient.Builder configureClient(..

IT/Android 2018.11.29

Json 파싱 이해하기. (JsonObject, JsonArray, JsonElement)

안드로이드나 자바를 개발하다 보면 Http 통신을 사용해야 하는 경우가 대부분이다. 디바이스 자체에서 알아서 돌아가는 단독앱(Standalone)은 안드로이드 초창기에나 있었고 지금은 자취를 거의 감춘 상태이다. 최소한 광고라도 붙이기 때문에 Http 통신과 관련된 응답(Json, Xml) 처리는 중요하다. 이제 응답 형식도 Json이 보편화되고 있기 때문에 개념을 잘 이해하고 있어야 한다. Json은 JavaScript Object Notation 의 약자이고, 데이터 교환 형식 중 하나이다. Json은 데이터만 봐도 내용을 이해하기 쉽기 때문에 좋다. 각설은 여기까지 하고 Json 파싱을 살펴보자. Json의 형식은 대충 아래와 같다. jsonObject 내용 { "status":"1", "messa..

IT/Android 2018.11.08

Android OKHttp3 에서 발생하는 NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/Platform

안드로이드에서 OKHttp를 사용하여 웹과 통신하는 경우가 빈번하다.OKHttp3 를 사용하다보면 발생하는 에러 중 하나가 다음과 같다. Error java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/Platform; OKHttp 에서 필요한 클래스를 찾지 못해서 발생하는 에러이다. App build.gradle로 가서 OKHttp3 의 버전을 업그레이드 하면 대부분 해결이 된다. implementation 'com.squareup.okhttp3:okhttp:3.4.1' implementation 'com.squareup.okhttp3:okhttp-urlconnection:3.4.1' implementation 'com.squa..

IT/Android 2018.11.08
728x90