打開androidfby中的Android反編譯工具,開始直接反編譯,選中你要反編譯的apk,反編譯即可,這樣就可以得到軟體中圖片,xml,dex文件,或者直接用解壓文件解壓,但是不能保證xml正常顯示,所以我們最好是結合一起用
打開反編譯之後的文件夾,找到classes.dex,將其復制到dex2jar的文件夾目錄下面,與dex2jar.bat在同一目錄即可。打開命令提示符,一直打開到dex2jar目錄,執行以下命令dex2jar.bat classes.dex
這時會在dex2jar目錄下生成一個classes_dex2jar.jar文件,這時運行jd-gui目錄下的jd-gui.exe,選擇File-----》Openfile------》classes_dex2jar.jar,即可查看java代碼了
『貳』 Java移動識別apk文件。
不是太明白,但手機肯定要認識的APK,才可以安裝
『叄』 需要在java環境下取得apk應用程序名
這個很簡單,你需要使用PackageManager,你查看這個類,就知道怎麼獲取Android手機里所有的應用程序的應用名稱了,我的程序在linux里,若你查找了 還沒搞定我可以給你一段代碼.
// 獲取packageManager對象
PackageManager packageManager = this.getPackageManager();
/*getInstalledApplications 返回當前設備上安裝的應用包集合
* ApplicationInfo對應著androidManifest.xml中的application標簽。通過它可以獲取該application對應的信息
*/
List<ApplicationInfo> applicationInfos = packageManager.getInstalledApplications(0);
以上是主要代碼
applicationInfos里的是ApplicationInfo類,ApplicationInfo applicationInfo = applicationInfos.get(i);
String packageName = applicationInfo.packageName;// 包名
String packageLabel = packageManager.getApplicationLabel(applicationInfo).toString();
packageLabel 這個就是應用程序名稱
『肆』 java如何根據apk路徑讀取apk的包名以及版本號
IO流,在程序中根據路徑可以找到報名,不過你這個程序部署到真機上就不行了
『伍』 在JAVA中怎麼解析Android APK啊 例如解析出apkde 名字 引用圖片, 能否給一個完整的代碼學習下
你是想列出手機里安裝的程序和每個程序的icon吧?
我這里倒是有一個這樣的demo.
『陸』 怎麼從apk 中獲取r.java里的內容
R.java文件介紹
HelloWorld工程中的R.java文件
package com.android.hellworld;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
R.java文件中默認有attr、drawable、layout、string等四個靜態內部類,每個靜態內部類分別對應著一種資源,如layout靜態內部類對應layout中的界面文件,其中每個靜態內部類中的靜態常量分別定義一條資源標識符,如public static final int main=0x7f030000;對應的是layout目錄下的main.xml文件。
由於目前【drawable-*dpi】目錄下都只有icon.png一個圖片文件,因此此時不同詳述的同名的icon.png文件在drawable內部類總只有一個icon屬性。如果我們在【drawable-*dpi】目錄下再添加一幅圖片,則內部類中會自動的添加一個icon屬性。
PS:添加資源的命名規則:資源文件只能以小寫字母和下劃線做首字母,隨後的名字中只能出現 [a-z0-9_.] 這些字元,否則R.java文件不會自動更新,並且eclipse會提示錯誤。
理解了R.java文件中內容的來源,即當開發者在res/目錄中任何一個子目錄中添加相應類型的文件之後,ADT會在R.java文件中相應的匿名內部類中國自動生成一條靜態int類型的常量,對添加的文件進行索引。如果在layout目錄下再添加一個新的界面,那麼在public static final class layout中也會添加相應的靜態int常量。相反當我們在res目錄下刪除任何一個文件,其在R.java中對應的記錄會被ADT自動刪除。
R.java文件按除了有自動標示資源的索引功能之外,還有另外一個主要的功能,如果res目錄中的某個資源在應用中沒有被使用到,在該應用被編譯的時候系統就不會把對應的資源編譯到該應用的APK包中,這樣可以節省Android手機的資源。
如何通過R.java文件來引用到所需要的資源
1.在java程序中引用資源
按照java的語法來引用即:R.resource_type.resource_name
注意:resource_name不需要文件的後綴名
Android系統本身自帶了很多的資源,我們也可以進行引用,只是需要再前面加上「Android.」以聲明該資源來自Android系統,即:Android.R.resource_type.resouce_name
例:【drawable-*hpi】下的icon.png
該圖片在R.java文件的映射為drawable內部類下icon參數,則如果要獲取該資源,則寫法為:R.drawble.icon
2.在XML文件中引用資源
格式:@[package:]type/name
在xml文件中,如main.xml以及AndroidMainfest.xml文件中通過「@drawable/icon」的方式獲取。其中「@」代表的是R.java類。「drawable」代表的是R.java中的靜態內部類「drawable」,「/icon」代表靜態內部類「drawable」中的靜態屬性「icon」,而該屬性可以指向res目錄下的「drawable-*dpi」中的icon.png資源。其他類型的文件也比較類似。凡是在R文件中定義的資源都可以通過「@Static_inner_classes_name/resource_name」的方式獲取。如「@id/button」,「@string/app_name」。
如果訪問的是Android系統中自帶的文件,則要添加包名「Android:」。例如:android:textColor="@android:color/red"
在布局文件中當我們需要為一些組件添加Id屬性作為標識,可以使用如下的表達式:「@+id/string_name」,其中「+」表示在R.java的名為id的內部類中國添加一條記錄。例:「@+id/button」的含義是在R.java文件中的id這個靜態內部類添加一條常量名為button,該常量就是該資源的標識符。如果 id這個靜態內部類不存在,則會先生成它。
『柒』 JAVA手機如何打開apk文件
apk文件是只能谷歌手機才可以打開的
Java是非智能手機
操作系統不同
就不可以打開咯
『捌』 apk 格式的軟體可以安裝在Java中嗎。
你好,首先你要理解如下內容在Android平台下安裝文件的後綴名為.apk,
就和塞班平台安裝文件的後綴名為.sis一樣,所以我們一般稱Android平台下安裝文件為APK,
這里介紹幾個安裝APK軟體</a>的方法,可以將APK軟體安裝到手機里。
首先,需要對手機進行設置如下:
設置——應用程序——勾選"未知源"
設置——應用程序——開發——勾選"USB 調試安裝APK軟體方法一
需要先下載一個資源管理器軟體,可以通過網路在MARKET中下載一個資源管理器,
這里推薦ASTRO通過方法一把資源管理器安裝好,之後再安裝軟體只要把APK的安裝文件拷貝到SD卡里,
之後使用資源管理器軟體在SD卡下打開 ".APK"的安裝文件,直接安裝即可.安裝APK軟體的方法二
設置——應用程序——APK安裝器只要把APK程序都放到SD卡上,就可以直接在這個內置的APK安裝器
上進行軟體的安裝與卸載,內置的APK安裝器支持程序的批量安裝與卸載。
1/ apk文件結構:
Apk文件::
Android application package文件。每個要安裝到OPhone平台的應用都要被編譯打包為一個單獨的文件,後綴名為.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
2/ apk文件解壓後反編譯:
2.1 圖片等多媒體文件:沒有編譯,無需反編譯。
2.2 layout等二進制xml文件:使用AXMLPrinter將其轉換為可讀的xml文件:java -jar AXMLPrinter2.jar main.xml > new_main.xml
工具下載地址: http://code.google.com/p/android4me/downloads/list
2.3 class文件反編譯:
Android模擬器中提供了一個dex文件的反編譯工具,dexmp。用法為首先啟動Android模擬器,把要查看的dex文件用adb push上傳的模擬器中,然後通過adb shell登錄,找到要查看的dex文件,執行dexmp xxx.dex。
目前在網上能找到的另一個dex文件的反編譯工具是Dedexer。Dedexer可以讀取dex格式的文件,生成一種類似於匯編語言的輸出。這種輸出與jasmin[ ]的輸出相似,但包含的是Dalvik的位元組碼。
2.4 resources.arsc資源文件:參考漢化部分
3/ android 軟體漢化
方案1:通過16進制編碼軟體自行替換英文
1.JDK(Java Development Kit) -開發環境
2.Auto-Sign -簽名工具
3.Hex Workshop -十六進制編輯器
4.WinRAR -壓縮軟體
圖文並茂示例: http://bbs.blueshow.net/thread-604533-1-1.html
方案2:通過漢化開發人員自行編寫的漢化軟體For Android
1.JDK(Java Development Kit) -開發環境
2.Android ResEdit-漢化軟體
3.WinRAR -壓縮軟體
『玖』 java手機支持apk格式嗎什麼是apk格式啊!
apk是android(安卓)應用程序的後綴
手機上有java並不支持apk,java支持後綴為jar(jad是個屬性文件)
必須有android(安卓)系統!~
『拾』 如何通過java,不進行解壓就把iso、apk、gz等壓縮文件中的文件名讀取出來求可行的思路!謝謝!
這個應該是實現不了的