`
寻梦者
  • 浏览: 635424 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android中添加第三方架包

阅读更多

android中可能会用到第三方的软件包,这包括Java包.jar和Native包.so。jar包既可通过Eclipse开发环境集成,也可通过编译源码集成,看你的工作环境。

 

假定自己开发的程序为MyMaps,需要用到BaiduMaps的库,包括baidumapapi.jar和libBMapApiEngine_v1_3_1.so。

 

一、Eclipse中集成第三方jar包及.so动态库

 

MyMaps工程下创建目录libs以及libs/armeabi,把baidumapapi.jar放在的libs/目录下,把libBMapApiEngine_v1_3_1.so放在libs/armeabi/下。

 

Eclipse中把第三方jar包baidumapapi.jar打包到MyMaps的步骤:

 

1.      右击工程,选择Properties;

2.      Java Build Path,选择Libraries;

3.      Libraries页面点击右面按钮“Add Library…”;

4.      选择“User Library”,点击“Next”;

5.      点击“User Libraries”按钮;

6.      在弹出界面中,点击“New…”;

7.      输入“User library name”,点击“OK”确认;

8.      返回之后,选择刚刚创建的User library,右面点击“AddJARs”;

9.      选择MyMaps/libs/下的baidumapapi.jar;

10.  确认,返回。

 

这样,编译之后,该jar包就会被打进MyMaps.apk中,libBMapApiEngine_v1_3_1.so也被打包在lib/armeabi/中。

程序运行过程中,libBMapApiEngine_v1_3_1.so被放在/data/data/<yourAppPackage>/lib/下,加载动态库时系统会从程序的该lib/目录下查找.so库。

 

二、源码中集成第三方集成jar包及.so动态库

 

Android源码中MyMaps放在packages/apps下。MyMaps下创建目录libs以及libs/armeabi,并把baidumapapi.jar放在libs/,把libBMapApiEngine_v1_3_1.so放在libs/armeabi。

 

2.1 修改Android.mk文件

 

Android.mk文件如下:

 

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
 
LOCAL_MODULE_TAGS := optional
 
LOCAL_STATIC_JAVA_LIBRARIES := libbaidumapapi
 
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)
 
# Use the following include to make our testapk.
include $(callall-makefiles-under,$(LOCAL_PATH))

 

1 集成jar包

LOCAL_STATIC_JAVA_LIBRARIES取jar库的别名,可以任意取值;

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES指定prebuiltjar库的规则,格式:别名:jar文件路径。注意:别名一定要与LOCAL_STATIC_JAVA_LIBRARIES里所取的别名一致,且不含.jar;jar文件路径一定要是真实的存放第三方jar包的路径。

编译用BUILD_MULTI_PREBUILT

2 集成.so动态库

LOCAL_PREBUILT_LIBS指定prebuilt so的规则,格式:别名:so文件路径。注意:别名一般不可改变,特别是第三方jar包使用.so库的情况,且不含.so;so文件路径一定要是真实的存放第三方so文件的路径。

编译拷贝用BUILD_MULTI_PREBUILT

 

2.2 加入到GRANDFATHERED_USER_MODULES

 

在文件user_tags.mk中,把libBMapApiEngine_v1_3_1加入到GRANDFATHERED_USER_MODULES中

 

GRANDFATHERED_USER_MODULES += \
    … \
    libBMapApiEngine_v1_3_1

 

user_tags.mk可以是build/core下的,也可以是$(TARGET_DEVICE_DIR)下的,推荐修改$(TARGET_DEVICE_DIR)下的。

 

2.3 编译结果

 

MyMaps.apk编译生成在out/target/product/<YourProduct>/system/app/下;

libBMapApiEngine_v1_3_1.so放在out/target/product/<YourProduct>/system/lib/下,这也是系统加载动态库时搜索的路径。

 

分享到:
评论

相关推荐

    Android左右侧滑第三方架包SlidingMenu.zip

    Android左右侧滑第三方架包SlidingMenu用于在项目中添加左右侧滑非常方便简洁,使用的方式也非常简单,架包的源码也一同包含在内,侧滑滑动区域也可以设置自定义的模式,如menu.setTouchModeAbove(SlidingMenu.TOUCH...

    一些常用的第三方架包

    标题中的“一些常用的第三方架包”表明这是一组在Java开发中经常使用的库,这些库可以帮助开发者更高效地处理各种任务。描述中提到的具体库包括beanutils、dbutils、fileupload、dpct、c3p0以及IO相关的库,这些都是...

    Jar打包(解决eclipse无法打包含有第三方架包问题)

    3. **设置打包选项**:在弹出的对话框中,选择要导出的主类(程序入口点),然后在`Libraries`选项卡中添加项目的依赖库,包括所有第三方JAR文件。 4. **生成fat jar**:点击`Finish`,Eclipse会将所有选定的类和库...

    百度地图API_BaiduMap_AndroidSDK_v2.1.2

    **第三方架包**是Android应用开发中常见的做法,用于增强应用的功能。百度地图SDK就是一个典型的第三方库,它提供了丰富的地图服务接口,使得开发者无需从零开始构建地图功能。使用这个SDK,开发者可以轻松地在应用...

    在线支付系统

    在线支付系统 核心文件 编程软件篇 第三方架包

    基于axis的webservice项目示例源码

    基于apache第三方架包axis编写的一套简单webservice示例项目(含源码),该项目基于myeclipse环境部署,可以直接导入myeclipse部署到tomcat等服务器运行。

    slf4j-1.5.2架包(完整版)

    5. **MDC和NDC**:SLF4J支持MDC(Mapped Diagnostic Context)和NDC(Nested Diagnostic Context),这两种上下文可以帮助在日志中添加环境相关的数据,如线程ID、请求ID等,以便于调试和追踪。 6. **日志配置**:...

    java支付宝手机网页支付接口

    本代码示例(demo)中模拟获取远程HTTP信息使用的是commons-httpclient-3.0版本的第三方架包、及支付宝的httpClient封装类。 如果您不想使用该方式实现模拟获取远程HTTP功能,那么可以用其他方式代替,此时需您自行...

    create_direct_pay_by_user-JAVA-GBK.rar_DEMO_alipay demo

    本代码示例(demo)中模拟获取远程HTTP信息使用的是commons-httpclient-3.0版本的第三方架包、及支付宝的httpClient封装类。 如果您不想使用该方式实现模拟获取远程HTTP功能,那么可以用其他方式代替,此时需您自行...

    commons-email-1.3.1-bin

    3. **SMTP 配置**:Apache Commons Email 支持多种 SMTP(简单邮件传输协议)服务器配置,包括SSL/TLS加密,这使得在安全的环境中发送邮件变得更加简单。 4. **错误处理**:库中包含了对邮件发送失败的处理机制,...

    一种可调节水量的消防炮的制作方法.docx

    通过旋转第一螺栓,可以调节其次圆筒的上下位置,将其插入其次圆板10中,以提供密封,防止水源泄漏,减少水资源浪费。 粗筒的外壁底部固接有第一圆板9,第一圆板下方设有其次圆板10,两者之间通过固定机构4进行连接...

    后浇带独立支撑体系施工组织方案.doc

    后浇带独立支撑体系是建筑工程中一种特殊的设计,主要用于处理混凝土结构中后浇带的施工问题。后浇带是在主体结构施工过程中为了防止早期混凝土收缩而设置的临时性分割,后期再进行浇筑,以保证整体结构的稳定性和...

    建筑工程常用表格2021塔式起重机安拆过程原始记录表12-8.doc

    在建筑工程中,塔式起重机是不可或缺的重要机械设备,主要用于重型建筑材料的吊装和运输。这份"塔式起重机安拆过程原始记录表12-8"详细记录了塔机安装与拆卸过程中的各项质量检查,确保施工安全和设备的正常运行。...

    生产经营单位安全管理人员模拟考试题1_12.doc

    3. 机床四方架操作安全:机床的四方架压紧后手柄应在第一象限的0—45°,以确保操作安全,选项A正确。 4. 扬子石化公司的"0457"安全管理模式:该模式包括围绕“事故为零”的目标、"四全"对策、五项基础标准以及标准...

    003后浇带独立支撑体系施工组织方案.doc

    - 独立模板与平台板、梁底板之间通过钢管搭设的小方架连撑,以增强稳定性。通常设置3道小方撑,间距根据立杆端距离设定。 - 对于悬臂梁,当其距支座点小于1.5m时,需要在梁端底部设置独立支撑柱。对于后浇带两侧梁...

    后浇带独立支撑体系施工方案.pdf

    后浇带独立支撑体系是建筑工程中一种特殊结构支撑方法,主要应用于后浇带施工过程,以确保结构安全、施工便利并节约成本。后浇带是在建筑物施工过程中为解决混凝土收缩和温度变化引起的裂缝问题而设置的临时分隔,待...

Global site tag (gtag.js) - Google Analytics