Android编译系统使用杂解

感觉android编译系统纷繁复杂,有必要做个整理

个人觉得编译出来的东西大致分为三类
1. 设备需要的img.
   设备可以是手机,pad等等具体的设备,也可是android emulator。编译时,我们需要知道此设备运行在哪个架构上,哪个OS上
  涉及到的编译命令:
  make, build/envsetup.sh, m,mm,mmm等等

2. 提供给应用层开发的sdk
  不要把sdk与模拟器混为一谈,sdk开发出来的东西既可以在模拟器上跑,也可以在真机上跑,而模拟器所需要的img,则是第一类编译出来的。
  涉及到的编译命令:
  make sdk(make时不会生成sdk) 

3. 其它杂项,比如make doc



对应这三类东东,最终配置会体现在以下文件中

  • build/core/config.mk         summary of config 
      config.mk包含了根目录下的buildspec.mk,它配置了以下这些西西
      PLATFORM_VERSION_CODENAME=REL
    PLATFORM_VERSION=2.2
    TARGET_PRODUCT=sim
    TARGET_BUILD_VARIANT=user
    TARGET_SIMULATOR=true
    TARGET_BUILD_TYPE=release
    TARGET_BUILD_APPS=
    TARGET_ARCH=x86
    HOST_ARCH=x86
    HOST_OS=linux
    HOST_BUILD_TYPE=release
    BUILD_ID=FRF91
       所以如果是想对上面这堆进行配置,个人觉得可以统一在buildspec.mk修改。
        
  • build/core/envsetup.mk    generate dir config and so on  
  • build/target/product         product config  
      最终产品特性,比如有哪些APP?
  • build/target/board            board config  
      硬件配置?maybe

  • build/core/combo              build flags config 

  • 你可能感兴趣的:(android,OS,Build,手机,产品,X86)