android編譯腳本
⑴ 如何在android源碼中編譯androidstudio文件
在Android源碼開發過程中,需要整合進第三方APP到系統中,作為內置應用。如果是第三方APP是以APK形式整合進項目中,那麼根據平台和公司的要求,只需修改編譯腳本就可以實現整合,這里不再贅述;本文講解拿到的第三方app是源碼,需要自己寫android.mk文件實現編譯apk功能。
現在Android app ide主要是兩個工具eclipse和android studio。Eclipse已經從google的android開發者網站中移除了下載鏈接,現在主流的android app開發工具就是Android studio。
⑵ 如何單獨編譯Android源碼中的模塊
第一次下載好Android源代碼工程後,我們通常是在Android源代碼工程目錄下執行make命令,經過漫長的等待之後,就可以得到Android系統鏡像system.img了。以後如果我們修改了Android源代碼中的某個模塊或者在Android源代碼工程新增一個自己的模塊,是不是還是執行make命令呢?答案是否定的,Google為我們准備了另外的命令來支持編譯單獨的模塊,以及重新打包system.img的命令。在繼續學習Android源代碼之前,就讓我們先來看看這個命令吧。
一. 首先在Android源代碼目錄下的build目錄下,有個腳本文件envsetup.sh,執行這個腳本文件後,就可以獲得一些有用的工具: USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh 注意,這是一個source命令,執行之後,就會有一些額外的命令可以使用: - croot: Changes directory to the top of the tree. - 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. - cgrep: Greps on all local C/C++ files. - jgrep: Greps on all local java files. - resgrep: Greps on all local res/*.xml files. - godir: Go to the directory containing a file. 這些命令的具體用法,可以在命令的後面加-help來查看,這里我們只關注mmm命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個目錄只包含一個模塊。
二. 使用mmm命令來編譯指定的模塊,例如Email應用程序: USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/ 編譯完成之後,就可以在out/target/proct/generic/system/app目錄下看到Email.apk文件了。Android系統自帶的App都放在這具目錄下。另外,Android系統的一些可執行文件,例如C編譯的可執行文件,放在out/target/proct/generic/system/bin目錄下,動態鏈接庫文件放在out/target/proct/generic/system/lib目錄下,out/target/proct/generic/system/lib/hw目錄存放的是硬體抽象層(HAL)介面文件。
三. 編譯好模塊後,還要重新打包一下system.img文件,這樣我們把system.img運行在模擬器上時,就可以看到我們的程序了。 USER-NAME@MACHINE-NAME:~/Android$ make snod
四. 參照Ubuntu上下載、編譯和安裝Android最新源代碼一文介紹的方法運行模擬器: USER-NAME@MACHINE-NAME:~/Android$ emulator 這樣一切就搞定了。
⑶ 如何單獨編譯Android源代碼中的模塊
1.make 模塊名稱
需要查看Android.mk文件的LOCAL_PACKAGE_NAME變數。
2.mmm命令
用於在源碼根目錄編譯指定模塊,參數為模塊的相對路徑。只能在第一次編譯後使用。比如要編譯Phone部分源碼,需要在終端中執行以下命令:
$mmm packages/apps/phone
3.mm命令
用於在模塊根目錄編譯這個模塊。只能在第一次編譯後使用。例如要編譯Phone部分源碼,需要在終端中執行以下命令:
$cd packages/apps/phone
$mm
註:mmm和mm命令必須在執行「.build/envsetup.sh」之後才能使用,並且只編譯發生變化的文件。如果要編譯模塊的所有文件,需要-B選項,例如mm -B。
⑷ 自己可以編譯安卓源碼嗎
用最新的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源碼編譯是干什麼
編譯Android系統。
⑹ 在電腦上為android設備編寫python腳本的好用編譯器
Android模擬器上安裝Python解釋器
我了解的有兩種方法可以下載並安裝Android軟體。一個是通過Android直接訪問網路,下載安裝;另一個是通過PC下載,然後通過模擬器工具ADB安裝。這里介紹第二種方式。
下載Python for Android解釋器;
解釋器框架,點擊下載:http://code.google.com/p/android-scripting/downloads/detail?name=sl4a_r3.apk&can=2&q=
python解釋器,點擊下載:http://code.google.com/p/android-scripting/downloads/detail?name=PythonForAndroid_r4.apk&can=2&q=
安裝Python for Android解釋器;
設置環境變數,加入Android模擬器工具 adb.exe所在的路徑。
打開cmd運行界面,輸入adb。你會看到如下信息:
輸入adb device。
輸入adb install –s <解釋器框架所在路徑>;比如adb install –s c:/sl4a_r3.apk。安裝完畢後,在你的android中就會出現SL4A圖標。
同上的步驟,再把python解釋器安裝上。比如adb install –s c:/PythonForAndroid_r4.apk。安裝完畢後,在你的Android中就會出現Python for Android圖標。
在Android中點擊Python for Android。進去後,有一個install的button,點擊安裝。這個程序會通過網路,下載到所需要的所有程序包。
測試Python for Android解釋器;
當一切安裝妥當後,在Android中點擊SL4A圖標。
在出現的列表中點擊hello_world.py(或者其他的腳本);界面左上角會出現一個小的SL4A的圖標,同時界面也會出現「hello world!」
如果你的Android運行結果如上所述,證明你的安裝成功了,繼續下一步。
Step4 : 編寫可在Android模擬器運行的Python Script並執行
編寫Python Script For Android;
傳遞Python Script到Android模擬器;
假設你編寫的python腳本存放在c:/Hello_world.py中
打開cmd界面,運行adb push <local> <remote>;例如,adb push c:/Hello_world.py /sdcard/sl4a/scripts/Hello_wold.py
在Android模擬器上運行Python Script;
在Android上運行腳本,你會看到「Hello world!」出現在屏幕上。 (如同step3的結果)
如果你的運行結果如上所述,那麼恭喜你,你已成功上傳並運行了你的第一個android python腳本,繼續下一步。
⑺ 怎麼生成android 的測試腳本
4.1、建立工程
用Eclipse新建Java Project,注意,不是Android Project!
4.2、添加JUnit庫
next->Libraries->Add Library
4.3、添加Android庫
Add External JARs:
找到路徑Android-sdkplatformsandroid-17下面的android.jar和uiautomator.jar添加進來:
所有庫添加完應該是這個樣子:
4.4、在src中添加包,然後添加class文件
文件內容為:
[java] view plain
package com;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
public class Runner extends UiAutomatorTestCase {
public void testDemo() throws UiObjectNotFoundException {
getUiDevice().pressHome();
// 進入設置菜單
UiObject settingApp = new UiObject(new UiSelector().text("Settings"));
settingApp.click();
//休眠3秒
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// 進入語言和輸入法設置
UiScrollable settingItems = new UiScrollable( new UiSelector().scrollable(true));
UiObject languageAndInputItem = settingItems.getChildByText(
new UiSelector().text("Language & input"), "Language & input", true);
languageAndInputItem.clickAndWaitForNewWindow();
}
}
上面工程路徑在e:workspaceAutoRunner,類全名為com.Runner,至於具體的作用我們現在不去關心。
4.5、找到SDK ID
CMD進入Android-sdk ools目錄下,運行命令:
android list
查看對應android版本的SDK的ID值,當前是60;
4.6、創建build文件
仍然在Android-sdk ools目錄下,運行命令:
android create uitest-project -n <name> -t <android-sdk-ID> -p <path>
比如:
android create uitest-project -n AutoRunner -t 60 -p e:workspaceAutoRunner
上面的name就是將來生成的jar包的名字,可以自己定義,android-sdk-ID就是上面看到的6;path是Eclipse新建的工程的路徑;運行命令後,將會在工程的根目錄下生成build.xml文件。如果沒生成,檢查上面的步驟。
4.7、編譯生成jar
CMD進入項目的工程目錄,然後運行ant build,將使用ant編譯生成jar,成功將會提示:
然後會在bin目錄下生成jar文件。
4.8、push並運行jar
adb push <jar文件路徑> data/local/tmp
adb shell uiautomator runtest <jar文件名> -c <工程中的類名,包含包名>
比如:
adb push e:workspaceAutoRunnerinAutoRunner.jar data/local/tmp
adb shell uiautomator runtest AutoRunner.jar -c com.Runner
然後就能看到手機會按照Runner中的步驟自動執行。具體效果就是,進入設置菜單,然後再進入「語言和輸入法」菜單
⑻ 想給安卓模擬器編輯腳本,用什麼編譯好呢
如果單純是按鍵的話可以用按鍵精靈+bili圈重力大師寫重力腳本配合估計可以,重力腳本是模擬器本身自帶的功能
⑼ 透過ant腳本,編譯打包android工程怎麼解決
通過ant腳本,編譯打包android工程方法步驟如下:
1.Android程序編譯、打包、簽名、發布的三種方式:
方式一:命令行手動編譯打包
方式二:使用ant自動編譯打包
方式三:使用eclipse+ADT編譯打包
2.Android編譯、打包的步驟:
2.1第一步 生成R.java類文件:
Eclipse中會自動生成R.java,ant和命令行使用android SDK提供的aapt.ext程序生成R.java。
2.2第二步 將.aidl文件生成.java類文件:
Eclipse中自動生成,ant和命令行使用android SDK提供的aidl.exe生成.java文件。
2.3第三步 編譯.java類文件生成class文件:
Eclipse中自動生成,ant和命令行使用jdk的javac編譯java類文件生成class文件。
2.4第四步 將class文件打包生成classes.dex文件:
Eclipse中自動生成,ant和命令行使用android SDK提供的dx.bat命令行腳本生成classes.dex文件。
2.5第五步 打包資源文件(包括res、assets、androidmanifest.xml等):
Eclipse中自動生成,ant和命令行使用Android SDK提供的aapt.exe生成資源包文件。
2.6第六步 生成未簽名的apk安裝文件:
Eclipse中自動生成debug簽名文件存放在bin目錄中,ant和命令行使用android SDK提供的apkbuilder.bat命令腳本生成未簽名的apk安裝文件。
2.7第七步 對未簽名的apk進行簽名生成簽名後的android文件:
Eclipse中使用Android Tools進行簽名,ant和命令行使用jdk的jarsigner對未簽名的包進行apk簽名。
這個ant腳本只能編譯打包一個單獨的android工程或依賴一個library 的android工程
首先配置ant的環境變數,這個我就不多少了,自己查。
⑽ 如何製作Android源碼編譯腳本
編譯生成的 boot.img, system.img, userdata.img 用fastboot 就可以直接刷到機器去啊!由於android源碼里不包含手機的驅動,所以編譯前需要將驅動先提出來以備後用!