導航:首頁 > 源碼編譯 > 在線文檔生成系統安卓端源碼

在線文檔生成系統安卓端源碼

發布時間:2022-12-14 12:22:13

㈠ 自己可以編譯安卓源碼

用最新的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源碼編譯後得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的文件系統,system.img包括了主要的包、庫等文件,userdata.img包括了一些用戶數據,emulator載入這3個映像文件後,會把 system和 userdata分別載入到 ramdisk文件系統中的system和 userdata目錄下。因此,我們可以把ramdisk.img里的所有文件復制出來,system.img和userdata.img分別解壓到 ramdisk文件系統中的system和 userdata目錄下。
    2、分離Android文件系統出來
    system.img,ramdisk.img,userdata.img映像文件是採用cpio打包、gzip壓縮的,可以通過file命令驗證:
    file ramdisk.img

    輸出:
    ramdisk.img: gzip compressed data, from Unix,
    last modified: Wed Mar 18 17:16:10 2009

    Android源碼編譯後除了生成system.img,userdata.img之外還生成system和 userdata文件夾,因此不需要解壓它們。Android源碼編譯後還生成root文件夾,其實root下的文件與 ramdisk.img 里的文件是一樣的,不過這里還是介紹怎樣把 ramdisk.img解壓出來:
    將ramdisk.img復制一份到任何其他目錄下,將其

    ㈢ 怎麼把安卓軟體源代碼導出來

    apk文件復制到SD卡。
    命令序列如下:

    文件夾到Android的SDK / tools目錄

    輸入adb的外殼

    進入蘇

    輸入cd數據

    輸入CD的應用程序

    然後,你可以看到所有你安裝apk文件。輸入相應的apk位CP / SD卡/

    的apk文件,因此它會被復制了一個空格。

    直接進入apk文件擴展名rar格式,你可以看到目錄熟悉的結構,

    xml文件後打開是二進制的,不能觀看。

    然後他們使用AXMLPrinter2工具android4me。 (你自己網路搜索)

    輸入以下命令來解析XML文件出來

    此命令是在命令行java的罐子AXMLPrinter2.jar showtimes_list.xml

    鑒於此showtimes_list.xml 該showtimes_list.xml生成xml文件,輸入以下命令:

    Java的罐子AXMLPrinter2.jar showtimes_list.xml> h.xml

    持續到這一點,只看到xml文件的內容,其中工程在java源文件還是看不到,看到classes.dex文件目錄結構,我們需要DEX文件轉換成jar文件。

    這里使用的另一種工具dex2jar。 (自搜索下載)解壓後顯示在Windows下

    目錄如下:

    在命令行中,輸入這個目錄:

    在Windows下,輸入以下命令: dex2jar.bat C:\ classes.dex

    在C盤運行完成後會多一個classes.dex.dex2jar.jar文件,這就是我們所需要的jar文件。

    使用JD-GUI,的jar文件的java代碼的逆向工程。 (請搜索下載)

    它進入Windows,Linux和最大三個版本,這里我下載的Windows版本。
    解壓,雙擊運行exe文件後,選擇相應的jar文件的Java文件的文件classes.dex.dex2jar.jar顯示反向工程了!
    是否可以解決您的問題?

    ㈣ Android源碼開發記錄-自定義系統服務和jar包生成

    創建文件 IMyApiService
    文件路徑 frameworks/base/core/java/android/os/

    定義了一個計算和的方法。

    在frameworks/base/Android.mk
    LOCAL_SRC_FILES最後加入

    創建文件 MyApiService.java
    文件路徑 frameworks/base/core/java/com/android/server/

    實現aidl的介面,計算參數和。

    (1)Context添加服務名
    文件路徑 frameworks/base/core/java/android/content/Context.java
    添加

    (2)添加啟動服務
    文件路徑 frameworks/base/services/java/com/android/server/SystemServer.java
    在startOtherServices方法中添加

    創建 MyApiManager.java文件
    文件路徑 frameworks/base/core/java/android/app/

    文件路徑 frameworks/base/core/java/android/app/ContextImpl
    添加registerService

    記住make update-api
    編譯打包完成後,燒寫新的固件。

    jar主要為了在android studio編譯環境中MyApiManager報錯導致編譯不通過問題。
    也可以導入frameworks jar包或使用反射。

    在源碼目錄packages/app下新建MyJar文件夾
    並新建目錄com/myapi/(包名)

    在目錄com/myapi/新建文件MyApi.java

    具體Android.mk語法這里不做解釋,可以自行查閱

    在MyApi目錄下直接運行mm編譯命令(記得先source build/envsetup.sh)
    待編譯完成後,jar生成目錄
    out/target/common/obj/JAVA_LIBRARIES/Myapi_intermediates/javalib.jar
    可更改為其他名稱。

    ㈤ 如何使用Android Studio開發/調試Android源碼

    開發調試環境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源碼

    由於AS是基於IntelliJ IDEA開發的,所以本文也適用於IntelliJ IDEA

    一、修改Android Studio(以下簡稱AS)的內存配置

    因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的機器修改studio.vmoptions)中-Xms和-Xmx的值。文檔中使用的是748m,可自行修改。

    二、配置AS的JDK、SDK

    在IDE中添加一個沒有classpath的JDK,這樣可以確保使用源碼里的庫文件

    在代碼中加斷點,然後選擇'Run'->''或者直接點擊下圖所示的圖標

    在彈出的選擇進程(Choose Process)對話框中,勾選顯示所有進程,選擇要DEBUG的代碼所在的進程,點擊OK即可.

    六、其它

    代碼中很多地方提示CallrequiresAPILevelx.... 出現這個問題是因為AS將我們的工程當做安卓應用程序工程了,且源碼中沒有指定minSdkVersion.

    我們只需在源碼根目錄加一個聲明minSdkVersion的AndroidManifest.xml文件即可(分享了一個AndroidManifest.xml)。

    也可以考慮使用build.gradle來解決該問題。

    ㈥ 怎麼在ubuntu上編譯android源碼

    步驟一:
    安裝Ubuntu系統。我們既可以通過虛擬機的方式安裝Ubuntu,也可以直接在電腦上安裝,為了獲得更好的Linux操作體驗,我建議直接在電腦上面安裝Ubuntu,我在自己電腦上安裝了win10和Ubunut Server14.04雙系統,使用的時候可以根據自己的需要隨時切換系統,非常方便。關於如何搭建雙系統,網上有很多教程,我就不在此敘述了,但是我想說明的一點是在安裝Ununtu的時候,分配給Ubuntu的磁碟空間一定要盡可能大一點,至少60G,我分配了105G,編譯完成之後還剩下50多G,也就是說差不多用了近50G的空間,所以安裝Ubuntu的時候一定得分配大一點的磁碟空間,不然編譯會因為空間不足而中斷。
    步驟二:
    搭建好Ubuntu系統之後,我們需要下載一份Android6.0的源碼,網上很多文章都介紹了如何通過repo的方式來下載源碼,但是通過這種方式下載速度可能並不是很理想,直接下載網路雲的Android6.0源碼,
    因為Android6.0的源碼所佔空間非常大,所以上傳者把Android源碼分成了很多個文件,待全部下載完畢之後,我們可以通過命令把這些分開的文件合並為一個文件。
    步驟三:
    如果我們是在Windows上下載的源碼,那麼當我們打開Ubuntu之後,要做的第一件事請就是把Windows中的Android源碼拷貝到Ubuntu系統下面,我直接利用復制粘貼的方式將源碼拷貝到了Ubuntu的Home目錄下面,拷貝之後的目錄結構Home/android6_r1/各個分開的源碼文件。
    步驟四:
    合並這些被分開的源碼文件。我們按下鍵盤上的ctrl + alt + T打開控制台,通過cd命令進入到Home/android6_r1/目錄下面,然後執行命令:cat Android6_r1_* > M.tgz,不用多久,在Home/android6_r1/目錄下面就會生成一個新的文件——M.tgz,M.tgz就是合並之後的壓縮文件。
    步驟五:
    解壓步驟四生成的壓縮文件。同樣是在Home/android6_r1/目錄下面,我們在控制台執行命令:tar zxvf M.tgz,開始解壓。解壓的過程大概需要20分鍾左右的時間,請耐心等待。解壓好了之後,在Home/android6_r1/會生成一個mydroid的文件夾,這個文件夾就是Android源碼的根文件夾了,裡面有abi、devices、hardware、packages、sdk、art等文件夾和文件。
    步驟六:
    安裝編譯源碼所需要的軟體。在控制台中我們通過cd..命令退回到Unbuntu用戶的根目錄下,然後依次執行以下命令:
    sudo apt-get update
    sudo apt-get install openjdk-7-jdk
    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    以上命令每一條都必須分開單獨執行,目的是為了獲取1.7版本的jdk並設置環境變數。當我們安裝完Ubuntu之後可能會自帶一個jdk,但是如果用自帶的jdk編譯Android源碼很可能會提示jdk版本不符合要求的錯誤,因此我們需要重新下載1.7版本的jdk,我用openjdk-7-jdk編譯未出現任何問題。
    接下來繼續執行以下命令,同樣每一行都是分開單獨執行的:
    sudo apt-get install git gnupg flex bison gperf build-essential
    sudo apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
    sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386
    sudo apt-get install libgl1-mesa-dev g++-multilib mingw32 tofrodos
    sudo apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386
    sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
    以上命令主要是安裝編譯源碼時需要用到的各種軟體,如果沒有安裝這些軟體,編譯的過程中會提示缺少必要的軟體而無法繼續編譯,因此,在正式編譯源碼之前,一定要先安裝這些軟體。
    步驟七:
    開始編譯。在控制台中通過cd命令進入到Home/android6_r1/mydroid/目錄下,然後執行命令:source build/envsetup.sh,導入編譯Android源碼所需的環境變數和其它參數。
    步驟八:
    在控制台中執行命令:lunch,運行命令之後會提示我們選擇編譯目標。這里我選擇的的默認目標,即aosp_arm_eng。
    步驟九:
    在控制台中執行命令:make -j8,開始編譯。注意,make -j8命令中的數字8和我們電腦的CPU核心數以及線程數有關系,一般這個數字的數值最大不能超過CPU線程數的2倍,例如我電腦的處理器是i5 6200U,為雙核四線程,因此編譯Android源碼的時候,我可以設置的最大工作線程數量為4 * 2 = 8。在執行make命令的時候我們應該根據自己的CPU參數設置合理的工作線程數值。
    以上步驟執行完之後,就是一段非常漫長的等待了,我從中午十二點多開始編譯,一直到晚上九點多編譯完成,整個編譯過程耗時九個多小時,幸好我的運氣還不錯,編譯過程中沒有出現任何錯誤,只是中途意外中斷了一次,但是Android源碼是可以接著上次中斷的位置繼續編譯的,已經編譯的部分不會重復編譯,因此並未對我造成大的影響。同志們,我想說的是,編譯的過程中一定要有耐心喲!
    整個源碼編譯完成之後,如果提示如下信息,那麼Congratulations, you are successful!!!

    安卓怎麼使用修改過的源碼編譯程序

    1、Android的文件系統結構是怎樣的,我們安裝的程序放在那裡?
    編譯Android源碼之後,在out/target/proct/generic一些文件:
    ramdisk.img、system.img、userdata.img、 system、 data、root
    其中, system.img是由 system打包壓縮得到的, userdata.img是由 data打包壓縮得到的。

    ramdisk.img是模擬器的文件系統,把ramdisk.img解壓出來可知道,ramdisk.img里的文件跟root文件夾的文件基本一樣。模擬器裝載ramdisk.img並解壓到內存,接著分別把system.img和userdata.img掛載到 ramdisk下的system和data目錄。我們編譯出來的應用程序就是放在system/app下的。用戶安裝的程序則是放在data/app下。

    2、Android SDK和android源碼能為我們提供什麼工具?
    AndroidSDK提供有很多工具,如adb,ddms,emulator,aapt等,並提供kernel-qemu、ramdisk.img、system.img、userdata.img。因此,只要有android SDK,我們就可以在模擬器上把android跑起來。
    Android源碼可以編譯出android SDK、adb等工具、android文件系統,以及ADT插件,也就是說,我們可以從android源碼編譯出所有android相關的東西。

    3、 把Android源 碼」make」之後會生成許多工具和android文件系統(system.img等),我們又可以使用「makesdk」來生成android SDK,android
    SDK也包括有工具和android文件系統(system.img等),而原來安裝的時候我們也安裝了androidSDK,那麼我們在開發時應該使用那些工具和android文件系統呢?

    ㈧ 如何生成安卓源碼的compile_command.json

    1、cmake工程生成compile_commands.json文件比較簡單,定義CMAKE_EXPORT_COMPILE_COMMANDS即可。
    2、用makefile來編,沒有現成的選項生成compile_commands.json文件。可以使用ctags,gtags等,但跳轉不是很准確。可以通過Bear來生成,而且不需要改動代碼。具體Bear的安裝按照官方文檔來。安裝之後,執行以下命令即可生成:compile_commands.json文件能夠有效提高一些工具(比如說ccls1,vscode2)的代碼跳轉、補全等功能。

    ㈨ 安卓操作系統源代碼

    修改系統文件的源代碼。。。LZ你想太多了,源代碼都是封裝起來的,看不到的。不用編譯器進行反匯編是無法看到的。

    ㈩ 如何用Android 源碼生成APK簽名文件

    我們很多應用需要用到系統簽名,可以通過生成系統簽名文件,在生成apk時使用這個簽名,然後可以安裝到機器中,不需要放在源碼里編譯,重新刷系統。

    先附上 50和 20機器人通用的debugkey(圖已經省略)

    在Linux環境中,以Android源碼目錄為根目錄。

    其中的platform.pk8是製作系統簽名需要的文件。

    1、在這個目錄下,執行

    生成臨時文件platform.pem

    2、接著執行以下命令,將在目錄下生成platform.p12文件,它本質上應該就是一個數字證書

    3、然後再執行以下命令出現以下信息,表示成功生成platform.jks

    這個名字可以改成debug.keystore. 它的後綴本身是沒有關系,eclipse和AS都識別 platform.jks

    4、然後在打包 apk 的時候選擇platform.jks文件,就可以直接用adb命令安裝apk到機器中了。

    xxxx表示需要安裝的apk路徑
    5、簽名的 Key store password和Key password都是android

    閱讀全文

    與在線文檔生成系統安卓端源碼相關的資料

    熱點內容
    ospfpdf 瀏覽:712
    安卓耳機聲音小怎麼設置 瀏覽:196
    程序員升級win11後 瀏覽:594
    雲伺服器怎麼調出控制面板 瀏覽:171
    python正則表達式函數 瀏覽:632
    把自己公司的源碼給別人 瀏覽:436
    典韋真的要出程序員皮膚嗎 瀏覽:680
    程序員如何轉行做電腦維修 瀏覽:395
    4mz演算法 瀏覽:831
    程序員全部穿格子圖片 瀏覽:921
    申通取件加密 瀏覽:817
    顏色改變命令 瀏覽:679
    海口童程童美學編程怎麼樣 瀏覽:694
    vb編程未找到方法 瀏覽:239
    三國戰記命令 瀏覽:922
    程序員穿運動鞋 瀏覽:505
    自來水公司需要電腦編程 瀏覽:309
    金融app如何從銀行卡扣款 瀏覽:556
    網站的源碼修改成自己的 瀏覽:802
    本科生程序員是初級嗎 瀏覽:637