Android一个完整的项目转成SDK提供给第三方嵌入
2015-09-09 17:40
435 查看
1、项目导出Apk反编译到res/values/目录下找到'public.xml'和'ids.xml'两个文件;
2、项目设置为libray项目;
3、项目"Clean...",如果出现switch语句错误,一般要修改成if-else;
[选择switch整个语句-右键-Quick Fix-Convert 'switch' to 'if-else']
4、拷贝上面提到的'public.xml'和'ids.xml'两个文件到项目res/values目录下,这一步是定义资源ID,防止在Library项目引用的资源文件找不到;
5、替换"@+id/"为"@id/";
6、修改项目中资源命名,可以看到项目gen目录下生成有项目的R文件,这里包含项目中引用到所有的资源,根据生成的R.java文件重命名项目中所有引用到的资源(这里可以添加前缀)。如此为了防止第三方项目引用Library项目时出现重复定义的情况,本步工作量大,建议写查找替换程序。
7、拷贝AndroidManifest.xml文件中的组件和权限到项目中,注意组件要使用全包名。
8、提供Library的入口程序给项目启动。
9、打包调试Library项目,基本不会有什么新问题。
10、修改Library项目:project.properties文件中android.library=true去除,导出Apk软件包(可以添加代码混淆,注意Library项目的入口程序不能混淆)反编译提取出classes.dex为jar包;
11、使用zip打开jar包R.class、R$anim.class等内部类;
12、jar放到Library项目并删除libs中其他jar包文件,删除src下的源码文件,并改回Library项目
至此完整的流程已全部做完,这时就可以提供出Library项目给第三方使用,最好写一个使用文档了
2、项目设置为libray项目;
3、项目"Clean...",如果出现switch语句错误,一般要修改成if-else;
[选择switch整个语句-右键-Quick Fix-Convert 'switch' to 'if-else']
4、拷贝上面提到的'public.xml'和'ids.xml'两个文件到项目res/values目录下,这一步是定义资源ID,防止在Library项目引用的资源文件找不到;
5、替换"@+id/"为"@id/";
6、修改项目中资源命名,可以看到项目gen目录下生成有项目的R文件,这里包含项目中引用到所有的资源,根据生成的R.java文件重命名项目中所有引用到的资源(这里可以添加前缀)。如此为了防止第三方项目引用Library项目时出现重复定义的情况,本步工作量大,建议写查找替换程序。
7、拷贝AndroidManifest.xml文件中的组件和权限到项目中,注意组件要使用全包名。
8、提供Library的入口程序给项目启动。
9、打包调试Library项目,基本不会有什么新问题。
10、修改Library项目:project.properties文件中android.library=true去除,导出Apk软件包(可以添加代码混淆,注意Library项目的入口程序不能混淆)反编译提取出classes.dex为jar包;
11、使用zip打开jar包R.class、R$anim.class等内部类;
12、jar放到Library项目并删除libs中其他jar包文件,删除src下的源码文件,并改回Library项目
至此完整的流程已全部做完,这时就可以提供出Library项目给第三方使用,最好写一个使用文档了
相关文章推荐
- [Android]应用语言切换的三种方法
- Android Canvas设置绘画时重叠部分的处理模式【含效果图】
- 利用HorizontalScrollView实现页签效果
- Android使用gradle不同配置多项目打包(升级版)
- 获取android的实时网速
- 深入理解Android之Gradle
- Android L Ripple的使用
- Android 仿照QQ剪裁头像(完结篇)
- android的窗口机制分析------ViewRoot类
- Android抽象布局——include、merge 、ViewStub
- Android 学习第5课,配置android
- [转]Android 中Parcelable的作用
- Android遥控器开发
- Android开发中相见恨晚的方法、类或接口
- [待完善]提升Android Studio的编译速度
- Android 开发中,px、dip、density 间的关系,用于多分辨率适配
- Android onTouchEvent, onClick及onLongClick的调用机制
- Android之View和SurfaceView
- android下的回调机制 分享
- Android DecorView浅析