日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android编译小结(新建android项目)

發布時間:2025/4/16 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android编译小结(新建android项目) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊打開鏈接

正式開始一個新的平臺,以前的項目拿到的代碼都是供應商改好的,感覺有很多不規范的地方。

這次從一個全新的項目著手,嚴格按照android規范進行項目的添加、板級文件的支持。目標是爭取不改動build目錄下的文件,而是用好它的擴展機制。

在lunch中增加combo選項的標準方法

在執行完. build/envsetup.sh后,執行lunch,會出現lunch菜單:

You're building on LinuxLunch menu... pick a combo:1. aosp_arm-eng2. aosp_arm64-eng3. aosp_mips-eng4. aosp_mips64-eng5. aosp_x86-eng6. aosp_x86_64-eng7. aosp_flounder-userdebug8. mini_emulator_mips-userdebug9. mini_emulator_x86-userdebug10. mini_emulator_arm64-userdebug11. mini_emulator_x86_64-userdebug12. m_e_arm-userdebug13. aosp_manta-userdebug……

在build/envsetup.sh中只增加了默認的幾項:

# add the default one here add_lunch_combo aosp_arm-eng add_lunch_combo aosp_arm64-eng add_lunch_combo aosp_mips-eng add_lunch_combo aosp_mips64-eng add_lunch_combo aosp_x86-eng add_lunch_combo aosp_x86_64-eng

lunch函數會到venor和device目錄中尋找vendorsetup.sh,然后執行文件中類似的

add_lunch_combo aosp_flounder-userdebug

然后就會多出個

7. aosp_flounder-userdebug

Android 5.1可以自動識別JAVA_HOME

參見build/envsetup.sh,代碼如下:

# Force JAVA_HOME to point to java 1.7 or java 1.6 if it isn't already set. # # Note that the MacOS path for java 1.7 includes a minor revision number (sigh). # For some reason, installing the JDK doesn't make it show up in the # JavaVM.framework/Versions/1.7/ folder. function set_java_home() {# Clear the existing JAVA_HOME value if we set it ourselves, so that# we can reset it later, depending on the version of java the build# system needs.## If we don't do this, the JAVA_HOME value set by the first call to# build/envsetup.sh will persist forever.if [ -n "$ANDROID_SET_JAVA_HOME" ]; thenexport JAVA_HOME=""fiif [ ! "$JAVA_HOME" ]; thenif [ -n "$LEGACY_USE_JAVA6" ]; thencase `uname -s` inDarwin)export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home;;*)export JAVA_HOME=/usr/lib/jvm/java-6-sun;;esacelsecase `uname -s` inDarwin)export JAVA_HOME=$(/usr/libexec/java_home -v 1.7);;*)export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64;;esacfi# Keep track of the fact that we set JAVA_HOME ourselves, so that# we can change it on the next envsetup.sh, if required.export ANDROID_SET_JAVA_HOME=truefi }

Android 5.1的編譯使用了openjdk,在ubuntu上可以直接通過apt-get進行安裝。

如何新建一個device

  • 從原有的device目錄復制一份,將目錄命名為你要新建的設備名稱。如把msm8916_64復制一份,重命名為msm8916_d500。
  • 將msm8916_d500目錄下的AndroidProducts.mk內容更新為:
PRODUCT_MAKEFILES := \$(LOCAL_DIR)/msm8916_d500.mk
  • 將msm8916_d500目錄下原有的msm8916_64.mk重命名為msm8916_d500.mk。修改里面的PRODUCT_NAME和PRODUCT_DEVICE:
PRODUCT_NAME := msm8916_d500 PRODUCT_DEVICE := msm8916_d500
  • 在msm8916_d500目錄下新建一個vendorsetup.sh,在里面增加combo選項,這樣msm8916_d500就會出現在lunch菜單里。
add_lunch_combo msm8916_d500-userdebug add_lunch_combo msm8916_d500-eng add_lunch_combo msm8916_d500-user
  • 修改msm8916_d500目錄下的AndroidBoard.mk,修改KERNEL_DEFCONFIG,將其指向我們自己的defconfig文件:
#---------------------------------------------------------------------- # Compile Linux Kernel #---------------------------------------------------------------------- ifeq ($(KERNEL_DEFCONFIG),)ifeq ($(TARGET_BUILD_VARIANT),user)KERNEL_DEFCONFIG := msm8916_d500-perf_defconfigelseKERNEL_DEFCONFIG := msm8916_d500_defconfigendif endif

msm8916_d500_defconfig和msm8916_d500-perf_defconfig在kernel/arch/arm/configs目錄下,不存在的話,要以msm8916_defconfig為模板新建一個,并在其中加入一行:

CONFIG_BOARD_SEUIC_D500=y

這個變量會在導入dts中用到。

  • kernel/arch/arm/boot/dts/qcom/Makefile中增加:
dtb-$(CONFIG_BOARD_SEUIC_D500) += msm8916_d500.dtb

作者:飛躍星河
鏈接:https://www.jianshu.com/p/5922fead5d4b
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

總結

以上是生活随笔為你收集整理的Android编译小结(新建android项目)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。