androidsdkdx
Ⅰ 如何部署android伺服器端的java代碼
Java平台般三版本:Java ME(微型版用於某些手機)、Java SE(標准版用於台式電腦)、Java EE(企業版用於伺服器端應用)談Java我通指Java SE版本包含虛擬機編譯器
首先Java代碼編譯稱位元組碼間格式位元組碼目標電腦運行虛擬機快速解析目標電腦硬體操作系統所需要本機格式
除發者提供編寫處運行優勢Java能通垃圾收器(GC)實現自內存管理發者免手代碼釋放用象內存雖功能非用且降低代碼引入內存問題風險增加運行銷需要停執行垃圾收進程
本文比較Java SE用於Android發Java間差異首先我介紹發者習慣Java
SE語言結構及何Android運行其我介紹何優化AndroidJava代碼何優化內存配及何恰處理線程
比較AndroidDalvik JavaJava SE
雖遠Android現前發者能用Java編程語言移設備編寫應用程序Java功能極限版本稱Java
ME(微型版)同移設備需編寫同代碼寫應用程序能支持Java
ME任何手機運行幾乎能外由於存線商店應用發布程極其復雜
Android問世發者提供構建智能手機強應用機發者需用Java編程語言及熟知標准Java
API編寫代碼盡管Android發者仍使用Java SE編譯器編譯應用程序發現James
Gosling發JavaAndroid設備Java存許同處
Android設備運行VM(虛擬機)稱Dalvik初由谷歌Dan
Bornstein發適用於CPU內存受限移設備Java SEDalvik Java存些差異主要體現虛擬機Java
SE使用棧機設計Dalvik設計基於寄存器機器Android SDKdx工具Java
SE棧機器位元組碼轉換基於寄存器Dalvik機器位元組碼該轉換步驟由IDE自完
基於棧虛擬機基於寄存器虛擬機定義及差異列入我討論范圍由於歷史原Android使用基於寄存器虛擬機雖基於寄存器虛擬機比基於棧虛擬機快32%限於執行解釋位元組碼虛擬機(說解釋型虛擬機)Android
2.2版本(稱Froyo)前Dalvik虛擬機都純解釋型Froyo版本引入JIT編譯器(即編譯)Java
SE早優勢
JIT編譯稱態翻譯執行前位元組碼翻譯本機代碼(圖1所示)主要兩處首先消除些純解釋型虛擬機銷;其能本機代碼執行優化通靜態編譯代碼做例JIT編譯器運行CPU選擇合適優化根據應用程序輸入析代碼何運行便進行步優化
圖1Android JavaJava SE翻譯步驟
雖AndroidDalvik JIT編譯器發展前景要達Java SEJIT編譯器般穩定、熟度尚需段間Dalvik JIT現Android提供巨性能優勢且斷改善
JAVA
SE虛擬機Dalvik虛擬機另區別者進行優化運行同機器實例機啟叫做zygote進程該進程創建第Dalvik實例由實例創建所其實例應用程序啟zygote進程收創建新虛擬機實例請求並給該應用程序創建新進程(圖2所示)發者已習慣於Java
SE發設計能看起切實際優勢避免由應用程序運行失敗導致Dalvik虛擬機崩潰繼引發應用程序崩潰
圖2Android啟新Dalvik虛擬機實例
AndroidJava
SE除運行虛擬機同外實現API式Android屬於javajavax包API都自Apache
Harmony(源項目旨重新實現Java SE軟體棧該項目201111月再維護)發面些APIJava
SE包類似存些差別例谷歌HttpUrlConnection類進行Java SE版本所沒重升級
外Android平台移除Java
SE關API例Swing/AWT包完全移除Android使用同UI框架其移除APIRMI、CORBA、ImageIOJMX或者替換特定Android版本(android包空間內)或者些實際原根本存
優化AndroidJava代碼
經改進Java
SE具備些簡化編寫復雜代碼結構新特性其些特性讓整流程變更簡單發者需要解何及何確使用另外由於Java
SE用於伺服器端發(使用Java企業版API)發員專門伺服器端Java代碼進行優化註解Java虛擬機腳本語言支持伺服器端發進行優化例證雖些工具構建端發強發Android客戶端代碼些特性作用甚至起反作用Java發者已經習慣於限量RAMCPUAndroid發需要密切關注性能內存配簡單說發者需要使用稍微同待Android端發
隨著Android首發布情況所改變曾經些Android盡量用Java規范重新推薦主要Android目前JIT編譯器解決些規范導致性能問題
本文討論編寫Android應用程序需要解Java代碼我深究Java編程語言細節重點關注Android發重要東西發者仍需解數適用於Java SE規則建議同適用於AndroidDalvik虛擬機
Android類型安全枚舉
Java SE 5.0新增許便發者新特性其值期待引入類型安全枚舉枚舉代碼用表示屬於某組幾選擇早期版本Java用整型量解決問題雖技術行容易錯請看面代碼:
public class Machine {
public static final int STOPPED = 10;
public static final int INITIALIZING = 20;
public static final int STARTING = 30;
public static final int RUNNING = 40;
public static final int STOPPING = 50;
public static final int CRASHED = 60;
private int mState;
public Machine() {
mState = STOPPED;
}
public int getState() {
return mState;
}
public void setState(int state) {
mState = state;
}
}
問題雖些量期望沒機制保證setState()接收同值要設置添加檢查旦非預期值發者需要處理錯誤發者所需要編譯檢查非賦值類型安全枚舉解決問題所示:
public class Machine {
public enum State {
STOPPED, INITIALIZING, STARTING, RUNNING, STOPPING, CRASHED
}
private State mState;
public Machine() {
mState = State.STOPPED;
}
public State getState() {
return mState;
}
public void setState(State state) {
mState = state;
}
}
注意聲明同類型安全值新加內部枚舉類編譯解決非賦值問題所代碼更容易錯
Dalvik虛擬機沒JIT編譯器優化代碼建議Android平台使用枚舉類型使用整型量相比種設計帶內存性能損失更些版本Android
API存整型量原今更強JIT編譯器及斷改進Dalvik虛擬機發者必再擔問題放膽使用類型安全枚舉即
仍存些情況使用整型量更選擇像intJava基本類型增加GC銷外Android SDK許已API仍依賴基本類型比Handler類——種情況沒太選擇
Android增強版for循環
Java SE 5.0引入增強版for循環提供通用縮寫表達式遍歷集合數組首先比較五種:
void loopOne(String[] names) {
int size = names.length;
for (int i = 0; i < size; i++) {
printName(names[i]);
}
}
void loopTwo(String[] names) {
for (String name : names) {
printName(name);
}
}
void loopThree(Collection names) {
for (String name : names) {
printName(name);
}
}
void loopFour(Collection names) {
Iterator iterator = names.iterator();
while (iterator.hasNext()) {
printName(iterator.next());
}
}
// 要ArrayList使用增強版for循環
void loopFive(ArrayList names) {
int size = names.size();
for (int i = 0; i < size; i++) {
printName(names.get(i));
}
}
面顯示四種同遍歷集合數組式前面兩種著相同性能所讀取元素放數組使用增強版for循環Collection象說增強版for循環使用迭代器遍歷元素著相同性能ArrayList象應避免使用增強版for循環
僅需要遍歷元素且需要元素位置定要使用數組或者ArrayList所其Collection類些情況更慢
般情況讀取元素幾乎變數據集性能要求高建議使用規數組數組固定添加數據影響性能所編寫代碼要考慮所素
隊列、同步鎖
通情況應用程序線程產數據另線程使用見例線程獲取網路數據另線程(操作UI主線程)些數據展現給用戶種模式稱產者/消費者模式面向象編程課程發者用算實現該模式能要花幾面介紹些簡化產者/消費者模式實現現類
1. 更智能隊列
雖已現類並能用更少代碼實現該功能許Java發者仍選擇使用LinkedList及同步塊實現隊列功能發者java.util.concurrent包找同步相關類外本包包含信號量、鎖及單變數進行原操作類考慮面使用標准LinkedList實現線程安全隊列代碼
public class ThreadSafeQueue {
private LinkedList mList = new LinkedList();
private final Object mLock = new Object();
public void offer(String value) {
synchronized (mLock) {
mList.offer(value);
mLock.notifyAll();
}
}
public synchronized String poll() {
synchronized (mLock) {
while (mList.isEmpty()) {
try {
mLock.wait();
} catch (InterruptedException e) {
//簡潔起見忽略異處理
}
}
return mList.poll();
}
}
}
雖段代碼確並能考試滿實現測試段代碼浪費間實際所前面代碼用面行代替
LinkedBlockingQueue blockingQueue =
new LinkedBlockingQueue();
面行代碼能像前面例提供相同類型阻塞隊列甚至能提供額外線程安全操作java.util.concurrent包含許選隊列及並發映射類所般情況建議使用像前示例使用更代碼
2. 更智能鎖
Java提供synchronized關鍵字允許發者創建線程安全代碼塊synchronized關鍵字易於使用容易濫用性能造負面影響需要區讀數據寫數據synchronized關鍵字並效幸java.util.concurrent.locks包工具類種情況提供支持
public class ReadWriteLockDemo {
private final ReentrantReadWriteLock mLock;
private String mName;
private int mAge;
private String mAddress;
public ReadWriteLockDemo() {
mLock = new ReentrantReadWriteLock();
}
public void setPersonData(String name, int age, String address) {
ReentrantReadWriteLock.WriteLock writeLock = mLock.writeLock();
try {
writeLock.lock();
mName = name;
mAge = age;
mAddress = address;
} finally {
writeLock.unlock();
}
}
public String getName() {
ReentrantReadWriteLock.ReadLock readLock = mLock.readLock();
try {
readLock.lock();
return mName;
} finally {
readLock.unlock();
}
}
// 重復代碼再贅述
}
面代碼展示使用ReentrantReadWriteLock允許並發線程數據進行讀訪問並確保同間線程寫入相同數據
代碼使用synchronized關鍵字仍處理鎖問題效論何種情況都要考慮ReentrantReadWriteLock否
Ⅱ android sdk requires the new Build Tools
沒有構建工具啊,選open SDK Manager,SDK Manager界面中在Tools分支下有Build-tools
Ⅲ (特別專業的Android修改問題)關於Android中classes.dex反編譯並回編的一個問題
過程應該是不可逆的.
若是能通過修改jar來修改class.dex文件,最終達到修改整個apk程序的目的,那android程序就沒有版權一說了...
Ⅳ android 工程 如何一鍵編譯打包成apk
打包步驟:
1、生成keystore
按照下面的命令行在C:ProgramFilesJavajdk1.6.0_10in>目錄下,輸入keytool-genkey-aliasandroid.keystore-keyalgRSA-validity100000-keystoreandroid.keystore
參數意義:-validity主要是證書的有效期,寫100000天;空格,退格鍵都算密碼。
命令執行後會在C:ProgramFilesJavajdk1.6.0_10in>目錄下生成android.keystore文件。如圖-1
圖-2EclipseAndroid打包工具
接下來的步驟就是不斷的next。下面僅貼出圖片,不解釋。
step2:選擇打包的項目
step3:選擇生成的EclipseAndroid.keystore文件並輸入密碼
step4:選擇aliaskey並輸入密碼
step5:最後選擇生成androidapk文件的目錄及文件名
最終生成的apk文件。
Ⅳ Android SDK Tools,Platform-tools,Build-tools分別有什麼作用
platform-tools包含開發app的平台依賴的開發和調試工具,包括 adb、fastboot等
android sdk里的各目錄作用
AVD Manager.exe:虛擬機管理工具,用於建立和管理虛擬機。
SDK Manager.exe:sdk管理工具,用於管理、下載sdk、sdk工具,能及擴展工具
tools目錄:包括測試、調試、第三方工具。模擬器、數據管理工具等。
build-tools目錄:編譯工具目錄,包含了轉化為davlik虛擬機的編譯工具。
包括
aapt(Android Asset Packaging Tool):編譯應用程序的資源文件(包括AndroidManifest.xml和你的Activities的xml文件),生成R.java文件,這樣你就可以從你的java代碼中引用資源。
aidl:把.aidl 介面轉換成java介面.
dx:轉化.class中間代碼為dvlik中間代碼,所有經過java編譯的生成.class文件都需要此工具進行轉換,最後打包進apk文件中.
dexmp:mp devlik中間代碼
platform-tools目錄:包含開發app的平台依賴的開發和調試工具。
包括
adb:android調試工具
fastboot:boot工具
platforms/<android-version>目錄:包括android的平台。包含在android.jar庫中。你必須指一個平台為你的編譯目標。
system-images目錄:編譯好的系統映像。模擬器可以直接載入。
sources目錄:androidsdk的源碼目錄
samples目錄:sdk例子
Ⅵ Android SDK 環境下如何使用adb軟體
Android SDK開發工具中有幾個重要的指令:adb、ddms、emulator與mksdcard、dx tool等。
ADB系統除錯與連結工具
使用adb指令進行APK組件的安裝,雖然adb(Android debug bridge)是Android系統的除錯工具,但是從放置文件到SD存儲卡與安裝APK應用程序,adb是操作Android 系統不可或缺的重要工具。adb是與Android模擬器溝通最重要的橋梁。如果要跟Android底層的linux操作系統進行溝通,就必須通過 Android SDK tools目錄下的adb (android debug bridge) 指令來進行操作。這個adb除了提供程序碼除錯功能外,最重要的功能是它可以將Eclipse編譯好所生成的Android應用程序組件Android Package (apk),直接連接安裝到Android模擬器上或者手機裝置上,因此程序開發在Eclipse環境中完成後,Android模擬器上就直接會有這個應 用程序的圖標icon了。另外adb除錯工具也支持命令列模式shell指令,可以輸入指令來進行一些除錯動作。這些實用的adb指令如下:
$ adb devices (顯示當前有多少個模擬器正在運行)
List of devices attached
emulator-5554 device
emulator-5556 device
emulator-5558 device
運行adb devices會顯示有多少個模擬器正在運行,上面的例子指出有5554、5556、5558三個模擬器正在運行,如果沒有運行模擬器,則顯示 no device。
$ adb -s <serialNumber> <command> (指定模擬器來操作)
$ adb -s emulator-5554 install email.apk
adb -s可以指定模擬器序號,用來選擇操縱哪一個模擬器,例如adb -s emulator-5554 install email.apk,指定將email.apk安裝在模擬器emulator-5554。
$ adb install apkfile (安裝APK應用程序組件)
例如:adb install email.apk
$ adb uninstall package (移除APK應用程序組件)
例如:adb uninstall com.android.email
adb install與adb uninstall可以用來安裝與移除APK 應用程序組件,但是必須注意的是adb install後面是接apk文件名稱,然而adb uninstall 後面是域名形式的package名稱,例如com.android.email。詳細的package名稱可以由Android操作系統目錄/data /data或者由/data/app來查得。
$ adb shell (進入Android系統指令列模式)
$ ls
$ dmesg (查看Android Linux Kernel運作消息)
運行adb shell可以進入Android操作系統指令列模式,如此一來就可以直接看到Android系統的目錄結構,因為Android是Linux操作系統的 一種,所以Shell指令和Linux系統是相同的,例如ls(顯示文件目錄)、cd(進入目錄)、rm(刪除文件)、mv(移動文件)、mkdir(生 成目錄)與rmdir(刪除目錄)等指令。
$ adb push <file/dir> /sdcard (復制文件到SD存儲卡)
例如:adb push mp3 /sdcard
$ adb pull <file/dir> . (從Android系統下載文件)
例如:adb pull /data/app/com.android.email
adb push可以上載文件到SD存儲卡目錄/sdcard,因為其他目錄有訪問許可權問題無法寫入,所以一般都是將文件放到/sdcard目錄下。adb pull則是將文件從Android系統下載到一般計算機上,常用的例子除了從/sdcard下載文件外,也可以從/data/data或/data /app目錄將APK文件抽出來,提供已經安裝成功的APK應用程序,給其他使用者安裝。
$ adb logcat (監控模擬器運作記錄)
adb logcat會實時監控Android模擬器運行時所生成的記錄,此項功能對於程序開發人員用來除錯幫助很大,開發人員可以從記錄中得到應用程序運行時發生的錯誤消息。運行adb logcat後,若要離開監控模式,可以按Ctrl+C。
$ adb bugreport (生成adb除錯報告)
開發人員若要進一步得知系統生成的所有錯誤消息報告,可以運行adb bugreport指令來實現,該指令會將Android系統的mpsys、mpstate與logcat信息都顯示出來。
$ adb get-state (獲得adb伺服器運作狀態)
adb get-state會顯示adb伺服器的運作狀態為何,共有offline (離線)、bootloader (開機中)、與device (運作中) 三種狀態。
$ adb start-server (啟動adb伺服器)
$ adb kill-server (關掉adb伺服器)
通常啟動Android伺服器時,就會啟動adb伺服器了。可以使用adb get-state來查知adb的狀態。如果沒有啟動可以運行adb start-server啟動它,若不想進行除錯監控,可以運行adb kill-server關掉它。
$ adb forward tcp:6100 tcp:7100 (更改模擬器網路TCP通信埠)
Android模擬器內定的TCP port為6100,若有需要可以運行adb forward指令改成另外一個通信埠。
$ adb version (顯示adb版本)
您可以運行adb version查看當前使用的Android SDK adb版本。
$ adb help (顯示adb指令參數)
adb help會顯示所有adb指令的用法,
參考資料:http://blog.chinaunix.net/uid-20332519-id-3176865.html
Ⅶ android SDK 文檔目錄下都有哪些文件都代表著什麼
Android SDK 目錄下有很多文件夾,主要都是干什麼的呢?
1. add-ons 這裡面保存著附加庫,比如google Maps,當然你如果安裝了OPhone SDK,這里也會有一些類庫在裡面。
2. docs 這裡面是Android SDK API參考文檔,所有的API都可以在這里查到。
3. market_licensing 作為Android Market版權保護組件,一般發布付費應用到電子市場可以用它來反盜版。
4. platforms 是每個平台的SDK真正的文件,裡面會根據API Level劃分的SDK版本, 這里就以Android 2.2來說,進入後有一個android-8的文件夾,android-8進入後是Android 2.2 SDK的主要文件,其中ant為ant編譯腳本,data保存著一些系統資源,images是模擬器映像文件,skins則是Android模擬器的皮膚,templates是工程創建的默認模板,android.jar則是該版本的主要framework文件,tools目錄裡麵包含了重要的編譯工具,比如aapt、aidl、逆向調試工具dexmp和編譯腳本dx。
5. platform-tools 保存著一些通用工具,比如adb、和aapt、aidl、dx等文件,Android123提示,這里和platforms目錄中tools文件夾有些重復,主要是從android 2.3開始這些工具被劃分為通用了。
6. samples 是Android SDK自帶的默認示例工程,裡面的apidemos強烈推薦初學者運行學習,對於sqlite資料庫操作可以查看NotePad這個例子,對於游戲開發 Snake、LunarLander都是不錯的例子,對於Android主題開發Home則是android m5時代的主題設計原理。
7. tools 作為SDK根目錄下的tools文件夾,這里包含了重要的工具,比如ddms用於啟動Android調試工具,比如logcat、屏幕截圖和文件管理器,而draw9patch則是繪制android平台的可縮放png圖片的工具,sqlite3可以在PC上操作SQLite資料庫,而 monkeyrunner則是一個不錯的壓力測試應用,模擬用戶隨機按鍵,mksdcard則是模擬器SD映像的創建工具,emulator是android模擬器主程序,不過從android 1.5開始,需要輸入合適的參數才能啟動模擬器,traceview作為android平台上重要的調試工具。
8. usb_driver 顧名思義,保存著android平台google官方機型的驅動如nexus one、nexus s,同時也有一些老機型驅動的支持,比如說htc dream、htc magic和Motorola 的droid。
參考自:blog.csdn.net/coolwzjcool/article/details/7761663
Ⅷ android 3.0 之後 aptbuilider.bat 移除 之後的 用命令打包
1.使用aapt生成R.java類文件:
例:
C:\Snake>aapt p -f -m -J gen -S res -I android.jar -M AndroidManifest.xml
其中
-f -m -J F:\explorer\AndroidByread\gen 代表按覆蓋的形式在gen目錄下生成帶包路徑的R.java,
-S res指定資源文件 ,
-I android.jar 指定使用的android類包,
-M AndroidManifest.xml指定程序的配置文件
2.使用android SDK提供的aidl.exe把.aidl轉成.java文件(如無aidl介面文件可省略):
3.第三步 編譯.java類文件生成class文件:
C:\Snake>javac -classpath android.jar -d bin src\com\example\android\snake\*.java gen\com\example\android\snake\R.java
-classpath android.jar 指定使用的android類包,
-d bin指定生成的類文件的位置 ,後面的兩個都是源文件.
4.使用android SDK提供的dx.bat命令行腳本生成classes.dex文件:
C:\Snake>dx --dex --output=c:\snake\bin\classes.dex c:\snake\bin
第一個參數是生成的目標文件,第二個是class文件所在的目錄(必須使用絕對路徑)
5.生成應用程序apk文件:
C:\Snake>aapt p -f -F snake.apk -v -u -z -M AndroidManifest.xml -S res -A assets -I android.jar
用法同步驟1.
6.把前面生成的classes.dex文件壓縮到apk文件,最終生成可運行的apk應用程序
C:\Snake>aapt add snake.apk bin\classes.dex
7.Android Apk 簽名
Apk簽名首先要有一個keystore的簽名用的文件 。
keystore是由jdk自帶的工具keytool生成的。
具體生成方式參考:
開始->運行 ->cmd->cd到你安裝的jdk的目錄里,我的是C:\Program Files\Java \jdk1.6.0_10\bin
然後輸入:
keytool -genkey -alias asaiAndroid.keystore -keyalg RSA -validity 20000 -keystore asaiAndroid.keystore
-alias 後面跟的是別名這里是 asaiAndroid.store
-keyalg 是加密方式這里是RSA
-validity 是有效期 這里是20000
-keystore 就是要生成的keystore的名稱 這里是asiAndroid.keystore
然後按回車鍵
按回車後首先會提示你輸入的密碼:這個在簽名時要用的,要記住
然後會再確認你的密碼。
之後會依次叫你輸入姓名、組織單位、組織名稱、城市區域、省份名稱、國家代碼 (CN)等。
開始簽名。
在 C:\Program Files\Java\jdk1.6.0_10\bin 還提供一個工具 jarsigner.exe
運行命令給APK簽名:
jarsigner -verbose -keystore asaiAndroid.keystore -signedjar Lotteryonline_signed.apk LotteryOnline.apk asaiAndroid.keystore
-keystore: keystore的名稱
LotteryOnline_signed.apk: 簽名後的APK
LotteryOnline.apk: 簽名前的APK
然後按回車:會要求輸入剛才設置 的密碼,輸入後按回車就開始簽名了。
Ⅸ 一個超級大的安卓SDK,解壓之後怎麼關聯到ubuntu14
android sdk包括開發android app所需要的編譯、調試、測試開發工具和API庫。
下載android sdk:
http://developer.android.com/sdk/index.html
在這個下載頁中提供兩種下載方式:
集成了adt的ide和android sdk的包,即包含了android sdk、adt、eclipse的包。下載後,解壓就可以了用了,所有依賴關系統都已設置好了。
僅僅只有android sdk的包。
下載、安裝androidsdk
設置androidsdk環境變數
由於我們需要了解詳細的過程。所以我們目前選擇下載僅僅只有android sdk的包。
安裝、設置:
windows平台下:
下載後,解壓到到目錄:
E:sourceandroidandroid-sdk-windows
設置環境變數:ANDROID_SDK=E:sourceandroidandroid-sdk-windows
linux平台下:
下載集成了的sdk包
k@k-C410:/data/adt-bundle-linux-x86_64-20130917$ ls
eclipse sdk
設置sdk的環境變數:
export ANDROID_SDK=/data/adt-bundle-linux-x86_64-20130917/sdk
放到~/.bashrc文件中。
如果你是新手,看到這里就可以了,下面的內容你可能會看得暈,但是等你看完後面的文章後,再回頭看下面的內容,你就會好理解了.
android sdk瀏覽:
在根目錄中:
AVD Manager.exe:虛擬機管理工具
SDK Manager.exe:sdk管理工具
tools目錄:包括測試、調試、第三方工具。模擬器、數據管理工具等。
build-tools目錄:編譯工具目錄,包含了轉化為davlik虛擬機的編譯工具。
platform-tools目錄:包含開發app的平台依賴的開發和調試工具。包括 adb、fastboot等
platforms/<android-version>目錄:包括android的平台。包含在android.jar庫中。你必須指一個平台為你的編譯目標。
system-images目錄:編譯好的系統映像。模擬器可以直接載入。
sources目錄:androidsdk的源碼目錄
samples目錄:sdk例子
android sdk工具介紹:
SDK Manager.exe:sdk管理工具,用於管理、下載sdk、sdk工具,能及擴展工具。
zipalign:
對齊工具。用於對簽名後的apk包進行對齊。
更多信息可參考《Linux就該這么學》
Ⅹ android SDK下各目錄的用途,以及在不同系統下哪些是通用的
1. add-ons 這裡面保存著附加庫,比如google Maps,如果安裝了OPhone SDK,這里也會有一些類庫在裡面。
2. docs 這裡面是Android SDK API參考文檔,所有的API都可以在這里查到。
3. extras/market_licensing 作為Android Market版權保護組件,一般發布付費應用到電子市場可以用它來反盜版。
4. platforms 是每個平台的SDK真正的文件,裡面會根據API Level劃分的SDK版本。
5. platform-tools 保存著一些通用工具,比如adb、和aapt、aidl、dx等文件。
6. samples 是Android SDK自帶的默認示例工程。
7. tools 作為SDK根目錄下的tools文件夾,這里包含了重要的工具,比如ddms用於啟動Android調試工具。
8. extras 該文件夾下存放了google提供額USB驅動、Intel提供的硬體加速等附加工具包。