本文章已收录于:
分类:
作者同类文章
X
版权声明:本文为博主原创文章,未经博主允许不得转载。
1. 前言
上图是淘宝apk解压后(手机淘宝_com.taobao.taobao_144\lib\armeabi)该目录下的文件,之前以为淘宝为了安全 ,原生代码都用C语言去实现,然后编译成so,今天看到公司组件化实现方式才明白,so其实就是一个个apk,就是主工程动态装载的bundle(apk)。简单点说,就是一个主工程,其他各个业务部门,自己新建各自的子工程,那么问题来了,如果几十个业务部门,一个一个拷贝很麻烦,如何自动生成到主工程呢?
目前使用的Android stuido开发android项目,现在有A项目和B项目,B项目中需要用到A项目的apk包(A项目的apk放到B项目的armeabi目录下)
2.具体实现
apply plugin: 'com.android.application'
def outputPathName = "E:\\companyproject\\Test\\Test\\TestB\\src\\main\\jniLibs\\armeabi\\some.apk"
android {
compileSdkVersion 23
buildToolsVersion "24.0.0 rc2"
defaultConfig {
applicationId "com.example.test.test"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
//这是应用编译完成
applicationVariants.all { variant ->
variant.outputs.each { output ->
//开始输出
output.outputFile = new File(outputPathName)
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.3.0'
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
其实就两个地方添加代码:
1)声明输出路径
def outputPathName = "E:\\companyproject\\Test\\Test\\TestB\\src\\main\\jniLibs\\armeabi\\some.apk"
- 1
- 1
2)执行输入
//这是应用编译完成
applicationVariants.all { variant ->
variant.outputs.each { output ->
//开始输出
output.outputFile = new File(outputPathName)
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3.其他
组件化可以参考一下携程的:
携程移动端架构演进与优化之路
-
顶
- 0
-
踩
- 0
我的同类文章
http://blog.csdn.net
- •android webview一篇文章全面了解(基本使用,url拦截,js跟java交互)2016-11-22
- •过时api-Android LocalActivityManager的用法2016-10-26
- •Android设置控件的透明度(半透明效果)2016-09-07
- •Android AIDL进程间通信介绍2016-07-01
- •IntentFilter匹配规则讲解2016-06-14
- •新的一年学习计划2016-11-07
- •Android使用UncaughtExceptionHandler捕获全局异常2016-09-10
- •android 沉浸式状态栏-4.4版本qq2016-09-01
- •Service Intent must be explicit解决方案2016-06-30
- •Activity四种启动模式(standard,singleTop,singleTask,singleInstance)2016-05-25
参考知识库
关闭
核心技术类目
全部主题
Hadoop
AWS
移动游戏
Java
Android
iOS
Swift
智能硬件
Docker
OpenStack
VPN
Spark
ERP
IE10
Eclipse
CRM
JavaScript
数据库
Ubuntu
NFC
WAP
jQuery
BI
HTML5
Spring
Apache
.NET
API
HTML
SDK
IIS
Fedora
XML
LBS
Unity
Splashtop
UML
components
Windows Mobile
Rails
QEMU
KDE
Cassandra
CloudStack
FTC
coremail
OPhone
CouchBase
云计算
iOS6
Rackspace
Web App
SpringSide
Maemo
Compuware
大数据
aptech
Perl
Tornado
Ruby
Hibernate
ThinkPHP
HBase
Pure
Solr
Angular
Cloud Foundry
Redis
Scala
Django
Bootstrap
暂无评论