1.将android工程(在eclipse中先编译通过)拷贝到alps/packages/apps文件夹下


2.加入so文件(第三方的)

    在Android工程统计目录下新建文件夹eg:abc,把需要用到的so文件拷贝到其中,在abc文件夹下新建Android.mk,内容如下:

 

#usgeLOCAL_PATH := $(call my-dir)  #调用此文件夹,将编译进行到此文件夹内include $(CLEAR_VARS)     #清除在次之前的编译环境LOCAL_MODULE_TAGS := optional   #编译选项:optional代表任何情况下都编,eng、user代表只有用户编译相应系统版本时才会编译此文件夹内容LOCAL_MODULE := libexample.so    #第三方so文件LOCAL_MODULE_CLASS := SHARED_LIBRARIES   #编译后so文件输出的位置:SHARED_LIBRARIES代表输出到alps/out/target/product/${project}/system/lib下#ETC 表示放在/system/etc/下    EXECUTABLES表示放在/system/bin/下LOCAL_SRC_FILES := $(LOCAL_MODULE)    #上边的so文件重新预编译LOCAL_MODULE_PATH := $(TARGET_OUT)/lib   #重新指定预编译输出的位置,具体与LOCAL_MODULE_CLASS区别,请百度include $(BUILD_PREBUILT)     #预编译注意:#如果有多个so文件,需要复制以上内容#完成以上步骤时,可以./mk mm package/apps/${project}通过,如果想在系统编译时生成,需要在alps/build/target/product/下的core.mk 或者common.mk # 或者 telephony.mk中的PRODUCT_PACKAGES += ${name of your app}   此处的名字要与Android.mk中的LOCAL_PACKAGE_NAME一致。

3.预编译的目的是将so文件放在相应的位置,打包后供app调用(会在手机的system/lib下找到你的so文件);另外也可以直接拷贝第三方的so库到product/${project}/system/lib中,然后./mk snod 加入android中,然后打包./mk bootimage,烧录后你会在手机system/lib中找到你拷贝的so库文件,但重新编译系统是需要重新拷贝,因为编译时会clean


4.加入jar文件(第三方的)

将jar文件拷贝到package/apps/${your APP project}/libs/中,在Android工程目录中新建Android.mk,如下:

#Android.mkLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-java-files-under, src)LOCAL_PACKAGE_NAME := xxxLOCAL_CERTIFICATE := platformLOCAL_JNI_SHARED_LIBRARIES := libxxx\libxxxLOCAL_STATIC_JAVA_LIBRARIES := xyz \qaxz \        wsxinclude $(BUILD_PACKAGE)    #以上内容编译成apkinclude $(CLEAR_VARS)LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := xyz:libs/xyz.jar  \    #指定jar实际在android工程的路径                qaxz:libs/qaxz.jar  \                wsx:libs/wsx.jarinclude $(BUILD_MULTI_PREBUILT)   #预编译 具体参数请百度include $(call all-makefiles-under,$(LOCAL_PATH))    #调用android工程下的子目录中的mkaefile

5.如果编译出错,请按照log修改,一般出现:没有规则创建xxx,需要目标xxx,请先确认需要xxx的文件是否已包含或者预编译到相应的路径下

出现java文件中找不到某个类的定义,请先确认这个类在哪个jar包内,确认jar是否在正确的路径内


出现:MODULE.TARGET.JAVA_LIBRARIES.android-support-v4 already defined by frameworks/support/v4。 停止。则需要在

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES中去掉android-support-v4.jar因为系统中已经定义过了,但是
LOCAL_STATIC_JAVA_LIBRARIES中需要加上,因为你的APP编译时需要
   

更多相关文章

  1. 分析Android(安卓)根文件系统启动过程(init守护进程分析)
  2. Android(安卓)开发技巧之Log发送UDP报文,Socket编程
  3. android 默认浏览器 无法下载,此手机不支持此内容(自定义文件or AP
  4. Android(cacerts.bks)添加根证书
  5. android studio查看genymotion模拟器上文件目录
  6. Cordova插件编写流程(Android平台)
  7. Android签名文件转化为pk8和pem的实现
  8. Android(安卓)多分包,方法数超出 65536 限制
  9. Android01————快速入门

随机推荐

  1. android屏幕的那些事之一!
  2. Android(安卓)TabHost的标签放在底部,已写
  3. Android中数据存储的三种方式--基础
  4. android "Only the original thread that
  5. android Button源码分析
  6. android图片上传
  7. android 常见死机问题--log分析
  8. 50 Android(安卓)Hack 读书笔记
  9. android解析httpresponce内容
  10. Android(安卓)交错 GridView