Android Studio 如何将子工程的APK输出到到主工程中被使用

帮Python找“对象”     【技术直播】揭开人工智能神秘的面纱       程序员1月书讯    云端应用征文大赛,秀绝招,赢无人机!

android studio中如何将一个项目的apk安装包输出到其他工程目录下

标签: androidapk组件化gradle
639人阅读 评论(0) 收藏 举报
本文章已收录于:
分类:
android基础知识(15)
作者同类文章 X

    目录(?)[+]

    1. 前言
    2. 具体实现
    3. 其他

    1. 前言

    Android Studio 如何将子工程的APK输出到到主工程中被使用_第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
     
     

    我的同类文章

    android基础知识(15)
    http://blog.csdn.net
    • android webview一篇文章全面了解(基本使用,url拦截,js跟java交互)2016-11-22阅读1194
    • 过时api-Android LocalActivityManager的用法2016-10-26阅读360
    • Android设置控件的透明度(半透明效果)2016-09-07阅读1075
    • Android AIDL进程间通信介绍2016-07-01阅读443
    • IntentFilter匹配规则讲解2016-06-14阅读299
    • 新的一年学习计划2016-11-07阅读189
    • Android使用UncaughtExceptionHandler捕获全局异常2016-09-10阅读468
    • android 沉浸式状态栏-4.4版本qq2016-09-01阅读475
    • Service Intent must be explicit解决方案2016-06-30阅读313
    • Activity四种启动模式(standard,singleTop,singleTask,singleInstance)2016-05-25阅读299
    更多文章

    参考知识库

    Android知识库

    30618关注|2612收录

    C语言知识库

    7406关注|3449收录

    大型网站架构知识库

    7581关注|708收录

    更多资料请参考:
    猜你在找
    iOS移动开发从入门到精通(Xcode7 & Swift2)
    精通iOS移动开发(Xcode7&Swift2;) 初识Xcode7.0
    Android Studio 开发详解
    iOS开发系列视频教程【C语言】
    Android APP开发之真机调试环境实现
    关联android library的工程如何生成APK或如何将library变成jar包导入
    获取已安装应用在dataapp目录下的apk安装包并分享
    如何将封装c#的源程序变成一个EXE或MSI安装包
    Android 开发中如何将多个程序打包成一个apk文件但是安装完成后显示多个程序
    在android studio如何将复制的项目成为一个新项目
    关闭
    查看评论

      暂无评论

    发表评论
    • 用 户 名:
    • JxMY_1989
    • 评论内容:
    • HTML/XML objective-c Delphi Ruby PHP C# C++ JavaScript Visual Basic Python Java CSS SQL 其它
    •   
    * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    核心技术类目
    全部主题 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

    你可能感兴趣的:(android)