Task Manager에서 Activity Finish가 일어나면 Activity Manager는 즉각적으로 Task리스트에서 해당 Activity는 사라지게 된다. 비록 onDestory가 일어나지 않는다고 하더라도 이런 변화로 인해서 순간적인 Top Activity의 변화를 정확히 잡아내기 어려운 현상이 생겼다. 해결 방법은 아직 못찾았다. Activity Manager는 System Server내에 위치 하는 서비스이다. 관련해서 자세히 나온 슬라이드는 다음 링크를 확인 하면 된다. www.slideshare.net/opersys/understanding-the-android-system-server 추가적으로 내용을 남기자면 안드로이드 소스내에 Platform_frameworks_Base > Se..
Android TV APP으로 정의 Manifest.xml android.intent.category.LEANBACK_LAUNCHER" 정의 해야함 앱 아이콘 등록 기본적으로 Android는 상위와 같은 형태로 App Icon을 표시하는데 TV 용 아이콘은 Banner를 사용한다 이미지 사이즈는 배너는 크기가 320 x 180픽셀인 xhdpi 리소스 로 정의해서 처리 하면 된다. 그런데 216 x 122 픽셀로 해도 문제가 없는거 같다. android:banner = "@drawable/videos_by_google_banner" 안드로이드TV와 일반 안드로이드 단말의 앱이 호환 되는 경우와 안드로이드 TV만 사용하는 앱으로 설정 할 수 있는 방법이 있는데 다음과 같이 feature를 설정해 주면 된다...
https://stackoverflow.com/questions/40397443/how-to-add-extra-permission-to-a-prebuilt-application-no-source-code-in-aosp How to add extra permission to a prebuilt application (no source code) in AOSP I have an application that doesn't have a specific android permission(for example android.permission.CHANGE_CONFIGURATION). I don't have its source code. I'm working on an AOSP. I prebuilt this sta..
테스트 mp4파일 받기 com.android.grafika public static void initialize(Context context) { ContentManager mgr = getInstance(); synchronized (sLock) { if (!mgr.mInitialized) { + mgr.mFilesDir = context.getExternalFilesDir(Environment.DIRECTORY_MOVIES); - // mgr.mFilesDir = context.getFilesDir(); mgr.mContent = new ArrayList(); mgr.mInitialized = true; } } } app 인터널 storage를 external로 변경 앱 재실행 후 파일 다운로드 표시..
Inner Class 누수 Activity 내부에 아래와 같이 Inner Class를 정의 할 경우 잠재적으로 누수의 대상이 된다. ... public class MainActivity extends Activity { private static Innserclass inner; private String mStr; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); inner = new Innserclass(); new Thread(inner).start(); mStr = "hello"; } public c..
BufferQueue 그래픽 데이터의 생산자와 소비자를 연결 수켜주는 역할을 한다. (프로세스가 서로 달라도 된다.) 생산자는 버퍼 특징을 기술한다. 높이, 넓이, 픽셀포맷, 플래그 등 Data Flow dequeBuffer 생상자 버퍼 채움 queueBuffer 소비사 버퍼 획득 acquireBuffer 버퍼 활용 releaseBuffer gralloc HAL allock함수를 이용해 버퍼를 할당한다. 넓이,높이,픽셀포맷, 용도 플래그가 인자 예) RGBA8888 픽셀 포멧의 경우 R->G->B->A 순서로 4바이트 버퍼를 생성한다. SurfaceFlinger 그래픽 데어터 버퍼를 받고 Display로 보내는 목적 앱 포어그라운드 -> 윈도우매니저 -> surfaceflinger -> draw 요청 B..
Android Memory ART ART의 목적 안드로이드 상 시스템이나 어플리케이션에 의해 관리 되는 Android Runtime을 대표 하는 말로써, 오직 안드로이드 프로젝트를 위해서만 만들어졌다. ART나 달빅의 경우는 Dex bytecode 러닝에 적합하게 만들어 졌다. Ahead-of-tiem (AOT) compilation 인스톨 및 작동 시간을 빠르게 하기 위해 있는 것으로 최초 apk를 install하게 되면 dex2oat라는 device 내부에 있는 tool을 이용해서 작동가능한 상태로 만들어 준다. Improved garbage collection GC를 한번에 처리하게 만든다 GC pause동안 병행 프로세스 처리를 한다 작은 객체(만들어진지 얼마 안된 객체, short live 객체..
Android에서 Keyboard 작동을 위한 요소 Input Method Manager : 클라이언트 Side의 application context에 위치 하면서 Android 전체 시스템 상 프로세스 간의 통로 역할을 한다 Input Method (IME & Keyboard) : 쉽게 keyboard라고 생각하면 된다. 사용자의 text를 생성하고 입력할 수있게 하는 역할을 한다. IME는 오직 한번에 하나만 화면에 표시 될 수있다. Client Application : IME을 사용하는 대상 application이 되며, 한번에 오직 하나의 입력 화면(소스를 보면 View라고 생각된다)과 Active 상태를 유지 할 수있다. InputMethd Framework (IMF) 의 보안적 제한 Input..