當前位置:首頁 » 安卓系統 » android編譯腳本

android編譯腳本

發布時間: 2022-05-22 13:54:04

⑴ 如何在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內核問題,解決方法如下:
執行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通過使用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源碼里不包含手機的驅動,所以編譯前需要將驅動先提出來以備後用!

    熱點內容
    android獲取數組 發布:2025-08-22 02:24:04 瀏覽:645
    徵型壓縮機 發布:2025-08-22 02:10:15 瀏覽:494
    真空壓縮袋能上飛機嗎 發布:2025-08-22 02:10:01 瀏覽:94
    怎麼刪除伺服器文件 發布:2025-08-22 02:04:07 瀏覽:168
    爐石傳說威脅腳本投降 發布:2025-08-22 01:54:10 瀏覽:331
    大大哇腳本 發布:2025-08-22 01:49:32 瀏覽:94
    python2pip 發布:2025-08-22 01:48:56 瀏覽:388
    php和null 發布:2025-08-22 01:48:49 瀏覽:964
    安卓手機怎麼強制解鎖 發布:2025-08-22 01:48:48 瀏覽:81
    安卓422怎麼樣 發布:2025-08-22 01:48:48 瀏覽:625