AAPT 처리 자원 apk 패키지 사용 하기
다음은"http://www.androidcn.net/wiki/index.php/Reference/aapt소개
aapt stands for Android Asset Packaging Tool and is included in the tools/directory of the SDK.This tool allows you to view,create,and update Zip-compatible archives(zip,jar,apk).It can also compile resources into binary assets.aapt 즉 Android Asset Packaging Tool 은 SDK 의 tools/디 렉 터 리 에서 볼 수 있 고,만 들 수 있 으 며,ZIP 형식의 문서 첨부 파일(zip,jar,apk)을 업데이트 합 니 다.자원 파일 을 바 이 너 리 파일 로 컴 파일 할 수도 있 습 니 다.though you probably won't often use aapt directly,build scripts and IDE plugins can utile this tool to package the apk file that constitutes an Android application.aapt 도 구 를 직접 사용 하지 않 았 을 수도 있 지만,그러나 build scripts 와 IDE 플러그 인 은 이 도 구 를 사용 하여 apk 파일 을 포장 하여 안 드 로 이 드 응용 프로그램 을 구성 합 니 다.For more usage details,open a terminal,go to the tools/directory,and run the command:더 많은 실 용적 인 정 보 를 얻 으 려 면 터미널 콘 솔 을 열 고 tools/디 렉 터 리 에서 명령 을 실행 하 십시오:Linux or Mac OS X: ./aaptWindows:aapt.exe
TOPAPT 의 도움말 정보
상기 명령 을 실행 하면 콘 솔 에서 해당 aapt 정 보 를 보 냅 니 다.
Android Asset Packaging Tool
Usage:
aapt l[ist] [-v] [-a] file.{zip,jar,apk}
List contents of Zip-compatible archive.
aapt d[ump] WHAT file.{apk} [asset [asset ...]]
badging Print the label and icon for the app declared in APK.
permissions Print the permissions from the APK.
resources Print the resource table from the APK.
configurations Print the configurations in the APK.
xmltree Print the compiled xmls in the given assets.
xmlstrings Print the strings of the given compiled xml assets.
aapt p[ackage] [-f][-u][-m][-v][-x][-M AndroidManifest.xml] /
[-0 extension [-0 extension ...]] /
[-I base-package [-I base-package ...]] /
[-A asset-source-dir] [-P public-definitions-file] /
[-S resource-sources] [-F apk-file] [-J R-file-dir] /
[raw-files-dir [raw-files-dir] ...]
Package the android resources. It will read assets and resources that are
supplied with the -M -A -S or raw-files-dir arguments. The -J -P -F and -R
options control which files are output.
aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...]
Delete specified files from Zip-compatible archive.
aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 ...]
Add specified files to Zip-compatible archive.
aapt v[ersion]
Print program version.
Modifiers:
-a print Android-specific data (resources, manifest) when listing
-c specify which configurations to include. The default is all
configurations. The value of the parameter should be a comma
separated list of configuration values. Locales should be specified
as either a language or language-region pair. Some examples:
en
port,en
port,land,en_US
If you put the special locale, zz_ZZ on the list, it will perform
pseudolocalization on the default locale, modifying all of the
strings so you can look for strings that missed the
internationalization process. For example:
port,land,zz_ZZ
-d one or more device assets to include, separated by commas
-f force overwrite of existing files
-j specify a jar or zip file containing classes to include
-m make package directories under location specified by -J
-u update existing packages (add new, replace older, remove deleted files)
-v verbose output
-x create extending (non-application) resource IDs
-z require localization of resource attributes marked with
localization="suggested"
-A additional directory in which to find raw asset files
-F specify the apk file to output
-I add an existing package to base include set
-J specify where to output R.java resource constant definitions
-M specify full path to AndroidManifest.xml to include in zip
-P specify where to output public resource definitions
-S directory in which to find resources
-0 specifies an additional extension for which such files will not
be stored compressed in the .apk. An empty string means to not
compress any files at all.
상기 도움말 정보 에 따라 aapt 로 다음 작업 을 사용 할 수 있 습 니 다.
TOP AAPT 버 전 보기
./aapt v
현재 도구 버 전 가 져 오기:
Android Asset Packaging Tool, v0.2
TOP 은 AAPT 를 사용 하여 자원 패키지(.apk)파일 목록 을 보 여 줍 니 다.
aapt l[ist] [-v] [-a] file.{zip,jar,apk}
List contents of Zip-compatible archive.
시스템 자원 패키지 의 내용 을 명령 으로 볼 수 있 습 니 다:
./aapt l framework-res.apk
META-INF/MANIFEST.MF
META-INF/CERT.SF
META-INF/CERT.RSA
AndroidManifest.xml
assets/images/android_320x480.png
assets/images/boot_robot.png
assets/images/boot_robot_glow.png
...
assets/webkit/youtube.html
assets/webkit/youtube.png
res/anim/accelerate_decelerate_interpolator.xml
res/anim/accelerate_interpolator.xml
res/anim/app_starting_exit.xml
...
res/raw-de/loaderror.html
res/raw-de/nodomain.html
res/raw/fallbackring.ogg
res/raw/loaderror.html
res/raw/nodomain.html
res/xml-en/autotext.xml
res/xml/apns.xml
res/xml/autotext.xml
res/xml/preferred_time_zones.xml
res/xml/time_zones_by_country.xml
resources.arsc
-v 옵션 을 사용 하면 모든 파일 의 자세 한 정 보 를 출력 합 니 다.
Archive: framework-res.apk
Length Method Size Ratio Date Time CRC-32 Name
-------- ------ ------- ----- ---- ---- ------ ----
76217 Deflate 25576 66% 04-16-08 07:40 3b7140fa META-INF/MANIFEST.MF
76259 Deflate 25706 66% 04-16-08 07:40 a21d76be META-INF/CERT.SF
1714 Deflate 1156 33% 04-16-08 07:40 ca66d55e META-INF/CERT.RSA
31768 Deflate 5556 83% 01-16-09 12:04 8c137ee8 AndroidManifest.xml
3098 Stored 3098 0% 01-15-09 23:16 ed1132c9 assets/images/android_320x480.png
1001 Stored 1001 0% 01-15-09 23:16 c53ad035 assets/images/boot_robot.png
2083 Stored 2083 0% 01-15-09 23:16 12acc29d assets/images/boot_robot_glow.png
... ...
340 Deflate 155 54% 01-16-09 12:04 cc2ad7f2 res/anim/accelerate_decelerate_interpolator.xml
368 Deflate 179 51% 01-16-09 12:04 c94b9323 res/anim/accelerate_interpolator.xml
568 Deflate 260 54% 01-16-09 12:04 e0972304 res/anim/app_starting_exit.xml
... ...
605 Deflate 296 51% 01-15-09 23:16 88710568 res/raw-de/loaderror.html
996 Deflate 471 53% 01-15-09 23:16 c42ea004 res/raw-de/nodomain.html
10975 Stored 10975 0% 01-15-09 23:16 21dc2fce res/raw/fallbackring.ogg
579 Deflate 282 51% 01-15-09 23:16 11c56b88 res/raw/loaderror.html
890 Deflate 418 53% 01-15-09 23:16 393cf037 res/raw/nodomain.html
25588 Deflate 5051 80% 01-16-09 12:04 cf7826df res/xml-en/autotext.xml
164 Deflate 97 41% 01-16-09 12:04 ee886635 res/xml/apns.xml
116 Deflate 59 49% 01-16-09 12:04 885f246d res/xml/autotext.xml
864 Deflate 312 64% 01-16-09 12:04 65ad9d7e res/xml/preferred_time_zones.xml
61044 Deflate 11755 81% 01-16-09 12:04 0bc79a58 res/xml/time_zones_by_country.xml
747776 Stored 747776 0% 01-16-09 12:04 98f996b3 resources.arsc
-------- ------- --- -------
2246729 1774656 21% 851 files
-a 옵션 을 사용 하면 위 파일 목록 에서 안 드 로 이 드 가 사용 하 는 기호 표를 출력 합 니 다.
Resource table:
mError=0x0 (Success)
Package Groups (1)
Package Group 0 id=1 packageCount=1 name=android
Package 0 id=1 name=android typeCount=13
type 0 configCount=1 entryCount=599
spec resource 0x01010000 android:attr/theme: flags=0x40000000
spec resource 0x01010001 android:attr/label: flags=0x40000000
spec resource 0x01010002 android:attr/icon: flags=0x40000000
spec resource 0x01010003 android:attr/name: flags=0x40000000
spec resource 0x01010004 android:attr/manageSpaceActivity: flags=0x40000000
spec resource 0x01010005 android:attr/allowClearUserData: flags=0x40000000
spec resource 0x01010006 android:attr/permission: flags=0x40000000
spec resource 0x01010007 android:attr/readPermission: flags=0x40000000
spec resource 0x01010008 android:attr/writePermission: flags=0x40000000
spec resource 0x01010009 android:attr/protectionLevel: flags=0x40000000
spec resource 0x0101000a android:attr/permissionGroup: flags=0x40000000
... ...
이 기호 표 의 형식 은 좀 더 연구 해 야 알 수 있다- -!
TOP 은 AAPT 로 자원 파일 을 압축 합 니 다.
다음 명령 을 사용 하여 안 드 로 이 드 의 build 시스템 이 framework-res 모듈 을 어떻게 포장 하 는 지 확인 합 니 다.
cd ~/android/src
make -n --debug framework-res
다음은 출력 에서 추출 하 는 관건 적 인 절차 입 니 다.
1.첫 번 째 단 계 는 자원 apk 패 키 지 를 생 성하 고 다음 명령 으로 완성 합 니 다.
out/host/linux-x86/bin/aapt package -z -u -x -M frameworks/base/core/res/AndroidManifest.xml -S frameworks/base/core/res/res
-A frameworks/base/core/res/assets -F out/target/product/generic/obj/APPS/framework-res_intermediates/package.apk
2.두 번 째 단 계 는 생 성 된 자원 팩 에 서명 합 니 다.
java -jar out/host/linux-x86/framework/signapk.jar build/target/product/security/platform.x509.pem build/target/product/secur
ity/platform.pk8 out/target/product/generic/obj/APPS/framework-res_intermediates/package.apk.unsigned out/target/product/gene
ric/obj/APPS/framework-res_intermediates/package.apk.signed
3.세 번 째 단 계 는 생 성 된 가방 을 정렬 처리 합 니 다.
out/host/linux-x86/bin/zipalign -f 4 out/target/product/generic/obj/APPS/framework-res_intermediates/package.apk.unaligned ou
t/target/product/generic/obj/APPS/framework-res_intermediates/package.apk.aligned
이렇게 생 성 된 framework-res.apk 패 키 지 는 system.img 의 자원 패 키 지 를 교체 하 는 데 사용 할 수 있 습 니 다.(CupCake 이전 안정 버 전에 서 테스트 가능)
구체 적 인 절차:
./aapt d xmltree framework-res.apk res/anim/fade_in.xml
N: android=http://schemas.android.com/apk/res/android
E: alpha (line=21)
A: android:interpolator(0x01010141)=@0x10a0006
A: android:duration(0x01010198)=(type 0x10)0x12c
A: android:fromAlpha(0x010101ca)=(type 0x4)0x0
A: android:toAlpha(0x010101cb)=(type 0x4)0x3f800000
./aapt d xmlstrings framework-res.apk res/anim/fade_in.xml
String #0: interpolator
String #1: fromAlpha
String #2: toAlpha
String #3: duration
String #4: android
String #5: http://schemas.android.com/apk/res/android
String #6:
String #7: alpha
컴 파일 되 지 않 은 파일 은:
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/decelerate_interpolator"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="300" />
해당 R.자바 파일 은:
package com.android.internal;
public final class R {
public static final class anim {
public static final int accelerate_decelerate_interpolator=0x010a0004;
public static final int accelerate_interpolator=0x010a0005;
public static final int app_starting_exit=0x010a0007;
public static final int decelerate_interpolator=0x010a0006;
public static final int dialog_enter=0x010a0008;
public static final int dialog_exit=0x010a0009;
... ...
기호 표 에서 도 이 색인 값 을 얻 을 수 있 습 니 다.
resource 0x010a0006 android:anim/decelerate_interpolator: t=0x03 d=0x00001132 (s=0x0008 r=0x00) (PUBLIC)
시스템 이 예약 한 framework/base/core/res/res 디 렉 터 리 의 모델 에 맞 춰/res 파일 을 재 구축 할 수 있 습 니 다.
http://blog.163.com/dangzhengtao@yeah/blog/static/77800874201011821456400/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.