當前位置:首頁 » 編程軟體 » 安卓自編譯

安卓自編譯

發布時間: 2023-03-04 17:51:59

1. 如何單獨編譯安卓系統源碼指定模塊

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中

2. 如何給安卓應用編譯

把常用的應用程序編譯到img文件中,就成了系統的一部分,用戶不必自己安裝,當然也卸載不了;
同時也可以刪減系統自帶的應用程序,精簡系統;

1.\build\target\proct 目錄下generic.mk文件:
java代碼 收藏代碼
PRODUCT_PACKAGES := \
AccountAndSyncSettings \
DeskClock \
AlarmProvider \
Bluetooth \
Calculator \
Calendar \
Camera \
testMid \
CertInstaller \
DrmProvider \
Email \
Gallery3D \
LatinIME \
Launcher2 \
Mms \
Music \

我們添加一個testMid \ 應用名稱。
2.把testMid包放入
\packages\apps 目錄下,修改android.mk文件。

Java代碼 收藏代碼
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := testMid
LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)

註:LOCAL_PACKAGE_NAME := testMid (包名必須和generic.mk中添加的相同)
編譯源碼,可以看到在
\out\target\proct\smdkv210\system\app
目錄下生存了testMid.apk了。這時system.img也包含了此應用。
-------------------------------------------------------------------
特殊情況:有時,應用需要包含jar包,這時的app導入源碼時會出現問題:
MODULE.TARGET.JAVA_LIBRARIES.libarity already defined by ... stop

由於 LOCAL_STATIC_JAVA_LIBRARIES := libarity 會引發錯誤信息。
目前解決方法是:
\build\core 目錄下修改base_rules.mk
注釋掉錯誤信息:

ifdef $(mole_id)
#$(error $(LOCAL_PATH): $(mole_id) already defined by $($(mole_id)))
endif
$(mole_id) := $(LOCAL_PATH)

--重新編譯,這時可以通過了。

(2)、刪除原廠(Telchips)帶源碼的應用程序,如DTV_DVBT
在/device/telechips/m801/device.mk
注釋掉相應語句:
# PRODUCT_PACKAGES += \
# SampleDVBTPlayer \
同時,在/out/target/proct/m801/system/app 找到相應的.APK包,並刪除

3. 如何自己編譯android系統並製作刷機包

android系統製作刷機包方法:

【一】:下載安裝最新版ROM助手(市場中有很多類似的製作工具,關鍵要求操作簡單,功能強大),安裝程序非常簡單,只需在一隻蘑菇首頁內直接下載,並解壓到自己的電腦安裝即可。

【二】:如果已經下載了與機型匹配的ROM刷機包,那麼現在可以直接打開ROM助手了,接下來繪制專屬個性的完美刷機包就從這里開始吧。

【三】:打開軟體後,它會自動升級到最新版本,另外打開主界面後,會直觀簡明的顯示出它的所有功能,例如:性能優化,系統精簡,預裝APK,簽名打包等等。提醒大家,不要貪心哦,要根據自己的需求點擊需要操作的功能,如系統精簡,然後進入操作界面,所有功能全部修改一遍也無妨,反正都是一鍵操作,省時省力。

4. 怎樣設置Android Studio自動編譯工程

1.Eclipse下App放置在項目根目錄的bin目錄中 2.而Android studio大改後,放在了mole中,所以你一定要記得你的存放路徑。也就是工程對應的文件夾。 android studio工程的存儲路徑下app/build/outputs/apk 其中app是你的mole,在對應的mole下即可找到

5. androidstudio 不自動編譯

