導航:首頁 > 源碼編譯 > android內核編譯優化

android內核編譯優化

發布時間:2022-07-03 05:53:02

Ⅰ 如何預編譯 android 模擬器專用內核

Android源碼編譯之後生成的是ramdisk.img、system.img和userdata.img。而內核源碼編譯完成之後生成的是ZImage。在一般情況下Android源碼是不帶有內核源碼的,但是帶有一個鏡像,這樣在編譯完Android源碼之後就可以模擬器啟動了,如果要更換系統的內核,此時將高版本的內核源碼進行編譯生成ZImage然後替換Android系統的的鏡像。這樣使用模擬器啟動之後就可以查看內核是否已經被刷新。

Ⅱ android kernel 怎麼編譯

1.准備工作: (ubuntu1110 32位)
ubuntu等linuxOS,下載好eclipse,安裝好JDK, 安裝好android的SDK, 在eclipse中成功打開android 手機模擬器即OK。

2.初始化編譯環境 :
關注該網頁上的「installing required packages」,其中有的軟體包因為版本問題而安裝不上,不用管它,之後遇到錯誤再單獨解決。

3.下載內核源碼:
android 2.3 內核 下載需要等待一段時間。

4.下載交叉編譯器:
該步驟有可能耗費大量時間,依據網速不同,幾個小時到幾天不等,或許可以嘗試git clone 後面的地址只下載prebuilt/linux-x86/toolchain

5.設置參數以及編譯:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd goldfish // 進入下載的源代碼目錄
$ git checkout <commit_from_first_step> //這個步驟沒有做,不知道幹嘛用的
$ make goldfish_defconfig
$ make

6.報錯信息:
若有報錯說找不到 (arm-eabi-gcc command not found)等等,嘗試使用http://blog.csdn.net/davidbeckham2901/article/details/7397447 中說到的解決方案即可(即採用另外一個交叉編譯器)。

7.測試:

最後,測試一下剛才編譯的內核:emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImageemulator若系統找不到,可以去android SDK中某文件夾找到,加入系統PATH即可。 -avd後面的參數 myavd即為模擬器的名字,這個咱是在eclipse中的模擬器管理中新建的一個模擬器,用那個模擬器的名字即可。 -kernel後面的參數就找到剛才編譯出的內核的路徑。
若啟動模擬器失敗,可嘗試關閉後再啟動。第一次啟動模擬器時可能需要等待比較長的時間,3分鍾到15分鍾不等。

Ⅲ 安卓菜鳥關於 init.rc 中的 init.${ro.hardware}.rc 與 out 目錄下生成的.rc文件名不一致的問題

Android本質上就是一個基於Linux內核的操作系統。與Ubuntu Linux、Fedora Linux類似。只是Android在應用層專門為移動設備添加了一些特有的支持。既然Android是Linux內核的系統,那麼基本的啟動過程也應符 合Linux的規則。如果研究過其他Linux系統應該了解,一個完整的Linux系統首先會將一個Linux內核裝載到內存,也就是編譯Linux內核 源代碼生成的bzImage文件,對於為Android優化的Linux內核源代碼會生成zImage文件。該文件就是Linux內核的二進製版本。由於 zImage在內核空間運行,而我們平常使用的軟體都是在應用空間運行(關於內核空間和應用空間的詳細描述,可以參考《Android深度探索(卷1):HAL與驅動開發》一書的內容,在後續的各卷中將會對Android的整體體系進行全方位的剖析)。內核空間和應用空間是不能直接通過內存地址級別訪問的,所以就需要建立某種通訊機制。

Ⅳ 如何反編譯android應用以及重編譯,簽名和對齊優化

首先,了解一下我們為什麼需要反編譯apk
大部分情況下,是由於想本地化一款優秀的應用,才需要做這事兒;又或者進行少量的smali修改以達到想要的效果(如添加歸屬地,使3G版Nexus 7支持Wi-Fi熱點)。

下面我們先准備運行環境和工具
建立工作目錄,如.\workspace\apktoolbox (下面同樣以此路徑為例)
必不可少的JDK:Oracle java下載,安裝完成後把<jdk-inst-path>\bin添加到$PATH環境變數中
反編譯和重編譯工具apktool:Google Code下載,按平台下載(一個apktool-install-<platform>-<ver>-tar.bz2,一個apktool<ver>.tar.bz2,下載完成後解壓至.\workspace\apktoolbox\bin
密鑰文件,共4組。test/shared/media/platform,從android source中獲取,分別對應不同共享用戶ID時簽名所需(查看應用AndroidManifest.xml第二行android:sharedUserId項 ),放到.\workspace\apktoolbox\bin下
test - 無android:sharedUserId項
shared - android:sharedUserId=android.uid.shared
media - android:sharedUserId=android.uid.media
platform - android:sharedUserId=android.uid.system
簽名工具signapk.jar,放到.\workspace\apktoolbox\bin下
對齊優化工具zipalign(從android sdk中獲取,在tools目錄下),放到.\workspace\apktoolbox\bin下
准備工作完成

接下來我們就要開始工作了(以本地化工作為例)
把待反編譯的apk放到.\workspace\apktoolbox\apks下
命令行模式下進入.\workspace\apktoolbox\bin目錄,輸入以下命令進行解包(反編譯)
apktool d ..\apks\<apkfile>.apk ..\apks\<outdir>
.\workspace\apktoolbox\apks\<outdir>\res下的values目錄(英文原版)和values-r<locale>目錄(本地化)就是我們需要的對象。
本地化工作完成後,在命令行中輸入以下命令進行重新打包(重新編譯)
apktool b ..\apks\<outdir>

.\workspace\apktoolbox\apks\<outdir>\dist目錄下會生成重新打包後的apk(未簽名,未對齊優化)
重新打包完成後,在命令行中輸入以下命令進行簽名(根據實際情況選用密鑰,這里以test密鑰為例)
java -jar signapk.jar testkey.x509.pem testkey.pk8 ..\apks\<outdir>\dist\<apkfile>.apk ..\apks\<apkfile>_signed.apk

簽名完成後,在命令行中輸入以下命令進行對齊優化
zipalign -f -v 4 ..\apks\<apkfile>_signed.apk ..\apks\<apkfile>_zipaligned.apk

<apkfile>_zipaligned.apk就是我們最終需要的apk了。
完成
部分apk需要系統框架資源,沒有的話在重新打包時會報錯,這種情況下我們只需要先安裝一下對應系統框架即可(從你目標ROM中把/system/framework/framework-res.apk提取出,放到.\workspace\apktoolbox\apks下)。在命令行中輸入以下命令進行安裝
apktool if ..\apks\framework-res.apk

Ⅳ 如何加速Android源碼的編譯

每個編譯單元都會產生一個obj文件,然後所以這些obj文件會被link到一起,並且這個過程很難並行

Ⅵ 如何提高android.mk的編譯速度

從eclipse轉到Android studio,總覺得編譯速度或者安裝到手機上的速度會變很快,現實是仍然很慢,所以就搜如何提高build速度,安裝真機上apk能快一點,步驟如下:
1.修改android studio的使用堆內存,根據自己電腦的內存,盡量設置的大一點,點擊help->如下圖:
2.接下來設置使用離線gradle構建,一開始就是使用了內置的默認路徑gradle,勾選offline這個選項,編譯的速度快的不止一點點,在.gradle的離線位置,建立一個gradle.properties的文件,設置精靈後台一直編譯,這樣提高了很多的速度

Ⅶ 如何優化 Android Studio 啟動,編譯和運行速度

優化 Android Studio 啟動速度

1、開啟 gradle 單獨的守護進程

當 Android Studio 遇到錯誤的時候,往往會導致 Android Studio 掛掉,為了防止推出程序,則另外開啟一個線程來守護
Android Studio 的進程,具體操作。 在 C:\Users\.gradle 這個目錄下,創建 gradle.properties
配置文件,復制以下配置進行優化。
# Project-wide Gradle settings.
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
-XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true

這些配置文件主要就是增大 gradle 運行的 java 虛擬機的大小,讓 gradle 在編譯的時候使用獨立進程,讓 gradle 可以很好的運行。

2、擴大內存

64位:\studio64.exe.vmoptions or studio.exe.vmoptions
32位:\studio.exe.vmoptions or studio.exe.vmoptions
編輯這個文件,在最開始的兩行設置內存大小,類似於eclipse.ini中的配置。配置如下:
-Xms256m
-Xmx1024m

3、優化編譯時VM大小

選擇 file->setting->compile 添加如下參數:
-Xmx1024m
-XX:MaxPermSize=128m
-XX:+HeapDumpOnOutOfMemoryError
-Dfile.encoding=UTF-8

具體參數大小視電腦配置而定。

Ⅷ 對android 下的linux內核有什麼可行的優化建議

Linux Kernel在3.X的版本上面增加了對Android驅動的支持 -- Low Memory Killer、Binder等幾項,還增加了GoldFish的一些支持。
只有這幾項是與Android有關的,對於一般的Android而言。

因此你的問題其實是「linux內核有什麼可行的優化建議?有什麼提升內核穩定性的手段和工具?」
但是對於這個問題,我對Linux內核的了解還不足以回答你的問題。

但是針對不同的具體硬體環境,更改MM是一個重要的議題。另外在嵌入式這邊,脫離硬體的談軟體似乎不妥。
例如有的時候系統性能很差的,我們會使用Dstream的StreamLine來分析具體某個線程(應用),查看Datasheet看看對應的硬體/驅動有什麼可以改進的,例如BT藍牙的串口如何開啟UART的DMA。

Ⅸ 如何加快Android Studio的編譯速度

作為一名Android程序員,選擇一個好的IDE工具可以使開發變得非常高效,很多程序員喜歡使用Google的AndroidStudio來進行開發,但使用起來有時會出現卡頓等問題。本文介紹了幾種優化AndroidStudio啟動、編譯、運行速度的方法。首先解決一個AndroidStudio啟動報錯的問題1、進入剛安裝的AndroidStudio目錄下的bin目錄。找到idea.properties文件,用文本編輯器打開。2、在idea.properties文件末尾添加一行:disable.android.first.run=true,然後保存文件。3、關閉AndroidStudio後重新啟動,便可進入界面。優化AndroidStudio啟動速度1、開啟gradle單獨的守護進程當AndroidStudio遇到錯誤的時候,往往會導致AndroidStudio掛掉,為了防止推出程序,則另外開啟一個線程來守護AndroidStudio的進程,具體操作。在C:\Users\.gradle這個目錄下,創建gradle.properties配置文件,復制以下配置進行優化。#Project-wideGradlesettings.org.gradle.daemon=trueorg.gradle.jvmargs=-Xmx2048m-XX:MaxPermSize=512m-XX:+HeapDumpOnOutOfMemoryError-Dfile.encoding=UTF-8org.gradle.parallel=trueorg.gradle.configureondemand=true這些配置文件主要就是增大gradle運行的java虛擬機的大小,讓gradle在編譯的時候使用獨立進程,讓gradle可以很好的運行。2、擴大內存64位:\studio64.exe.vmoptionsorstudio.exe.vmoptions32位:\studio.exe.vmoptionsorstudio.exe.vmoptions編輯這個文件,在最開始的兩行設置內存大小,類似於eclipse.ini中的配置。配置如下:-Xms256m-Xmx1024m3、優化編譯時VM大小選擇file->setting->compile添加如下參數:-Xmx1024m-XX:MaxPermSize=128m-XX:+HeapDumpOnOutOfMemoryError-Dfile.encoding=UTF-8具體參數大小視電腦配置而定。經過測試,編譯速度有很大提升,比較大的項目從之前的5-8分鍾可以減少到1-2分鍾。OneAPMMobileInsight能夠實時監測移動應用的真實用戶體驗,通過Agent實現端到端的應用性能分析。幫助用戶提高發現應用問題的速度。並且可以深入到代碼級進行應用性能問題剖析,通過可視化界面展示智能移動終端的實時運行狀態。

Ⅹ 如何編譯android kernel

1.准備工作: (ubuntu1110 32位)
ubuntu等linuxOS,下載好eclipse,安裝好JDK, 安裝好android的SDK, 在eclipse中成功打開android 手機模擬器即OK。

2.初始化編譯環境 :
關注該網頁上的「installing required packages」,其中有的軟體包因為版本問題而安裝不上,不用管它,之後遇到錯誤再單獨解決。

3.下載內核源碼:
android 2.3 內核 下載需要等待一段時間。

4.下載交叉編譯器:
該步驟有可能耗費大量時間,依據網速不同,幾個小時到幾天不等,或許可以嘗試git clone 後面的地址只下載prebuilt/linux-x86/toolchain

5.設置參數以及編譯:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd goldfish // 進入下載的源代碼目錄
$ git checkout <commit_from_first_step> //這個步驟我沒有做,不知道幹嘛用的
$ make goldfish_defconfig
$ make

6.報錯信息:
若有報錯說找不到 (arm-eabi-gcc command not found)等等,嘗試使用http://blog.csdn.net/davidbeckham2901/article/details/7397447 中說到的解決方案即可(即採用另外一個交叉編譯器)。

7.測試:

最後,測試一下剛才編譯的內核:emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImageemulator若系統找不到,可以去android SDK中某文件夾找到,加入系統PATH即可。 -avd後面的參數 myavd即為模擬器的名字,這個我是在eclipse中的模擬器管理中新建的一個模擬器,用那個模擬器的名字即可。 -kernel後面的參數就找到剛才編譯出的內核的路徑。
若啟動模擬器失敗,可嘗試關閉後再啟動。第一次啟動模擬器時可能需要等待比較長的時間,3分鍾到15分鍾不等。

閱讀全文

與android內核編譯優化相關的資料

熱點內容
一級抗震樓層框架梁加密區 瀏覽:208
pdf開發庫 瀏覽:281
chunking演算法 瀏覽:622
程序員被逮捕的判決 瀏覽:813
android定位獲取城市 瀏覽:599
做伺服器客戶怎麼去找 瀏覽:997
程序員升職可以干什麼 瀏覽:301
單片機原理課程設計大綱 瀏覽:909
cad命令大全圖表下載 瀏覽:389
程序員去印度工作 瀏覽:422
蘋果app活動怎麼導出 瀏覽:5
pdf轉高清圖片 瀏覽:35
人人玩棋牌源碼 瀏覽:347
如何獲取美團伺服器時間 瀏覽:342
php簡單加密演算法 瀏覽:795
什麼是開伺服器 瀏覽:607
cd4017單片機怎麼用 瀏覽:265
鳥哥pdf 瀏覽:243
忘記加密的密碼了怎麼辦 瀏覽:561
好友信息提示音在哪個文件夾 瀏覽:276