導航:首頁 > 源碼編譯 > 安卓系統編寫編譯

安卓系統編寫編譯

發布時間:2022-05-31 23:12:47

Ⅰ 安卓程序是用什麼語言編寫的

androidjava編程語言,使介面到功能,都有層出不窮的變化,其中Activity等同於J2ME的MIDlet,一個 Activity 類(class)負責創建視窗(window),一個活動中的Activity就是在 foreground(前景)模式,背景運行的程序叫做Service。

兩者之間通過由ServiceConnection和AIDL連結,達到復數程序同時運行的效果。如果運行中的 Activity 全部畫面被其他 Activity 取代時,該 Activity 便被停止(stopped),甚至被系統清除(kill)。


(1)安卓系統編寫編譯擴展閱讀

Android應用程序是android系統智能手機的主要構成部分,實現了智能手機的多樣性、多功能性,結合了辦公功能、娛樂功能、生活實用功能等,廣受人們的喜愛。

Android應用程序有很多,其中讓人耳目一新的個性化實用性應用程序有:

MINT、CHROME、神奇阿萊西、SWYPE/SWiftKey鍵盤、SWYPE/SWiftKey鍵盤、Swype、POCKET閱讀器、SNAPSEED、EYE IN THE SKY天氣、FLICK NOTE、LIGHT FLOW、ANY.DO。

Ⅱ 自己可以編譯安卓源碼

用最新的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系統製作刷機包方法:

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

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

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

    Ⅳ 安卓系統(android)怎樣才能成功編譯安裝『make』命令

    tar.gz(bz或bz2等) 一、安裝1、打開一個SHELL,即終端2、用cd 命令進入源代碼壓縮包所在的目錄3、根據壓縮包類型解壓縮文件(*代表壓縮包名稱) tar -zxvf ****.tar.gztar -jxvf ****.tar.bz(或bz2)4、用CD命令進入解壓縮後的目錄5、輸入編譯文件命令:./configure(有的壓縮包已經 編譯過,這一步可以省去) 6、然後是命令:make 7、再是安裝文件命令:make install8、安裝完畢如果安裝了busybox命令就要這樣用: busybox+空格+命令

    Ⅳ 如何在Android系統源碼的環境下用make來編譯

    第一個方法簡單點,不過需要在Android系統源碼的環境下用make來編譯:
    1. 在應用程序的AndroidManifest.xml中的manifest節點中加入
    android:sharedUserId="android.uid.system"這個屬性。
    2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform這一行
    3. 使用mm命令來編譯,生成的apk就有修改系統時間的許可權了。

    Ⅵ 如何編譯一個精簡的Android系統

    本次試驗使用的android源碼是4.2,編譯的架構是mini-mips。

    一、所做的工作
    1、修改build/target/proct/mini.mk,去掉一些不必要的模塊(例如Phone、DownloadManager等)
    2、修改SystemServer.java,屏蔽一些service,讓系統能夠啟動起來(例如,Location Manager、Telephony Registry)
    3、修改dalvik/vm/native/dalvik_system_Zygote.cpp,注釋掉因為檢查不到外部存儲而導致dalvik abort的地方 (這是googel的一個bug,在2013年1月份已解決,如果用這以後的代碼不用修改此處)
    4、修改WindowManagerService.java,把發送BOOT_TIMEOUT消息的時間改為0(之前為30秒)

    二、系統優化後的效果(驗證工作均在mips模擬器上進行)
    1、節省運行內存,下面是全編譯與mini編譯的內存使用狀態的對比
    1)full build
    MemTotal: 499360 kB
    MemFree: 242064 kB
    2)mini build
    MemTotal: 499360 kB
    MemFree: 395192 kB

    2、縮短開機啟動時間
    在虛擬機上的啟動時間
    1)full build-29秒
    2)mini build-14秒

    3、只啟動home程序,其餘的應用程序均被移除

    三、保留android的開發環境
    1、adb,ddms,apkinstall等,都能正常工作
    2、在eclipse中編寫的android應用程序能夠運行在該mini-android之上

    四、開機自動啟動指定應用程序
    本次測試使用Gallery.apk應用程序,修改其源碼後可以實現隨系統的啟動而自動啟動的功能。

    Ⅶ 怎麼單獨編譯安卓系統源碼指定模塊

    一. 首先在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
    這樣一切就搞定了。

    Ⅷ 如何在安卓系統下構建c++編譯環境

    這個有點難,現在安卓能用的(我知道的)只有一個軟體C4droid可以在android系統中編譯c/c++:

    編譯界面:

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

    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中

    閱讀全文

    與安卓系統編寫編譯相關的資料

    熱點內容
    程序員那麼可愛小說結局 瀏覽:862
    zenity命令 瀏覽:564
    監禁風暴哪個app有 瀏覽:865
    程序員的愛心是什麼 瀏覽:591
    java中對字元串排序 瀏覽:290
    單片機用數模轉換生成三角波 瀏覽:634
    外網怎麼登陸伺服器地址 瀏覽:133
    什麼人要懂編譯原理 瀏覽:150
    源碼改單 瀏覽:712
    pdfzip 瀏覽:875
    壓縮空氣25兆帕會變成液體嗎 瀏覽:50
    linux測試伺服器性能 瀏覽:950
    dlp硬碟加密 瀏覽:361
    應用加密裡面打不開 瀏覽:857
    基於單片機的超聲波測距儀的設計 瀏覽:741
    xp自動備份指定文件夾 瀏覽:664
    我的世界伺服器如何讓世界平坦 瀏覽:170
    伺服器和電腦如何共享 瀏覽:689
    程序員早期症狀 瀏覽:573
    學小學生編程哪裡學 瀏覽:951