在 Android Studio使用教程(一)中簡要介紹了Android Studio的基本使用,包括安裝、新建工程、工程結構以及主題設置。今天接著講第二篇,主要包括如下內容: 從Eclipse導入工程到Android Studio Eclipse工程與Android Studio的區別 真機運行以及常用快捷鍵 需要重申一下,我所有的操作與版本是基於Mac系統,在Windows上的同學基本類似(作為一個技術人員,這些應該都不是問題大笑),下面就分主題開始吧: 一、從Eclipse導入工程到Android Studio 根據官方的介紹,Android Studio可以兼容Eclipse的現有工程,但需要做一些操作: 首先升級ADT到最新版本,目前為版本號為22(注意和ADT相關的組件最好一並升級,避免後期可能出現的錯誤) 選擇需要從Eclipse導出的工程,右鍵選擇Export並選擇Android下的Generate Gradle Build Files(如下圖): 選擇完畢後並不會導出到其他地方,而是在本地工程生成了一個build.gradle文件,在Eclipse工程中也可以看到,這個文件是Android Studio識別的,如下圖: 3.隨後進入Android Studio並選擇Import Project,可以看到剛剛在Eclipse中的項目圖標變成了一個Android機器人圖標,說明轉換成功,這時候選擇工程導入即可: 至此,就完成了從Eclipse導入現有Android工程到Android Studio,現在可以開始對工程進行操作了! 二、Eclipse工程與Android Studio的區別 Eclipse工程可以導入Android Studio運行,而反過來在Android Studio建立的工程不能在Eclipse中運行; 二者的工程結構不一樣,在Eclipse中一個Project就代表一個項目工程,而在Android Studio中就和Intellij一樣,一個Project代表一個工作空間,相當於Eclipse中的workspace,而在Android Studio中一個Mole就相當於Eclipse中的一個Project,這個概念需要弄明白,不要混了或覺得糊塗了。 在編輯操作上,在Eclipse中編輯修改後必須手動command+s保存文件,而在Android Studio中就和Intellij一樣是自動保存的,這一點和第二點和Xcode也是類似的。 工程目錄上的區別,在Eclipse中src部分一般是java文件,res部分是資源文件,包括布局文件和多媒體資源等。在Android Studio中,可以看下圖的目錄結構: 包括java文件和資源文件全部放到了src目錄下,src目錄下包括一個main文件夾,再下面就是java文件夾和res文件夾,其實這里,java文件夾就相當於Eclipse中的src,res還是那個res,這里想起了本山老師的小品「src已經不是那個src了,res還是那個res」大笑 三、真機運行以及常用快捷鍵 在Android Studio中點擊界面下方的Android選項卡可以看到Device信息和Logcat,連上設備後打開Android選項卡會檢測真機,成功後會顯示在Device中,點擊頂部的綠色小箭頭就可以開始運行工程了。有一點需要注意的是,運行時可以選擇模擬器也可以選擇真機,由於在Android Studio中運行工程的時候有一個Device優先順序選擇,如果不設置的話可能會出現只運行在模擬器上的現象,我們可以自行設置一下:先點擊Run菜單選擇Run Configuration,並選擇你想選擇的目標設備,可以是模擬器和真機,也可以在運行選由用戶選擇: 快捷鍵大家可以對照官方文檔進行熟悉,如下表,也可以自己修改配置選項進行自定義: 個人覺得Android Studio還是有一定的前景的,這里就需要Google不斷進行完善和改進了,趕緊把大家從Eclipse中解救出來吧。另外,在此期間,大家其實可以嘗試使用一下Intellij IDEA,這個默認也是集成Android開發環境的。Android Studio是基於前者改進而來,二者在使用上差不多,也是Eclipse的一個不錯的替代者。

6. 怎樣設置Android Studio自動編譯工程

在 工具 菜單中,選擇 選項。 在 文本編輯器 文件夾,選擇。 所有語言 子文件夾的 常規 選項全局設置此選項。
—或 —
選擇子文件夾中的 常規 可供使用的編程語言的。
在 設置下,選擇或清除 自動換行 選項。
當 自動換行 選項時, 顯示可視的自動換行標志符號 啟用選項。
選擇,如果您希望顯示一個回車箭頭指示符在第二行的較長的行換行的 顯示可視的自動換行標志符號 選項。 ,如果您不想顯示指示箭頭,請清除此選項。

7. 如何用shell自動化編譯安卓代碼

android中執行shell有兩種方式: 直接在代碼中用java提供的Runtime 這個類來執行命令,以下為完整示例代碼。 public void execCommand(String command) throws IOException { // start the ls command running //String[] args = new String[]{"...

8. 怎樣設置Android Studio自動編譯工程

安裝Android Studio的准備工作 1.下載好JDK 去官網上找一個下載下來 2.安裝JDK.並配置環境變數.安裝過程可以一直下一步,無腦操作 3.下載Android Studio的安裝包 去官網上找一個,下載下來 (jdk的環境變數一定要配置) 准備工作完成之後,就可以開始我們的安裝了 1.安裝Android studio也是無腦操作,一直點下一步。直到安裝結束 2.安裝好之後,我們要新建我們的項目。重點從這里開始 點擊 New Project會出現.我們設置好名稱,也可以無腦操作,一直點擊next,直至結束,不過這個過程需要我們耐心的等待。(時間有點漫長)。 然後我們就會進入我們的開發界面。點擊圖片中紅圈的圖標(SDK manager)會出現下圖 這個步驟是安裝Android的sdk,推薦,Android1.6~Android4.4.2全部安裝。(這個耗費時間挺長的,請在網速良好且大量閑暇時光下安裝,安裝過程中可以看部電影) 安裝完之後,就開始配置我們的avd(Android Virtual Device),也就是Android的虛擬環境。點擊,圖片中紅圈的圖標 點擊New(Test是我配置好的) 隨便設置AVD name,建議如圖設置 設置完成之後,就可以點擊下圖的三角號編譯我們的程序了

9. 自己可以編譯安卓源碼嗎

用最新的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源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.

    熱點內容
    java返回this 發布:2025-10-20 08:28:16 瀏覽:743
    製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1007
    python中的init方法 發布:2025-10-20 08:17:33 瀏覽:713
    圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:875
    怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:774
    c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1122
    郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:347
    shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:225
    怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:911
    python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:871