이번 포스팅에서는 android studio 에서 layout 작업을 하면서 많이 만나는 tools 속성에 관해 소개한다. Ref 영문의 압박이 있지만 구글에서 설명한 tools attribute 에 대한 설명도 참조해보자 https://developer.android.com/studio/write/tool-attributes Error handling attributes tools:ignore 지정한 lint error 를 무시한다. 예를들어, 하단과 같이 설정하면 다국어 관련 lint error 가 발생하지 않는다. 하지만 가급적 lint error 를 생략하지 말자!! tools:targetApi Java code 의 @TargetApi 와 같은 역할을 한다. 예를들어, 하단과 같이 targetAp..
Android target SDK 를 Android M(API level 23) 이상부터 runtime permission 정책이 적용되어 camera 를 사용할 경우 camera permission 의 권한을 사용자에게 획득 해야 한다. 이번 포스팅에서는 camera permission 권한 없이 camera 를 사용하는 방법을 소개한다. 1. Main activity 구현 2. Manifest 등록 - Android N (API level 24) 부터 file URI 사용 시 발생하는 FileUriExposedException 을 피하기 위해 FileProvider 사용 3. Camera 를 이용한 image capture 구현 - Camera 사용을 위해 "ACTION_IMAGE_CAPTURE" 를..
Android target SDK 를 Android O(API Level 26) 이상으로 하고 startService 를 호출하면 아래와 같은 exception 이 발생한다. Caused by: java.lang.IllegalStateException: Not allowed to start service Intent Android O 부터 백그라운드 실행 제한이 적용되었기 때문이다. 백그라운드 실행 제한 | Android Developers Background vs Foreground Service Background service 일반적인 형태의 서비스로 메모리 자원이 부족할 경우 Low Memory Killer 에 의해 강제 종료 될 수 있음. onStartCommand() 에서 서비스 종료 시 동작..
bindService 구현 하단 예제 코드는 단일 process(package) 에서 동작하며 단방향 통신만 가능하다. 다른 process 의 특정 함수나 callback 을 받는 예제는 다음편을 참조하자. 1. Service 구현 2. Manifest 등록 하단 service 를 아래와 같이 새로운 process 로 정의하면 ClassCastException 을 만날 수 있다. 3. Layout 생성 4. MainActivity 위 예제는 하단 link 에서 확인할 수 있다. https://github.com/parkho79/ServiceSample2 bindSetvice 를 이용한 양방향 작업 구현은 4편에서 다룬다.
Service? 사용자 인터페이스(GUI) 없이 background 에서 동작하는 component (Android 4대 component : Activity, Service, Broadcast receiver, Contents provider) Background 때문에 혼동할 수 있지만 사실 service 는 main thread 에서 동작한다!! 왜? 1. Activity 가 종료되어 있는 상태에서도 동작한다. : Activity 에서 thread 사용 시 별도의 종료가 없다면 activity 가 종료되어도 thread 는 계속 동작한다. 하지만, activity 가 종료되면 activity 의 생명주기에 맞춰 thread 도 종료 시켜주는게 바람직하다. 즉, 앱이 종료되어도 thread 가 동작해..
Version code - 정수값, 플레이 스토어에서 버전 구분용으로 사용 - 내부 버전 번호로 사용. - 이 번호는 하나의 버전이 다른 버전보다 최신인지 여부를 판단하는 데만 사용되며, 번호가 높을수록 더욱 최신 버전임. - 사용자에게 표시되는 버전 번호가 아님(사용자에게 표시되는 번호는 version name) Version name - 플레이 스토어에서 사용자에게 보여주기 위함. - 문자열이며, 사용자에게 표시되는 버전 번호로 사용됨. - 이 설정은 원시 문자열이나 문자열 리소스에 대한 참조로 지정할 수 있다. - 이 값은 문자열이므로 앱 버전을 .. 문자열이나 다른 유형의 절대 또는 상대 버전 식별자로 사용. - Version name은 사용자에게 표시하는 것 이외에 다른 용도는 없다. [Grad..
API level 확인하러 매번 검색했는데 블로그를 쓰기 시작하면서 정리했다. (https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Platform Version API Level VERSION_CODE Notes Android 14 34 UPSIDE_DOWN_CAKE Platform Highlights Android 13 33 TIRAMISU Platform Highlights Android 12 32 S_V2 Platform Highlights 31 S Platform Highlights Android 11 30 R Platform Highlights Android 10 29 Q Platform Highligh..
안드로이드 스튜디오의 auto import 시 package name 이 따라 붙는다. 예를 들어 하단과 같은 상황에서 public class Foo { public static class Bar { } } Bar 인스턴스를 사용하는 경우 Bar bar = new Bar(); auto import 가 친절하게 요렇게 바꾸어 준다. import package.Foo; Foo.Bar bar = new Foo.Bar(); 하지만 하단 처럼 class 만 명시하고 싶은 경우가 있다. import package.Foo.Bar; Bar bar = new Bar(); 이럴때 하단 옵션을 체크하자! - Insert imports for inner classes
- Total
- Today
- Yesterday
- onContextItemSelected
- bindservice
- Android Service
- task
- 앱테크 추천
- android intent
- p2e
- 앱테크
- registerForContextMenu
- StartService
- Intent
- StringUtils
- 안드로이드 인텐트
- android task
- mPANDO
- task 생성
- android flag activity
- 무료 채굴
- RoomDatabase
- WEMIX
- 안드로이드 서비스
- onCreateContextMenu
- 무료채굴
- 리워드 어플
- 채굴앱
- notifyDataSetChanged
- BroadcastReceiver
- android activity flag
- 리워드앱
- M2E
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |