<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Android學(xué)習(xí)之Build環(huán)境初探

          Android學(xué)習(xí)之Build環(huán)境初探

          作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

          |-- shared_library.mk

          |-- static_java_library.mk

          |-- static_library.mk

          |-- tasks

          |-- user_tags.mk

          `-- version_defaults.mk

          這里,目錄在mydroid/build/core/tasks/有一些特別的task

          |-- apicheck.mk, 判斷api是否符合AOSP的規(guī)范

          |-- cts.mk cts測試, 可以在代碼根目錄, make cts, 編譯結(jié)束之后,進(jìn)入out/host/linux-x86/bin/下,執(zhí)行cts命令

          |-- ide.mk IDE開發(fā)環(huán)境

          |-- product-graph.mk

          `-- sdk-addon.mk

          NDK的build環(huán)境沒有包含在標(biāo)注難得AOSP的/build/目錄下

          而是在mydroid/ndk/build下

          $ cd ndk/build/tools

          $ export ANDROID_NDK_ROOT=aosp-root/ndk

          $ ./make-release --help

          一些小技巧

          如何顯示每次編譯所包含的所有xxx.mk文件

          找到build/core/main.mk

          把include $(subdir_makefiles)替換為

          [plain] view plaincopy $(foreach subdir_makefile, $(subdir_makefiles),

          $(info Including $(subdir_makefile))

          $(eval include $(subdir_makefile))

          )

          subdir_makefile :=

          如果遇見API相關(guān)的PACKAGING/checkapi-current-timestamp] Error 38

          需要執(zhí)行:make update-api

          如何在AOSP代碼目錄之外編譯

          [plain] view plaincopy # Paths and settings

          TARGET_PRODUCT = generic

          ANDROID_ROOT = /home/karim/android/aosp-2.3.x

          BIONIC_LIBC = $(ANDROID_ROOT)/bionic/libc

          PRODUCT_OUT = $(ANDROID_ROOT)/out/target/product/$(TARGET_PRODUCT)

          CROSS_COMPILE =

          $(ANDROID_ROOT)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-

          # Tool names

          AS = $(CROSS_COMPILE)as

          AR = $(CROSS_COMPILE)ar

          CC = $(CROSS_COMPILE)gcc

          CPP = $(CC) -E

          LD = $(CROSS_COMPILE)ld

          NM = $(CROSS_COMPILE)nm

          OBJCOPY = $(CROSS_COMPILE)objcopy

          OBJDUMP = $(CROSS_COMPILE)objdump

          RANLIB = $(CROSS_COMPILE)ranlib

          READELF = $(CROSS_COMPILE)readelf

          SIZE = $(CROSS_COMPILE)size

          STRINGS = $(CROSS_COMPILE)strings

          STRIP = $(CROSS_COMPILE)strip

          export AS AR CC CPP LD NM OBJCOPY OBJDUMP RANLIB READELF

          SIZE STRINGS STRIP

          # Build settings

          CFLAGS = -O2 -Wall -fno-short-enums

          HEADER_OPS = -I$(BIONIC_LIBC)/arch-arm/include

          -I$(BIONIC_LIBC)/kernel/common

          -I$(BIONIC_LIBC)/kernel/arch-arm

          LDFLAGS = -nostdlib -Wl,-dynamic-linker,/system/bin/linker

          $(PRODUCT_OUT)/obj/lib/crtbegin_dynamic.o

          $(PRODUCT_OUT)/obj/lib/crtend_android.o

          -L$(PRODUCT_OUT)/obj/lib -lc -ldl

          # Installation variables

          EXEC_NAME = example-app

          INSTALL = install

          INSTALL_DIR = $(PRODUCT_OUT)/system/bin

          # Files needed for the build

          OBJS = example-app.o

          # Make rules

          all: example-app

          .c.o:

          $(CC) $(CFLAGS) $(HEADER_OPS) -c {1}lt;

          example-app: ${OBJS}

          $(CC) -o $(EXEC_NAME) ${OBJS} $(LDFLAGS)

          install: example-app

          test -d $(INSTALL_DIR) || $(INSTALL) -d -m 755 $(INSTALL_DIR)

          $(INSTALL) -m 755 $(EXEC_NAME) $(INSTALL_DIR)

          clean:

          rm -f *.o $(EXEC_NAME) core

          distclean:

          rm -f *~

          rm -f *.o $(EXEC_NAME) core

          如何增加一個新的設(shè)備

          [plain] view plaincopy $ cd ~/android/aosp-2.3.x

          $ . build/envsetup.sh

          $ mkdir -p device/acme/coyotepad

          $ cd device/acme/coyotepad

          進(jìn)入AndroidProducts.mk

          PRODUCT_MAKEFILES :=

          $(LOCAL_DIR)/full_coyotepad.mk

          對于full_coyotepad.mk

          $(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)

          $(call inherit-product, $(SRC_TARGET_DIR)/product/full.mk)

          DEVICE_PACKAGE_OVERLAYS :=

          PRODUCT_PACKAGES +=

          PRODUCT_COPY_FILES +=

          PRODUCT_NAME := full_coyotepad

          PRODUCT_DEVICE := coyotepad

          PRODUCT_MODEL := Full Android on CoyotePad, meep-meep

          在BoardConfig.mk中

          TARGET_NO_KERNEL := true

          TARGET_NO_BOOTLOADER := true

          TARGET_CPU_ABI := armeabi

          BOARD_USES_GENERIC_AUDIO := true

          USE_CAMERA_STUB := true

          打開vendorsetup.sh

          add_lunch_combo full_coyotepad-eng


          上一頁 1 2 下一頁

          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();