上次的項目沒有使用資源文件,打包出的apk安裝後是系統默認圖標,程序標題也是包名加類名。java
添加資源須要對編譯的命令作一點調整。android
首先在項目根目錄新建res和assets目錄,在res內新建drawable和values目錄。app
在assets內新建文本文件info.txt,內容隨意。測試
在values內新建xml文件strings.xml,內容以下:ui
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string name="app_name">資源測試</string> 4 </resources>
而後將須要的程序圖標拷入drawable目錄,文件名爲icon.pngthis
修改AndroidManifest.xml添加圖標和程序標題,內容以下:spa
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="test.android"> 3 <application android:icon="@drawable/icon" 4 android:label="@string/app_name"> 5 <activity android:name=".Mini"> 6 <intent-filter> 7 <action android:name="android.intent.action.MAIN" /> 8 <category android:name="android.intent.category.LAUNCHER" /> 9 </intent-filter> 10 </activity> 11 </application> 12 </manifest>
接着對Mini.java作一些改動,加入讀取assets文件的方法,以下:code
1 package test.android; 2 3 import java.io.BufferedReader; 4 import java.io.InputStreamReader; 5 6 import android.app.Activity; 7 import android.os.Bundle; 8 import android.app.AlertDialog; 9 10 public class Mini extends Activity { 11 12 public String stringFromAssets(String fileName) { 13 StringBuilder res = new StringBuilder(); 14 15 try { 16 BufferedReader bufReader = new BufferedReader(new InputStreamReader(getResources().getAssets().open(fileName))); 17 String line = null; 18 19 while (null != (line = bufReader.readLine())) { 20 res.append(line); 21 } 22 } catch (Exception e) { 23 e.printStackTrace(); 24 } 25 return res.toString(); 26 } 27 28 public void onCreate(Bundle savedInstanceState) { 29 super.onCreate(savedInstanceState); 30 new AlertDialog.Builder(this).setMessage(stringFromAssets("info.txt")).show(); 31 } 32 }
從這裏下載演示項目orm
首先要編譯資源,在項目根目錄建立gen目錄,保存生成的R.java資源編號,在控制檯輸入如下命令:xml
D:\Android\sdk\build-tools\23.0.3\aapt.exe package -f -m -J gen -S res -I \Android\sdk\platforms\android-23\android.jar -M AndroidManifest.xml
編譯java源文件時,加入R.java源文件:
javac -encoding utf-8 -source 1.6 -target 1.6 -bootclasspath \Android\sdk\platforms\android-23\android.jar -d bin\classes src\test\android\Mini.java gen\test\android\R.java
將編譯好的文件打包成dex格式
D:\Android\sdk\build-tools\23.0.3\dx.bat --dex --output=bin\classes.dex bin\classes
將資源文件打包
D:\Android\sdk\build-tools\23.0.3\aapt.exe package -f -M AndroidManifest.xml -S res -A assets -I \Android\sdk\platforms\android-19\android.jar -F bin\mini.ap_
用apkbuilder將全部文件打包成apk
D:\Android\sdk\tools\apkbuilder.bat \workspace\test\android\minimum\mini_unsigned.apk -v -u -z D:\workspace\test\android\minimum\bin\mini.ap_ -f D:\workspace\test\android\minimum\bin\classes.dex -rf D:\workspace\test\android\minimum\src
對apk文件簽名
jarsigner -verbose -keystore my.keystore -keypass 123456 -storepass 123456 -signedjar mini.apk mini_unsigned.apk my.keystore
將生成的apk安裝到手機,運行,彈出的對話框裏會顯示assets目錄下info.txt裏的內容