android的文件系統結構復雜而精細,程序安裝的位置至關重要。編譯Android源碼後,會在out/target/proct/generic目錄下生成多個重要文件:ramdisk.img、system.img、userdata.img、system、data、root。其中,system.img由system文件打包壓縮而成,userdata.img則由data文件打包壓縮。ramdisk.img是模擬器的文件系統,解壓ramdisk.img可發現,其內部文件與root文件夾中的文件基本相同。模擬器裝載ramdisk.img並解壓至內存,隨後分別將system.img和userdata.img掛載至ramdisk下的system和data目錄。我們編譯出的應用程序則存放於system/app下,而用戶安裝的程序則位於data/app下。
Android SDK及源碼能夠提供一系列強大的工具。ADB、DDMS、Emulator、AAPT等工具均包含其中,同時,還提供了kernel-qemu、ramdisk.img、system.img、userdata.img等重要文件。因此,只要擁有Android SDK,我們便能在模擬器上順利運行Android系統。源碼編譯後會生成Android SDK、ADB等工具、Android文件系統,以及ADT插件。這意味著,我們能夠從源碼中編譯出所有Android相關組件。
編譯Android源碼時,會生成多種工具和Android文件系統(如system.img等)。同樣,使用「makesdk」命令也能生成Android SDK,其中包含工具和Android文件系統。原安裝時也已安裝了Android SDK。在實際開發過程中,我們應當選擇哪些工具和Android文件系統呢?
B. 怎樣獲得Android app源代碼
獲取Android應用源代碼有幾種途徑,具體取決於你想要獲取哪個應用的源代碼以及你的目的。以下是幾種常見方法:
1. **公開的開源項目**:
- **GitHub、GitLab、Gitee等代碼託管平台**:許多Android開發者會在這些平台上分享他們的開源項目。你可以在這些平台上搜索應用名稱或相關關鍵詞來尋找源代碼。例如,訪問GitHub(https://github.com/),使用搜索欄輸入關鍵詞,如應用名稱或功能描述,找到相關的倉庫後,通常可以克隆或下載源代碼。
2. **官方發布**:
- 對於一些由大型組織或公司維護的Android應用,如系統應用或知名應用,它們可能會在官方網站或其GitHub頁面上公開源代碼。例如,Android開源項目AOSP(Android Open Source Project)就在其GitHub頁面上有完整的Android系統源代碼。
3. **反編譯第三方應用**:
- 如果你想獲取非開源的第三方應用源代碼,這涉及到反編譯。可以使用工具如JADX、Apktool、dex2jar配合JD-GUI等來反編譯APK文件。這個過程會生成近似原始的java代碼,但請注意,這樣做可能違反版權法,除非你擁有該應用的使用權或出於學習、安全研究等合法目的,並且遵循相關法律法規。
4. **購買源代碼**:
- 如之前提到的,一些在線市場如1688.com可能提供成品應用源代碼的購買服務。但購買時務必注意檢查源碼的合法性和質量,避免涉及侵權問題。
5. **聯系開發者**:
- 直接聯系應用的開發者請求源代碼。對於一些獨立開發者,如果你有正當理由,比如想貢獻代碼或學習特定功能的實現,他們可能會願意分享。
請記住,在進行任何反編譯或獲取源代碼的操作時,務必確保你的行為符合法律法規,尊重版權和知識產權。
C. 如何查看Android源碼
ndroidxref 還可以查看android的所有版本,只需將 http://androidxref.com/5.0.0_r2 的後綴5.0.0_r2 改成相應的版本即可
3、http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/
D. 怎樣查看 Android APP 源代碼
需要把反編譯的apk存放到apktools同級文件夾目錄下,然後運行要查看的安裝包,具體操作如下:
1、首先把反編譯的apk存放到apktools同級文件夾目錄下,如下圖所示。
E. 怎樣查看 Android APP源代碼
將apk文件拷貝至sdcard上。
命令順序如下:
進入Android sdk文件夾/tools目錄下
輸入adb shell
輸入su
輸入cd data
輸入cd app
這時就可以看到你安裝的所有的apk文件。輸入cp 空格 對應的apk 空格 /sdcard/
這樣就將apk文件拷貝出來了。
將apk文件後綴直接變成rar格式,可以看到熟悉的目錄結構了,
其中xml文件打開後都是二進制的,無法查看。
這時就用到了一個android4me的AXMLPrinter2工具。(請自行網路搜索)
輸入以下命令,將xml文件解析出來
java -jar AXMLPrinter2.jar showtimes_list.xml
此命令是在命令行中查看此showtimes_list.xml
將showtimes_list.xml生成xml文件,則輸入以下命令:
java -jar AXMLPrinter2.jar showtimes_list.xml > h.xml
目前進行到這一步,只能看到xml文件的內容,其工程中的java源文件還是看不到,看目錄結構下有一個classes.dex文件,我們需要將dex文件變為jar文件。
這里用到了另一個工具dex2jar。(自行搜索下載)
在Windows下解壓之後的目錄如下圖所示:
在命令行中,進入到此目錄下:
在Windows下,輸入以下命令:
dex2jar.bat c:classes.dex
運行完之後,在C盤會多一個classes.dex.dex2jar.jar文件,此文件就是我們需要的jar文件。
利用jd-gui,將jar文件反向工程為java代碼。(請自行搜索下載)
它分為Windows、Linux、和max三個版本,這里我下載的是Windows版本的。
解壓之後,雙擊運行exe文件,選擇classes.dex.dex2jar.jar文件,相應的jar文件中的Java文件就被反向工程顯示出來了!
F. 如何使用Android Studio開發/調試Android源碼
本文是以源碼中development/tools/idegen/README作為指導文檔.
環境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源碼
由於AS是基於IntelliJ IDEA開發的,所以本文也適用於IntelliJ IDEA
一、修改Android Studio(以下簡稱AS)的內存配置
因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio.vmoptions中-Xms和-Xmx的值。文檔中使用的是748m,可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一個沒有classpath的JDK,這樣可以確保使用源碼里的庫文件
在彈出的選擇進程(Choose Process)對話框中,勾選顯示所有進程,選擇要DEBUG的代碼所在的進程,點擊OK即可.
六、其它
代碼中很多地方提示CallrequiresAPILevelx.... 出現這個問題是因為AS將我們的工程當做安卓應用程序工程了,且源碼中沒有指定minSdkVersion.
我們只需在源碼根目錄加一個聲明minSdkVersion的AndroidManifest.xml文件即可(分享了一個AndroidManifest.xml)。
也可以考慮使用build.gradle來解決該問題。
G. 如何在Eclipse中查看Android源代碼
方法如下:
在eclipse中,滑鼠放在一個android提供的類上,按下ctrl鍵,會打開一個新頁面,提示找不到對應的類的class或者源文件,點擊attach source...