Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2108393
  • 博文数量: 413
  • 博客积分: 10926
  • 博客等级: 上将
  • 技术积分: 3862
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-09 18:14
文章分类

全部博文(413)

文章存档

2015年(5)

2014年(1)

2013年(5)

2012年(6)

2011年(138)

2010年(85)

2009年(42)

2008年(46)

2007年(26)

2006年(59)

分类: 嵌入式

2012-09-21 15:40:07

  1. Difference between (share)java library and static java library
    • static java library:
      LOCAL_STATIC_JAVA_LIBRARIES: will build the specified .jar into the application, the .jar must be built as static java library
      BUILD_STATIC_JAVA_LIBRARY: build .jar as static java library
      in the depended project
    • shared java library
      LOCAL_JAVA_LIBRARIES: won't build .jar into the application, the .jar must be built as shared java library
      BUILD_JAVA_LIBRARY: build .jar as shared library
  2. Dependency on native libraries (thity-part libries)
    LOCAL_PATH:= $(call my-dir)  
    include $(CLEAR_VARS)    
    LOCAL_MODULE_TAGS := optional    

    LOCAL_STATIC_JAVA_LIBRARIES := libbaidumapapi 
    LOCAL_JNI_SHARED_LIBRARIES := libBMapApiEngine_v1_3_1
       
    LOCAL_SRC_FILES := $(call all-subdir-java-files)    
    LOCAL_PACKAGE_NAME := MyMaps    
    include $(BUILD_PACKAGE)  
       
    ##################################################  
    include $(CLEAR_VARS)  
       
    LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=libbaidumapapi:libs/baidumapapi.jar  
    LOCAL_PREBUILT_LIBS :=libBMapApiEngine_v1_3_1:libs/armeabi/libBMapApiEngine_v1_3_1.so 

    LOCAL_MODULE_TAGS := optional  
    include $(BUILD_MULTI_PREBUILT) 
  3. How build system find the projects
    Android build system will tranverse all folders under the source tree until Android.mk is found, if you want build system continue to tranverse sub-folders, you'd add this line in Android.mk: include $(call all-makefiles-under, $(CUR_SDK_PATH))
  4. LOCAL_MODULE_TAGS标志

    LOCAL_MODULE_TAGS :=user eng tests optional

    user: 指该模块只在user版本下才编译

    eng: 指该模块只在eng版本下才编译

    tests: 指该模块只在tests版本下才编译

    optional:指该模块在所有版本下都编译

     

    那么这些所谓的版本又是什么呢?

    就是lunch 以后要选择的版本

    eng This is the default flavor. A plain "make" is the same as "make eng". droid is an alias for eng.
      * Installs modules tagged with: eng, debug, user, and/or development.
      * Installs non-APK modules that have no tags specified.
      * Installs APKs according to the product definition files, in addition to tagged APKs.
      * ro.secure=0
      * ro.debuggable=1
      * ro.kernel.android.checkjni=1
      * adb is enabled by default.  

    user "make user"   This is the flavor intended to be the final release bits.
      * Installs modules tagged with user.
      * Installs non-APK modules that have no tags specified.
      * Installs APKs according to the product definition files; tags are ignored for APK modules.
      * ro.secure=1
      * ro.debuggable=0
      * adb is disabled by default.  

    userdebug "make userdebug"   The same as user, except:
      * Also installs modules tagged with debug.
      * ro.debuggable=1
      * adb is enabled by default.

     

    Build flavors/types

    When building for a particular product, it's often useful to have minorvariations on what is ultimately the final release build. These are thecurrently-defined "flavors" or "types" (we need to settle on a real namefor these).

    eng This is the default flavor. A plain "make" is the same as "make eng". droid is an alias for eng.
    • Installs modules tagged with: eng, debug, user, and/or development.
    • Installs non-APK modules that have no tags specified.
    • Installs APKs according to the product definition files, in addition to tagged APKs.
    • ro.secure=0
    • ro.debuggable=1
    • ro.kernel.android.checkjni=1
    • adb is enabled by default.
    user "make user"

    This is the flavor intended to be the final release bits.

    • Installs modules tagged with user.
    • Installs non-APK modules that have no tags specified.
    • Installs APKs according to the product definition files; tags are ignored for APK modules.
    • ro.secure=1
    • ro.debuggable=0
    • adb is disabled by default.
    userdebug "make userdebug"

    The same as user, except:

    • Also installs modules tagged with debug.
    • ro.debuggable=1
    • adb is enabled by default.

    If you build one flavor and then want to build another, you should run"make installclean" between the two makes to guarantee thatyou don't pick up files installed by the previous flavor. "makeclean" will also suffice, but it takes a lot longer.

  5. xxx
阅读(1198) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~