android studio 将完整项目打包aar,快速换壳,或给第三方使用。

it2022-05-05  255

时隔多年,公司又提出了新的需求,之前的打包jar已经满足不了合作方的需求了。合作方:你们的jar,没有页面,需要时间去开发,给我一个直接能用的。程序员:你有钱,你说什么都对。这个需求首先让我想到的就是换壳,直接把这整个项目打包aar。在合作方公司App里面直接引入,启动APP时直接加载aar里面的页面,达到零开发成本。进入正题:

简单的module打包aar完整项目打包aar

简单的module打包aar

1.新建一个工程,然后在工程里新建一个module。

2.到工程App的build中要加入aarlibrary 这个依赖model,方便编写完module后执行app调试。

3、把编写好的module打包aar。

点击最右边的gradle面板,选择刚才创建的module进行编译,CommandLine 指令为assemble,具体操作步骤看图:

4、编译完成后会在module下的build/output文件夹,里面生成两个aar文件,我们一般选用release版本的aar文件。

这时候简单的module打包aar就完成了,aar里面是包含布局文件资源的。我们需要把aar复制到我们新的项目中去使用。

5、新项目引用打包好的aar。

1)将打包好的aar文件复制到项目中lib中。

2)修改app下的build.gradle文件,添加如下代码:

repositories { flatDir{ dirs 'libs' } } compile(name:'aarlibrary', ext:'aar')

3)在新的项目里面启动aar里面的Activity

Intent intent = new Intent(android.content.Intent.ACTION_VIEW); /** * 1、这里的packetname 是新项目的包名 * 2、classname 填写aar里面的Activity的:包名+Activity名称 */ intent.setComponent(new ComponentName("com.aarapplication", "aardemo.com.aarlibrary.AARActivity")); startActivity(intent);

完整项目打包aar

把一个完整的项目打包aar,也就是换壳,常用于把老APP换个壳,变成一个新的APP上线。把app打包aar其实跟module打包aar思路是一样的,我们要先把app改成module,再打包aar即可。

1、修改app的build.gradle,把它改成module。

将app中的apply plugin: 'com.android.application' 替换成apply plugin: 'com.android.library'.如图:

2、修改app的AndroidManifest文件

将application里面的一些里的name,icon,label,theme等删掉,activity的intent-filter删掉,

3、修改switch case,使用if else来的代替。

library中的不可以使用switch case,必须要用if else来的代替,否则空指针等其他错误。

@Override public void onClick(View v) { // TODO Auto-generated method stub if (v.getId() == R.id.linear_left) { ((Activity) mContext).finish(); } else if (v.getId() == R.id.btn_submit) { Intent intent = new Intent(mContext, MainActivity.class); mContext.startActivity(intent); } }

4、操作上面,把一个简单module打包aar的3、4、5步,即可把这个项目引用到一个新的项目中去。

注意:aar里面的Activity的名称和布局文件的名称不要跟新项目的的Activity的名称和布局文件的名称一致,这样会出现冲突,导致程序异常闪退。

未完。。。

要打包jar的点击这里:android studio 将引用第三方jar和.so的项目打包jar并混淆

aar打包参考文章:https://www.jianshu.com/p/29803da4d117


最新回复(0)