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

編譯安卓

發布時間:2022-02-13 21:08:56

安卓系統(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系統如何在windows下編譯

目前官網不提供在windows下對android的支持,只提供對linux/mac(類UNIX)的支持,可參考 http://source.android.com/source/download.html

android基於linux 內核,對其相關編譯和連接環境有依賴。建議在windows上安裝虛擬機,安裝linux來編譯。

③ 請問怎麼編譯安卓軟體

呵呵,你學過java吧,基本功就有了,安卓軟體是用java來寫的~不過我覺得安卓軟體是不用編譯的,因為裡面的主程序是格式化的xml文件,在軟體成形的過程中只是把一些文件打包起來就行了,你可以試下把安卓軟體的後綴名改成zip,就可以看見源程序和文件了~然後呢,你要想做安卓軟體的話,先搭建一個安卓的開發環境,用到的東西有Myeclipse這個軟體(你應該知道的),然後到網上下載安卓開發的SDK即開發字典~有一本叫安卓開發案例的書,可以看下,另外網上有很多的視頻教程~PS:我自己之前只寫過一個安卓的HELLO,WORLD!,由於大一事情比較多就沒有繼續研究了,如果你有問題可以CALL我哦,我們一起學~

④ 自己可以編譯安卓源碼

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

    ⑤ 如何將apk源碼編譯進android系統

    1. 把源碼放到packages/apps目錄下

    2. 寫個mk文件,放到你的app的工程根目錄下

    3. 在源碼中mmm這個app的路徑

    ⑥ 如何編譯android sdk

    如果沒有真正開發板,又想深入到android
    framework里,或kernel里的話,就只能用android
    的emulator了。
    但是我們下載的android
    SDK沒有源代碼,我們沒辦法跟蹤修改framework和kernel里的東西。
    所以有了想嘗試自己從頭生成SDK的想法。
    1.
    首先下載編譯android所有source
    code.
    具體步驟這里不再贅述,參考ht
    tp:/
    /source.and
    roid.c
    om/download
    cd
    mydroid
    repo
    init
    -u
    git://android.git.kernel.org/platform/manifest.git
    repo
    sync
    一點小提示:
    有時候google的android伺服器老是斷,總不能讓我們守在電腦旁邊一直手工重新repo
    sync吧,這可是需要N個小時才能下載完的啊。
    我們就寫個小腳本讓電腦自動repo
    sync,直到下載成功為止:
    #!/bin/sh
    count=0
    ret=1
    while
    [
    $ret
    -ne
    0
    ]
    do
    repo
    sync
    ret=$?
    count=$((
    $count
    +
    1))
    echo
    "try
    $count,
    ret:
    $ret"
    done
    echo
    "try
    $count,
    ret:
    $ret"
    把上面的內容復制到一個文件里tryrepo.sh
    然後修改tryrepo.sh的屬性,開始自動工作吧。第二點早上應該就大功告成了
    chmod
    a+x
    tryrepo.sh
    ./tryrepo.sh
    2.
    編譯android,
    生成SDK
    make
    sdk
    漫長的等待之後,SDK生成了,在目錄:mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\
    在linux下面可以直接運行mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\tools\android
    就可以看到熟悉的android
    emulator啟動界面。
    如果想在windows
    XP下使用這個SDK和emulator,
    最簡單的方法是:
    (1)自己下載一個最新的windows版本的android
    2.0
    SDK。
    (2)把mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\下的東西復制到windows版SDK的platforms下。
    (3)
    然後把platforms下android-2.0下tools目錄下的幾個.exe文件復制到自己編譯的SDK目錄下的tools目錄下。

    ⑦ 有手機的源代碼,如何編譯安卓4.4的系統

    代碼編譯…
    恐怕這個不是隨隨便便在這里幾句話就能說明白的…
    首先要下載安卓4.4的內核,
    然後要把廠商的手機源代碼編譯進去,
    還要自己寫腳本,
    很多都是很技術的活。
    lz確定能hold住么?

    ⑧ 如何將源代碼編譯後的文件編譯到android中

    1.將應用程序源碼復制進Android源碼目錄中(提前編譯好源碼)
    2.使用build/envsteup.sh 配置shell -
    mm TARGET_PRODUCT=proct_name
    或直接./build_android.sh 也能完成編譯。
    3.在源碼目錄:out/target/proct/proctname/obj/APPS/test_cert_intermediates 下有三個文件:package.apk package.apk.unsigned package.apk.unaligned
    將package.apk.unsigned復制出來,單獨進行sign.
    4.在Windows下進行sign: jarsigner -verbose -keystore youkey.keystore d:\package.apk.unsigned youkey
    5.zipalign -v 4 d:\package.apk.unsigned d:\package.signed.apk

    ⑨ 如何把應用程序app編譯進android系統

    把常用的應用程序編譯到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包,並刪除

    ⑩ 如何編譯一個精簡的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應用程序,修改其源碼後可以實現隨系統的啟動而自動啟動的功能。

    閱讀全文

    與編譯安卓相關的資料

    熱點內容
    支付寶賬單文件如何解壓 瀏覽:857
    查看內核版本命令 瀏覽:954
    w10加密盤驅動鎖死怎麼辦 瀏覽:944
    全新雲伺服器價格對比 瀏覽:383
    python為什麼去除了switch語句 瀏覽:54
    二進制7到8的演算法 瀏覽:807
    伺服器機櫃叫什麼名字 瀏覽:347
    vue3源碼作者 瀏覽:829
    app右下角標怎麼關 瀏覽:832
    怎麼對一個盤加密碼 瀏覽:670
    練習sql用什麼樣的伺服器 瀏覽:980
    asp與php對比 瀏覽:645
    php模除 瀏覽:254
    android上傳圖片方式 瀏覽:886
    華為視頻會議伺服器如何連接 瀏覽:224
    phpfpm並發數 瀏覽:925
    雲伺服器哪裡看 瀏覽:245
    戴爾emc伺服器led怎麼拔出 瀏覽:794
    程序員霸王 瀏覽:371
    文件夾重合如何分開 瀏覽:163