본문 바로가기
[android] PackageManager 와 ActivityManager. 그리고 Intent 이야기 안드로이드, PackageManager 와 ActivityManager. 그리고 Intent 이야기 PackageManager 이야기. PackageManager 는 폰이 최초 실행될 때 system/app, data/app 등의 위치를 검색하며 APK 파일들의 매니페스트 파일을 조사해 intent 에 관련된 내용들을 모두 system 에 등록시켜 놓는다. 새롭게 패키지가 추가되거나 삭제될 때 발생하는 broadcast intent 를 수신하여 등록된 정보를 갱신하는 일도 수행한다. ActivityManager 이야기 ActivityManager 는 인텐트를 수신받으면 PackageManagerService 를 통해 Intent 에 부합하는 컴퍼넌트 정보를 다져온다. 그 다음 해당 컴퍼넌트의 상태 정보와.. 2013. 11. 8.
[android] how can I detect if notification clear button is clicked? android, how can I detect if notification clear button is clicked? [En] Very easy.When you make Notification instance, just add delete intent with setDeleteIntent() method. private Notification getNotification( Context context, Intent intent, String pushMessage ){int notiCount = Application.getNotiMessageCount();NotificationCompat.Builder builder = new NotificationCompat.Builder(context).setSmal.. 2013. 10. 16.
[android] 안드로이드 개발 10계명 안드로이드 개발 10계명 ( 명심해야 할 10가지 ) 1. 앱 구성요소간 데이터를 주고받을 경우, Extra 로 여러값을 따로따로 전달하기보다는 Parcelable 을 사용하는 것이 유지보수에도 쉽고 성능이슈도 있다. Serialization 도 방법이긴 하지만 안드로이드에서는 Parcelable 이 Serialization 보다 더 효율적이다. 2. UI 와 관련된 코드를 제외한 다른 Heavy 한 모든 일은 다른 thread 를 만들어 수행해야 한다. 3. Object Cache 를 적극 활용하자. ( Object Pool 패턴사용이 추천된다. ) 안드로이드의 GC 는 폰이 버벅대는 효과를 가져오는 1등공신(?) 이다. 4. ListAdapter 내부에서는 오랜 시간이 소요되는 연산을 수행하지 않는다.. 2013. 9. 24.
[android] Gallery 로부터 사진 Crop 하며 Pick 하기 sample code. 안드로이드, Gallery 로부터 사진 Crop 하며 Pick 하기 sample code. 사진 찍으면서 크롭까지 하는 샘플 코드. Gallery 혹은 iPhone 용어로 Album 에서부터 Image ( 사진 ) 을 Crop 하며 Pick 하는 방법에 대한 Sample Code 를 제공한다. private static final int REQUEST_CODE_PROFILE_IMAGE_PICK = 545; private static final String TYPE_IMAGE = "image/*";private static final int PROFILE_IMAGE_ASPECT_X = 3;private static final int PROFILE_IMAGE_ASPECT_Y = 1;private static.. 2013. 8. 3.
[android] Service 함수 onStartCommand return 값의 의미. 안드로이드, Service 함수 onStartCommand return 값의 의미. onStartCommand 의 return 값에 따라, 메모리 부족 현상이 발생했을 때 service 가 죽고, 메모리 여유가 생겨 다시 start 되었을 때 동작을 정의할 수 있다. ( 메모리 부족현상이 생기면 안드로이드 프레임워크가 Background로 돌고 있는 Service 를 죽일 수 있다는 것은 다들 알고 있다고 가정하겠다. ) START_STICKY Service 가 재시작될 때 null intent 가 전달된다.따라서 START_STICKY 는 전달받은 intent 값으로 어떤 일을 처리하지 않을 때 사용해야 한다. START_NOT_STICKY Service 가 재시작되지 않는다.이는 Service 가 지.. 2013. 7. 25.
[android] framework FAQ 안드로이드, framework FAQs 하나의 어플에 포함되어 있는 모든 Activity 와 Service 들이 하나의 프로세스에서 동작해? 메니페스트에 android:process 를 따로 기술하지 않는 한 네개의 기본 Component 들 ( Activity, Service, BroadcastReceiver, ContentProvider ) 는 모두 한 프로세스에서 동작한다. Component 간 Data 공유는 어떻게 해? Primitive type 들은 Intent.putExtra() 를 통해서 내용전달을 할 수 있다. Preference 에 저장하여 공유할수도 있다.Application 클래스에 저장하여 공유한다.public static 변수로 공유한다. 이 방법은 추천되지 않는다.Object .. 2013. 7. 24.
[android] Launcher( HomeScreen ) 에 shortcut( 바로가기 ) 생성하기 Launcher( HomeScreen ) 에 Shortcut( 바로가기 ) 생성하기 폰을 처음켰을 때 나오는 어플.소위 말하는 HomeScreen 이라 부르는 녀석의 본래 이름은 Launcher ( 런처 ) 이다. 이 런처에 Shortcut 을 추가하는 코드를 설명한다. Manifest 에 권한설정 저 권한이 있어야만, 해당 앱에서 Launcher 에 Shortcut 을 설치( Install ) 하라는 명령을 내릴 수 있다.참고로, 일반적인 규칙을 따른 런처는 저 INSTALL_SHORTCUT 을 구현했겠지만,간혹가다 개인이 만든 런처의 경우 이 녀석을 구현 안 하는 경우도 있다. Shortcut 추가를 구현하지 않은 Custom Launcher 를 사용하면서, "이 코드를 따라했는데 왜 무작정 안돼?".. 2013. 6. 24.
[android] Map intent. 참조 : 안드로이드 디벨로퍼 사이트 // with zoom level String geoInfo = "geo:" + latitude + "," + longitude + "?z=" + zoomLevel; or // with pin String geoInfo = "geo:0,0?q=" + latitude + "," + longitude + "(" + name + ")"; Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( geoInfo ) ); startActivity(intent); 도움이 되셨다면 손가락 꾸욱~ ( 로그인 필요 x ) 2012. 12. 27.
반응형