如下:
1.在ubuntu系統下,進入源碼根目錄,運行如下命令。
mmm命令編譯idegen模塊,在源碼目錄下的out/host/linux-x86/frameworks/目錄下生成了idegen.jar文件。
2.在源碼目錄下繼續執行如下命令:
3.development/tools/idegen/idegen.sh命令執行完成,會在根目錄下生成
android.iml和android.ipr這兩個文件,這兩個文件是Android Studio的工程配置文件。
4.到這一步我們可以打開Android Studio導入源碼了,不過還有一些要注意的地方,如果我們就這么直接導入,會把所有的源碼模塊導入到Android Studio中,這會很慢的,想想源碼那麼多文件,直接全部導入,如果你的電腦配置不好,可能會直接假死。所以我們最好過濾一下我們不需要的源碼文件,只導入我們需要的模塊。
對比源碼下目錄,我把除了frameworks模塊的其他所有模塊都過濾掉了。這樣導入的速度很快,3分鍾左右就導入完成了。
5.所有配置完成了,下面啟動Android Studio開始導入源碼。
6.Android Studio導入源碼
點擊ok,大概過了3-5分鍾,就導入完成了。
7.好了,現在我們可以愉快的使用Android Studio查看源碼了。
8.如果你不想編譯源碼,還想把源碼導入Android Studio的簡單方法是什麼呢,到這一步我想大家都知道了,就是把上面生成的兩個文件android.iml和android.ipr拷貝到你的未編譯源碼根目錄就可以用Android Studio導入了。
9.當然,一般我們大部分人不在ubuntu下開發app ,為了能在Windows或Mac系統下也能使用Android Studio查看未編譯的源碼,我們也可以像上一步那樣直接拷貝ubuntu下的android.iml和android.ipr文件到Windows或Mac系統下的android源碼根目錄下,然後導入Adnroid Studio中,這樣就可以在這兩個平台上進行查看源碼了,不用一直開虛擬機了。
⑵ android編譯源碼後怎樣運行
編譯:
1. 初始化:
source build/envsetup.sh
2. 選擇target
lunch
然後選擇aosp_arm
3.
make -j4
等待大概2個小時,就可以順利編譯完成。
模擬器運行
直接運行emulator,會出現如下錯誤:
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.
原因是文件路徑沒有設置,解決辦法添加絕對路徑:
out/host/Linux-x86/bin/emulator -kernel prebuilts/qemu-kernel/arm/kernel-qemu -sysdir out/target/proct/generic/ -system out/target/proct/generic/system.img -ramdisk out/target/proct/generic/ramdisk.img -data out/target/proct/generic/userdata.img -sdcard sdcard.img -scale 0.7 -memory 512 -partition-size 1024
然後運行模擬器
⑶ android源碼 下載 如何使用
1、這位兄弟,不知道你說的源碼是不是真正意義上的源碼(源碼很大的,2.3之前的應該在3G左右,4.0的有4G多點),如果是android-sdks\samples\android-15目錄下的一某個例子,一樓正解。在eclipse的菜單->File->New-Project->Create project from existing source,選擇Android->Android Sample Project
2、如果是google系統源碼,你用eclipse就很難運行出來(例如Mms,彩信),因為上層運行時會依賴底層很多東西(例如一些jar包),想用eclipse運行出來必須把上層所依賴的全導進去,這個過程很復雜。所以,我建議,如果想運行源碼(如:Mms,路徑:packages\apps\Mms),弄一個linux系統。
3、實例太大,沒法上傳
⑷ Android怎麼導入源代碼並運行
導入的項目有問題吧,一般情況下,jar包或者library有可能發生錯誤,你可以重新設置下路徑
選中當前項目右擊----properties-------Android(左邊)-----查看右下部分有沒沒有library有的話remove再此重新導入
或者:
選中當前項目右擊----properties-------java Build Path-----查看右面4個選項卡有沒有報錯的。。。如果有,同樣,removew在add進入
⑸ 我在網上下了一些Android的源代碼,不知道怎麼用Eclipse運行
具體來說,有兩種方式。
第一種:
在你創建android project 的時候在選擇
Create project from existing source 按後選
Browse 在你的電腦裡面找到要引入的代碼。
第二種:
可以建立一個Applocation name
Package name
Create Activity
還有 android版本相同的項目
建立以後,點右鍵選擇Import 再選File System
找到要引入的項目,把裡面的東西都引入進來就可以了。
⑹ 自己可以編譯安卓源碼嗎
用最新的Ubuntu 16.04,請首先確保自己已經安裝了Git.沒安裝的同學可以通過以下命令進行安裝:
sudo apt-get install git git config –global user.email 「[email protected]」 git config –global user.name 「test」
其中[email protected]為你自己的郵箱.
簡要說明
android源碼編譯的四個流程:1.源碼下載;2.構建編譯環境;3.編譯源碼;4運行.下文也將按照該流程講述.
源碼下載
由於某牆的原因,這里我們採用國內的鏡像源進行下載.
目前,可用的鏡像源一般是科大和清華的,具體使用差不多,這里我選擇清華大學鏡像進行說明.(參考:科大源,清華源)
repo工具下載及安裝
通過執行以下命令實現repo工具的下載和安裝
mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo
補充說明
這里,我來簡單的介紹下repo工具,我們知道AOSP項目由不同的子項目組成,為了方便進行管理,Google採用Git對AOSP項目進行多倉庫管理.在聊repo工具之前,我先帶你來聊聊多倉庫項目:
我們有個非常龐大的項目Pre,該項目由很多個子項目R1,R2,...Rn等組成,為了方便管理和協同開發,我們為每個子項目創立自己的倉庫,整個項目的結構如下:
這里寫圖片描述
執行完該命令後,再使用make命令繼續編譯.某些情況下,當你執行jack-admin kill-server時可能提示你命令不存在,此時去你去out/host/linux-x86/bin/目錄下會發現不存在jack-admin文件.如果我是你,我就會重新repo sync下,然後從頭來過.
錯誤三:使用emulator時,虛擬機停在黑屏界面,點擊無任何響應.此時,可能是kerner內核問題,解決方法如下:
執行如下命令:
通過使用kernel-qemu-armv7內核 解決模擬器等待黑屏問題.而-partition-size 1024 則是解決警告: system partion siez adjusted to match image file (163 MB >66 MB)
如果你一開始編譯的版本是aosp_arm-eng,使用上述命令仍然不能解決等待黑屏問題時,不妨編譯aosp_arm64-eng試試.
結束吧
到現在為止,你已經了解了整個android編譯的流程.除此之外,我也簡單的說明android源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.
⑺ 怎麼在android studion 運行apk源碼
一、修改Android Studio(以下簡稱AS)的內存配置
因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的機器修改studio.vmoptions)中-Xms和-Xmx的值。文檔中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一個沒有classpath的JDK, 這樣可以確保使用源碼里的庫文件
並將其作為要使用的SDK的Java SDK。如下圖
三、生成導入AS所需配置文件(*.ipr)
①編譯源碼(為了確保生成了.java文件,如R.java;如果編譯過,則無需再次編譯)
②檢查out/host/linux-x86/framework/目錄下是否有idegen.jar
如果idegen.jar不存在,執行:
mmm development/tools/idegen/
在5.0.1的源碼中會生成res.java的文件夾,導致idegen.jar運行時拋FileNotFoundException,這是idegen的代碼不夠嚴謹造成的。
我的分享里有修改這個bug的patch,或者直接使用我分享的idegen.jar。
③執行
development/tools/idegen/idegen.sh
等待出現類似下面的結果:
Read excludes: 5ms
Traversed tree: 44078ms
這時會在源碼的根目錄下生成android.ipr和android.iml兩個IntelliJ IDEA(AS是基於IntelliJ IDEA社區版開發的)的配置文件
Tips:
AS在導入代碼時比較慢,建議先修改android.iml,將自己用不到的代碼exclude出去.可以仿照過濾.repo文件夾的語法,如:
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
刪除掉所有不需要的mole-library項 PS:感謝 @dezng 的建議
這樣在導入時就會跳過abi和art文件夾.過濾的越多,AS的處理速度就會越快.
④在AS中打開源碼根目錄下新生成的android.ipr
如果在導入時AS出現
則建議按照其給定的解決方法來解決(網址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit),具體內容如下圖:
四、解決源碼中跳轉錯誤問題
①為當前工程設置正確的SDK和JDK
②設置'Moles'的依賴
先將所有依賴刪掉,只留下上圖'1'所指向的兩個(注意:這里刪除全部只是為了方便。如果確實用到了.jar,在將它們的路徑添加進來就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
點擊上圖中'2'指向的'+'並選擇上圖'3'指向的'Jars or directories'選項,依次將frameworks和external文件夾添加進來.如:
其它版本的代碼在添加frameworks時可能會顯示成:
沒有關系,只是顯示問題,點擊OK還是會把frameworks路徑添加進去的.
如果還有代碼跳轉錯誤,請仿照上面的步驟將相應代碼的路徑或jar文件添加到其Dependencies標簽頁中即可.
五、DEBUG源碼
我們可以通過給剛導入的工程在'Moles'中添加'Android Framework'來讓AS將它作為一個Android工程,從而方便我們調試代碼.
可以按照上圖中'1'和'2'來添加Android Framework支持.
在代碼中加斷點,然後選擇'Run'->'Attach debugger to Android process'或者直接點擊下圖所示的圖標
在彈出的選擇進程(Choose Process)對話框中,勾選顯示所有進程,選擇要DEBUG的代碼所在的進程,點擊OK即可.
六、其它
代碼中很多地方提示Call requires API Level x.... 出現這個問題是因為AS將我們的工程當做安卓應用程序工程了,且源碼中沒有指定minSdkVersion.
我們只需在源碼根目錄加一個聲明minSdkVersion的AndroidManifest.xml文件即可(分享了一個AndroidManifest.xml)。
也可以考慮使用build.gradle來解決該問題。
文中所使用的文件地址:http://yunpan.cn/cf3MBa2688eBw (提取碼: 64e5)
⑻ 如何運行打包的android源代碼文件
android源碼目錄下的build/envsetup.sh文件,描述編譯的命令
-
m:
makes
from
the
top
of
the
tree.
-
mm:
builds
all
of
the
moles
in
the
current
directory.
-
mmm:
builds
all
of
the
moles
in
the
supplied
directories.
要想使用這些命令,首先需要在android源碼根目錄執行.
build/envsetup.sh
腳本設置環境
m:編譯所有的模塊
mm:編譯當前目錄下的模塊,當前目錄下要有android.mk文件
mmm:編譯指定路徑下的模塊,指定路徑下要有android.mk文件
下面舉個例子說明,假設我要編譯android下的\hardware\libhardware_legacy\power模塊,當前目錄為源碼根目錄,方法如下:
1、.
build/envsetup.sh
2、mmm
hardware/libhardware_legacy/power/
編譯完後
運行
make
snod
會重新將你改過的模塊打入到system.img中
⑼ 自己開發的android程序怎麼在手機上運行
1
首先在虛擬機上運行一次,然後打開你的源代碼在bin文件下有個apk文件把它拿出來裝到你手機上就可以了
2或你以後可以直接用真機代替虛擬機搞開發,可以直接連接數據線到電腦,(要有驅動,如不知道怎麼下驅動,可以下載91手機助手或豌豆莢幫你自動安裝),然後你在Eclipse下點擊運行你的程序是可以在Target項中點擊Manual選擇真機運行
⑽ 怎樣運行Android源代碼
小編初學android的時候也不知道如何導入源碼,但經過半天的琢磨··終於找到了一個好的捷徑。 第一步在Eclipse 開發環境中,選擇File---》import
第二步選中所要導入的文件
第三步 選中導入的項目,右鍵選擇Properties--》
第四步 選擇「Android」選項,勾選TargName,然後單擊OK。小提示:TagName要與你當前模擬器的版本匹配,比如筆者的是android 2.3.3。
第五步 在導入的項目按滑鼠右鍵 ,單擊Android tool ---》Fix Project Properties
這樣子··你下載的源碼就可以運行了,雖然步驟煩瑣了一點,但是操作多了就了就順手了。 不過··大家有什麼更便捷的方法也可以推薦給我。