Android -- 源码平台下JAR包的引入与编译
https://blog.csdn.net/csdn_of_coder/article/details/64538227

BUILD_JAVA_LIBRARY 与 BUILD_STATIC_JAVA_LIBRARY

在Android.mk中可通过调用include $(BUILD_JAVA_LIBRARY)和include $(BUILD_STATIC_JAVA_LIBRARY)来分别生成目标设备上的共享JAVA库与静态JAVA库。

二者的区别在于静态JAVA库是由.class文件打包而成JAR包,它在任何一个JAVA虚拟机上都可以运行;而共享JAVA库则是在静态库的基础上进一步打包成的.dex文件,众所周知,dex是在android系统上所使用的文件格式。

由以上结论可做出进一步的推论:即Android.mk中变量LOCAL_JAVA_LIBRARIES所指定的为android系统使用的dex类库;而LOCAL_STATIC_JAVA_LIBRARIES变量所指定的则是.class文件打包而成的JAR文件:即静态JAVA库。

BUILD_STATIC_JAVA_LIBRARY会生成out/target/common/obj/JAVA_LIBRARIES/appsaut_intermediates目录及其下的JAR文件;而BUILD_JAVA_LIBRARY生成此目录的同时会将其中的JAR包复制到out/target/product/<product-name>/system/framework/中;除此之外,还存在BUILD_HOST_JAVA_LIBRARY命令则是在out/host/linux-x86/framework目录下生成相应的JAR包。分别使用此三条命令执行的结果如下所示:注意其中带有红色下划线的LOG信息。


Basic usage:

include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := app_sdk_data.jar \
bsh-core-2.0b4.jar \
jackson-annotations-2.0.2.jar \
jackson-core-2.0.2.jar \
jackson-databind-2.0.2.jar \
kksdk1.3_full_pro.jar

include $(BUILD_MULTI_PREBUILT)

////////////////////////////////////////////////////////////////////////////
LOCAL_STATIC_JAVA_LIBRARIES := appsaut
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := appsaut:libs/appsaut.jar

include $(BUILD_MULTI_PREBUILT)


android 源码中mmm依赖第三方jar包的项目

https://my.oschina.net/blackylin/blog/109527

在项目根目录下的Android.mk中:

1.

LOCAL_STATIC_JAVA_LIBRARIES := libGoogleAnalytics libGoogleAdMobAdsSdk libmobclix

2.

##################################################
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libGoogleAnalytics:libs/libGoogleAnalytics.jar
include $(BUILD_MULTI_PREBUILT) include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libGoogleAdMobAdsSdk:libs/GoogleAdMobAdsSdk-4.1..jar
include $(BUILD_MULTI_PREBUILT) include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libmobclix:libs/mobclix.jar
include $(BUILD_MULTI_PREBUILT)

把依赖的jar包放到libs目录下,先预编译到out/target/product/generic/obj/JAVA_LIBRARIES下,然后本项目就会找到依赖的者jar包了。下面完整Andraoid.mk如下:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional # Only compile source java files in this apk.
LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := DependJarTest
LOCAL_CERTIFICATE := platform LOCAL_STATIC_JAVA_LIBRARIES := libGoogleAnalytics libGoogleAdMobAdsSdk libmobclix include $(BUILD_PACKAGE) ##################################################
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libGoogleAnalytics:libs/libGoogleAnalytics.jar
include $(BUILD_MULTI_PREBUILT) include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libGoogleAdMobAdsSdk:libs/GoogleAdMobAdsSdk-4.1..jar
include $(BUILD_MULTI_PREBUILT) include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libmobclix:libs/mobclix.jar
include $(BUILD_MULTI_PREBUILT) # Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

Android FrameWork集成第三方SDK的jar包和so库

https://blog.csdn.net/szqsdq/article/details/53035460

首先在framework/opt/建立XXSDK的文件夹讲jar包和so库拷贝进去

1:framework/opt/xxsdk/

然后直接看Android.mk就行

# Copyright (C)  The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License. LOCAL_PATH := $(my-dir) include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := app_sdk_data.jar \
bsh-core-.0b4.jar \
jackson-annotations-2.0..jar \
jackson-core-2.0..jar \
jackson-databind-2.0.
.jar \
kksdk1.3_full_pro.jar
include $(BUILD_MULTI_PREBUILT) ##################################################
include $(CLEAR_VARS)
LOCAL_MODULE := libcode
LOCAL_SRC_FILES := libs/libcode.so
LOCAL_MODULE_SUFFIX :=
.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES include $(BUILD_PREBUILT) include $(call all-makefiles-under,$(LOCAL_PATH)) ##################################################
include $(CLEAR_VARS)
LOCAL_MODULE := libluajava
LOCAL_SRC_FILES := libs/libluajava.so
LOCAL_MODULE_SUFFIX :=
.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES include $(BUILD_PREBUILT) include $(call all-makefiles-under,$(LOCAL_PATH)) ##################################################
include $(CLEAR_VARS)
LOCAL_MODULE := libtruss
LOCAL_SRC_FILES := libs/libtruss.so
LOCAL_MODULE_SUFFIX :=
.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES include $(BUILD_PREBUILT) include $(call all-makefiles-under,$(LOCAL_PATH))

