본문 바로가기

Android

apk install File apkFile = new File("/sdcard/UpgradeTest.apk"); if (apkFile == null) { Log.i(TAG, "file is null"); } Uri uri = Uri.fromFile(apkFile); Intent it = new Intent(Intent.ACTION_VIEW, uri); it.setData(uri); it.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_NEW_TASK); it.setClassName("com.android.packageinstaller", "com.android.packageinstaller.PackageInstallerActivity"); star.. 더보기
Android so upgrade Manifest.xml에 존재하는 version 정보를 이용하여 upgrade를 시도할 수 있다. Adb install 을 이용하여 최초 버전 install 이후에는 adb install로 upgrade 불가하며 adb push 를 통하여 /data/app/ 에 넣어야 함 버전 별 포함하고 있는 so와 push 후 data/data/app/lib에 존재하는 so 파일은 다음과 같습니다. version 1: 1.so data/data/app/lib : 1.so 존재 version 2: 1-1.so , 2.so data/data/app/lib : 1-1.so, 2.so 존재 version 3: 1-2.so data/data/app/lib : 1-2.so , 2.so 존재 결과 : upgrade를 통하여 부분.. 더보기
dumpstate dumpsys adb 명령어 중 dump 관련된 명령어 2개 dumpstate 호출 시 다음과 같은 정보가 보여진다. 뭔가 엄청 많은데 사실 봐도 잘 모르겠다. T.T ------ MEMORY INFO ------ ------ CPU INFO ------ ------ PROCRANK ------ ------ VIRTUAL MEMORY STATS ------ ------ VMALLOC INFO ------ ------ SLAB INFO ------ ------ ZONEINFO ------ ------ SYSTEM LOG ------ ------ VM TRACES ------ ------ EVENT LOG TAGS ------ ------ EVENT LOG ------ ------ RADIO LOG ------ -----.. 더보기
2/26 #2 Drawbles은 추상적인 객체 두가지 animation type 지원 frameAnimation tweenAnimation interpolator를 사용하여 영사의 가속 감속 효과를 줄 수 있다. layout animation AR argument-ed reality 더보기
2/24 #2 Contents Provider Binder를 사용하여 구현해 놓은 표준 API provider의 생명주기는 resolver가 호출하면 살아났다가 query를 return 하고 죽는다. Provider Manifest.xml DB를 핸들링 하듯이 API를 호출한다. "content://". Resolver 에서 provider에 요청을 하여 cursor.requery(); getCOntentResolver().notifyChange(url.null) Query를 만드는 2가지 방법 ContentResolver.query() Activity.managedQuery() 동일한 파라미터 managed query는 리턴받은 cursor를 Activity lifecycle에 영향을 받는다. 만약 Activity .. 더보기
2/24 #1 XML을 이해하기 위해서는 view - viewGroup - widget - layout을 이해하여야 한다. aapt android asset package tool deflation inflation SurfaceView를 사용하는 곳 --> video, 3D, Game apk 설치 preload의 경우 system/app/___.apk data/app/___.apk 가 설치됨 data/data/ UID / GUI에 dependency가 있음 다른 application이 가지고 있는 data에 대한 접근 world readable /writable 셋팅 or Content Provider preferences (/data/data//shared_prefs) getDefaultPreferences ->_.. 더보기
2/23 #2 Hierarchy FrameLayout을 이용하여 margin이나 padding으로 절대 좌표를 유도할 수 있다. LinearLayout 한쪽 방향으로 layout해줌 Tablelyout 가로로는 병합 가능 하나 세로로는 병합 불가 RelativeLayout 상대적인 위치를 기입하여 좌표를 잡도록 유도 (권장) -> 참조해야할 객체가 그 위에 선언되어 있어야 한다. draw lock -> unlock을 통한 double buffering이 구현된다. unlock 시 canvas가 commit되나. 네오엠텔 SMAX 한 번 검색해서 보자 ㅋ Surface를 C단에서 writing 할 수 있다. 그리고 surface의 우선 순위를 바꿀 수 있다. -> ann 위에 어플이 보이게 만들 수 있다. invalid.. 더보기
2/23 #1 SKIA 의 작은 부분만을 모바일에서 사용한다. 2D - 3D sgl openGLES -> EGL -> agl(android graphic library) / hgl(hardware) -> pixel flinger / GPU SurfaceFlinger framebuffer Android 는 Linux의 Graphic 문제를 해결하였다. TTF true type font -> apple 특허 font Free type font -> true type이랑 비스한 open font ㅋㅋㅋ inflater -> XML 을 다시 class 로 변경 이미 떠 있는 것이기 때문에 XML로 작성하나 new class를 하나 속도가 동일하다. 안드로이드는 XML을 권장한다 readability findViewByID(R.. 더보기
2/22 #2 Intent xml -> binary (전처리) deflation -> 원본 데이터를 압축하는 과정 inflation -> 압축된 파일을 원본으로 만드는 과정 unsigned package 생성 후 debug key store 로 인증됨 여러개의 key를 통해서 sign이 가능하다 zipalign contentsProvider : 외부에서 DB 또는 file에 접근할 수 있도록 퍼블리싱을 하는 기능 late binding : activity간 호출이 직접 이루어 지지 않고 activity manager를 통하여 intent호출방식을 이루는 지는 것 implicit intent explicit intent apk 는 실행이 단위도 아니고 entry pointer도 갖고 있지 않다. entry pointer.. 더보기
2/22 #1 GIT : version control system 의 master에서 관리 cupcake, donut, eclair등 branch 이름과 version은 또 다른 것이다. branch가 안정화 되면 master에 반영한다. SDK : NDK : native development kit 보편적인 C, C++을 지원하기 위함이 아니다. PDK : platform development kit screen * density = resolution 1.6 NDK에서 open GL library 관련 함수 추가 Android Emulator는 physical device와 완벽하게 동일하다 -> 실제 device rom을 갖고 올 수 있다면 emulator에 설치하여 돌릴 수 있다. EABI 제공 embedded.. 더보기