最簡單的Android項目(含有資源文件)

上次的項目沒有使用資源文件,打包出的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裏的內容

相關文章
相關標籤/搜索