일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 해몽
- 공략
- 얻는법
- Example
- 샘플
- 포켓볼
- afterdelay
- 아이폰7
- 보라카이
- Xcode
- error
- IOS
- push
- GCD
- 신도림 테크노마트
- simulator
- UIView
- 페이백
- 포켓몬 GO
- LG유플러스
- 신도림
- 스마트폰
- setting
- Bitcode
- swift3
- loop
- 앱스토어
- UITableView
- Check
- swift
- Today
- Total
도래울
Android Eclipse로 Debugging 본문
1. full source 를 compile 한다
- ex) froyo
2. build 완료 확인
- system.img, userdata.img, ramdisk.img 확인
- /froyo/out/target/product/generic$
3. Linux에서 빌드된 souce code 과 object를 window system 으로 가져온다.
- source code : /froyo/packages/apps/Settings$
→ code review를 위해 device, frameworks, packages 를 한번에 copy
- obj code : /froyo/out
4. Eclipse에서 Settings package를 넣고 build
1) File - New - Project - Android Project
Create project from existing source 에서 Settings package path 설정
2) Compile
5. Compile error 수정
- project 에서 properties 실행
1) add framework lib
i. Java Build Path 에서 Libraries 선택
ii. Add External JARs 실행하여 아래 jar 추가
/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar
2) Build Oder 수정
i. Java Build Path 에서 Order and Export 선택
ii. 5-1)에서 추가된 classes.jar를 최상위로 선택
6. APK 설치
- install package in data
>adb remount
>adb shell rm /system/app/Settings.apk
>adb uninstall com.android.settings
- >adb install Settings.apk
- overwrite package in system
>adb remount
>adb push d:\~~~~\*.apk /system/app
--> system.img 로 만들어지는것과
직접 push 하는것이 왜 size 차이가 나는걸까?
adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock0 /system
♣ TroubleShooting
1. INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
- adb error
pkg: /data/local/tmp/Settings.apk
Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE]
- LogCat
10-29 06:59:21.327: DEBUG/dalvikvm(257): GC_EXPLICIT freed 86 objects / 8624 bytes in 79ms
10-29 06:59:22.348: DEBUG/PackageManager(61): Scanning package com.android.settings
10-29 06:59:22.348: DEBUG/PackageManager(61): Shared UserID android.uid.system (uid=1000): packages=[PackageSetting{43ecf418 com.android.server.vpn/1000}, PackageSetting{43eceed8 com.android.providers.subscribedfeeds/1000}, PackageSetting{43ecf098 com.android.providers.settings/1000}, PackageSetting{43ece1e0 android/1000}]
10-29 06:59:22.358: ERROR/PackageManager(61): Package com.android.settings has no signatures that match those in shared user android.uid.system; ignoring!
10-29 06:59:22.358: WARN/PackageManager(61): Package couldn't be installed in /data/app/com.android.settings-1.apk
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.settings"
android:sharedUserId="android.uid.system">
▶ android:sharedUserId="android.uid.system 을 삭제
2. install_failed_dexopt
▶ data/dalvik-cache/***.dex file 삭제후 재 debugging
'개발 > Android' 카테고리의 다른 글
[Android] Notification (0) | 2016.02.05 |
---|---|
Get Phone State When Someone is calling using BroadcastReceiver Example (2) | 2016.02.05 |
Android Service Lifecycle (0) | 2016.02.05 |
안드로이드 Activity LifeCycle (0) | 2016.02.05 |
[안드로이드] 현재 시간 알기 (0) | 2016.02.05 |