編輯:Android開發實例
Android application package文件。每個要安裝到android平台的應用都要被編譯打包為一個單獨的文件,後綴名為.apk,其中包含了應用的二進制代碼、資源、配置文件等。
apk文件實際是一個zip壓縮包,可以通過解壓縮工具解開。可以用zip解開*.apk文件,下面是一個helloword的apk示例文件
|– AndroidManifest.xml
|– META-INF
| |– CERT.RSA
| |– CERT.SF
| `– MANIFEST.MF
|– classes.dex
|– res
| |– drawable
| | `– icon.png
| `– layout
| `– main.xml
`– resources.arsc
在apk中的xml文件是經過壓縮的,可以通過AXMLPrinter2工具解開,具體命令為:
java -jar AXMLPrinter2.jar AndroidManifest.xml
HelloAndroid程序中Manifest文件的實例:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
package="name.feisky.android.test"
>
<application
android:label="@7F040001"
android:icon="@7F020000"
>
<activity
android:label="@7F040001"
android:name=".HelloAndroid"
>
<intent-filter
>
<action
android:name="android.intent.action.MAIN"
>
</action>
<category
android:name="android.intent.category.LAUNCHER"
>
</category>
</intent-filter>
</activity>
</application>
<uses-sdk
android:minSdkVersion="6"
>
</uses-sdk>
</manifest>
而原文件為:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="name.feisky.android.test"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloAndroid"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="6" />
</manifest>
classes.dex是java源碼編譯後生成的java字節碼文件。但由於Android使用的dalvik虛擬機與標准的java虛擬機是不兼容的,dex文件與class文件相比,不論是文件結構還是opcode都不一樣。目前常見的java反編譯工具都不能處理dex文件。
Android模擬器中提供了一個dex文件的反編譯工具,dexdump。用法為首先啟動Android模擬器,把要查看的dex文件用adb push上傳的模擬器中,然後通過adb shell登錄,找到要查看的dex文件,執行dexdump xxx.dex。但是這樣得到的結果,其可讀性是極差的。下面介紹一個可讀性比較好的工具。
工具准備:
1、把dex文件反編譯為jar文件的工具。(dex2jar)
2、把jar反編譯為java的工具。(JD-GUI)
反編譯的步驟
1、從APK中提取classes.dex文件,對APK文件解壓即可得到。 將其放到dex2jar的目錄下,打開cmd,運行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar。
2、運行JD-GUI工具,打開上面的jar文件,即可看到源代碼。
HelloAndroid實例:
package name.feisky.android.test;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroid extends Activity
{
public void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
setContentView(2130903040);
}
}
其原程序為:
package name.feisky.android.test;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
轉自:http://www.cnblogs.com/feisky/archive/2010/08/05/1793493.html
本文使用Matrix實現Android實現圖片縮放與旋轉。示例代碼如下:代碼如下:package com.android.matrix;import androi
一般來說,Android自身就包含了常用於嵌入式系統的SQLite,這樣就免去了開發者自己移植安裝的功夫。SQLite 支持多數SQL92標准,很多常用的SQL命
1、啟動虛擬機 2、我的android sdk在“E:\android\android開發環境\android SDK\platform-tools”把要安裝的a
AVD的全稱為:Android Virtual Device,就是Android運行的虛擬設備,他是Android的模擬器識別。建立的Android要運行,必須創