목록안드로이드 개발 (49)
일모도원(日暮途遠) 개발자
xml에서 UI의 ID를 주기위해서 android:id="@+id/button"이런씩으로 이름을 주는데 가끔 id앞에 "+"가 없이 android:id="@id/image" 이런씩으로 있는 경우가 있다. id는 R.java에 자동으로 생기는데, "+"는 없으면 R.java에 해당 아이디를 만들고 있으면 그걸 쓰라는 뜻이다. 그럼 "+"없으면? 그건 있는걸 쓰라는 뜻이다. R.java에 없으면 새로 만들지 않고 에러를 낸다. 당연히 "@+id/"를 쓰자. XML파싱은 위에서 아래로 순차적으로 하기 때문에 만약 아래처럼 "+"가 위의 Button에 만 있고 Button안에서 참조하는 "@id/image"에 +가 없다면 에러가 난다. (여기서 image란 id를 찾지못해서 에러가 남) 해결책은 ImageVi..
갑자기 아래처럼 id에 빨간색이 나온다. 이럴 때는 당황하지 말고 안드로이드 스튜디오를 껏다 켜자. (아님 아래처럼 File - Invalidate Caches로 확실하게 껏다 켜자)
버전코드와 버전이름을 올려준다. “버전코드”는 GooglePlay 에 공개할 때 사용하는 것으로 이전 보다 높으면 앱을 갱신하한다. 정수형으로 보통 1 로 시작해서 2, 3, 4 와 같이 업데이트 될 때마다 증가시켜 준다. “버전이름”은 버전코드와 달리 유저가 확인할 수 있는 정보로 앱 갱신에 영향을 주지 않는다. 역시 갱신할때마다 올려주는게 좋다. Build - Generate Signed Bundle / APK...를 선택한다. 요즘은 APK보다 App Bundle로 많이 한다. (용량이 더 작아진다) jks파일은 잃어버리면 안되니 백업을 잘해두자. 제출하고자 하는 Build Variant를 선택한다. 구글플레이에 제출할려면 Release를 선택해야 한다. 빌드가 끝났으면 우측하단에 메시지가 뜬다. ..
가끔 남의 소스를 볼일이 있을때, 어느 액티비티가 제일 먼저 실행되는지 궁금할때가 있다. 그럴땐 AndroidManifest.xml 파일을 먼저 찾자. 단축키로는 쉬프트키를 두번 누르면 팝업이 뜨는데, 여기서 찾고자 하는 파일명을 넣으면 쉽게 찾을수 있다. 그다음에는 android.intent.action.MAIN 를 포함하는 액티비티를 찾으면 된다. 아래의 경우는 SampleChooserActivity 가 앱이 실행될때 제일먼저 생성되는(main entry point) 메인 액티비티이다. android.intent.category.LAUNCHER는 이 액티비티를 application launcher에 등록하란 뜻이다. application launcher에 등록되어야지만 폰의 홈 스크린에 앱이 보인다...
만들고 있는 AraPlayer에서 동영상을 플레이하고 있으면, 일정시간이 지나면 화면이 약간 흐려지고, 나중에는 화면이 꺼진다. (전원이 연결되어 있어도 그렇다.) 게임이나 영화 앱 같은 특정 앱은 화면이 켜진 상태를 유지해야 할때는 FLAG_KEEP_SCREEN_ON을 사용해보자. (Activity에서만 사용하고 서비스나 다른 앱 구성요소에는 절대 사용하면 안 된다고 한다.) @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } @Ove..
보니까 안드로이드 소스에서 적절한 시기에 별점과 리뷰요청해서 앱내에서 별점과 리뷰를 적는 방법도 있는거 같다. 근데 복잡해 보여서 그냥 수동으로 메뉴를 누르면 구글 플레이에 있는 앱을 열어 주면 별점과 리뷰를 적는식으로 구현했다. 매우 간단하다. 리뷰 요청 버튼을 누르면 아래를 호출하도록 하자. public void rateApp() { activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID))); } 그러면 자동으로 구글플레이가 열리면서 별점과 리뷰를 작성할수 있다. 앱을 SNS로 공유하는 기능은 여기를 참고.
앱을 만들어서 친구들한테 얘기하니 어떤 앱이냐고 알려달라고 한다. 근데 앱 URL을 알려주는 기능을 앱에 추가를 안해서 구글 플레이에서 찾아보라고 했는데, 검색해도 안 나왔다. -_- 그래서 부랴 부랴 알아보니 간단하다. 그냥 아래 코드를 SNS 공유하기 버튼을 눌렀을때 사용하면 된다. (왜 진작 안했을까 -_-) Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); String appUrl = "http://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID; sendIntent.putExtra(Intent.EXTRA_TEXT, appUrl); sen..
Debug모드에서는 이상이 없는데 Release모드에서 Run을 하면 아래와 같은 에러가 나왔다. Execution failed for task ':app:extractAraplayerReleaseNativeDebugMetadata'. > NDK is not installed 검색 해보니 NDK(Native Development Kit)와 CMAKE를 최신으로 설치하라고 한다. Android NDK는 C 또는 C++('네이티브 코드')를 Android 앱에 삽입할 수 있게 해주는 도구 집합이다. CMAKE는 소프트웨어 프로젝트를 위한 오픈소스 빌드 매니저이다. Tools - SDK Manager를 선택하자. SDK Tools탭으로 가자 NDK와 CMake를 체크하고 OK 클릭. 아래처럼 설치하겠냐고 묻는..