Android OS 源码 引入和编译 jar / so库的更多相关文章

  1. Android之源码之模块编译和调试

    Android之源码之模块编译调试 (一) 进行源码模块修改进行编译的调试 1.首先是从git或者svn上拉一套完整的工程下来,然后全编一下,一般这个时间比较长,大概会得2,3个小时左右, 2,编译成 ...

  2. android内核源码下载和编译

    1.下载编译 新建kernel目录 ~/srcAndroid/src4.4.4_r1/kernel目录下,输入命令: seven@ThinkPad:~/srcAndroid/src4.4.4_r1/k ...

  3. 将android Settings 源码 导入到 eclipse工程

    1.  新建 android 项目 拷贝源码/packages/apps/Settings到你的其它目录. 在eclipse中,新建项目,但是要从exitting source选择: 2. 导入相关的 ...

  4. 在Ubuntu上下载、编译和安装Android最新源码

    看完了前面说的几本书之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源码了呢?一直习惯使用Windows系统,而Android源 ...

  5. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  6. Android源码、内核编译

    Android源码和内核的编译就是一场马拉松,每一个节点都耗时漫长,下载源码.编译源码.下载内核.编译内核,下载中途会断掉,编译中间会失败,求解再重来,又是一轮马拉松,于是每一步都要做好备份和记录,可 ...

  7. 【转】编译Android系统源码和内核源码

    原文网址:http://blog.csdn.net/jiangwei0910410003/article/details/37988637 好长时间没有写blog了,之所以没有写,主要还是工作上的事, ...

  8. 【转】Android 4.4源码下载与编译

    原文网址:http://www.cnblogs.com/zhx831/p/3550830.html 这篇文章记录了我下载源码和编译的全过程, 全过程参考Android官方文档 1. 下载Android ...

  9. FW 编译Android系统源码和内核源码

    编译Android系统源码和内核源码 分类: Android2014-07-21 20:58 7287人阅读 评论(28) 收藏 举报 好长时间没有写blog了,之所以没有写,主要还是工作上的事,发现 ...

随机推荐

  1. ReactNative开发笔记(持续更新...)

    本文均为RN开发过程中遇到的问题.坑点的分析及解决方案,各问题点之间无关联,希望能帮助读者少走弯路,持续更新中... (2019年3月29日更新) 原文链接:http://www.kovli.com/ ...

  2. 洛谷P2179 骑行川藏

    什么毒瘤... 解:n = 1的,发现就是一个二次函数,解出来一个v的取值范围,选最大的即可. n = 2的,猜测可以三分.于是先二分给第一段路多少能量,然后用上面的方法求第二段路的最短时间.注意剩余 ...

  3. 在centos 7 下安装 nginx

    在Linux下安装 nginx 1下载对应当前系统版本的nginx包(package) wget  http://nginx.org/packages/centos/7/noarch/RPMS/ngi ...

  4. Intellij IDEA项目包分层结构显示设置

    问题:(这种方式的查看包名,确实十分难看) 解决方法:

  5. 十行代码分清Java 的 || 和 &&

    发现有些同学到现在还没分不清 || 和 &&的作用 package System; /** * * @ClassName: RandomTest * @Description: 十行代 ...

  6. sklearn中的损失函数

    python风控评分卡建模和风控常识(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005214003&am ...

  7. URL存在跨站漏洞http host头攻击漏洞解决方案

    最近项目部署的时候客户使用的绿盟扫描出一些漏洞,老大让我处理,经过看大神的博客等方式,分享一些简单的解决方法. 一 跨网站脚本 跨网站脚本(Cross-site scripting,通常简称为XSS或 ...

  8. vue+element 正则表达式进行表单验证

    <template> <el-form :model="form" label-width="115px" ref="form&qu ...

  9. E. Vanya and Balloons Codeforces Round #355 (Div. 2)

    http://codeforces.com/contest/677/problem/E 题意:有n*n矩形,每个格子有一个值(0.1.2.3),你可以在矩形里画一个十字(‘+’形或‘x’形),十字的四 ...

  10. 扩展欧几里得(exgcd)与同余详解

    exgcd入门以及同余基础 gcd,欧几里得的智慧结晶,信息竞赛的重要算法,数论的...(编不下去了 讲exgcd之前,我们先普及一下同余的性质: 若,那么 若,,且p1,p2互质, 有了这三个式子, ...