Android Studio逆向工程——向Eclipse迁移
来源:互联网 发布:农村淘宝要投资多少钱 编辑:程序博客网 时间:2024/06/04 19:09
背景:近期接手一个老项目。用Eclipse构建。由于某中原因,一直沿用的Eclipse。然后需要添加新功能,新功能是一个支付项目,给的代码是Android Studio构建。为了把项目导入Eclipse中,费时费力,终于成功。这里把过程分享一下。
准备阶段
首先拿到了项目Demo。导入AS中。
demo.bmp
导入工程后看到例子很简单,就两个类。
project.bmp
再看看依赖项:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.mcxiaoke.volley:library:1.0.+@aar' compile 'com.yj.www.frameworks:frameworks:0.+@aar' compile 'com.yiji.www.data:data:0.+@aar' compile 'com.yiji.www.paymentcenter:paymentcenter:0.+@aar' compile 'com.yiji.www.yiji_nfc_library:yiji_nfc_library:0.+@aar' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4' compile 'com.google.code.gson:gson:2.2.4'}appCompat v7 ,volley,gson,以及universal-image-loader,这些是我们熟悉的。剩下的就是业务逻辑的工程了。
动手阶段
1.打开Eclipse,新建一个Android工程,然后把Android Studio中的java目录下的代码,以及res中资源迁移到Eclipse工程中。
这时候会报错。我们不要管他。
2.找到你的as工程目录,然后打开,我们就在里面一顿找,我们需要的一定都在里面,运行一下你的Android Studio Demo,
这时候AS会生成一个build目录:
进入intermediates目录,里面会看到一些引用的aar展开的包。
通常是上面的aar目录,每有一个aar目录,就新建一个eclipse工程与之对应。但是有些时候不需要,我们做一些判断,
只要将里面的jar包放进去就行。如何判断我一会讲。
进入到包里面,通常会有如下目录:
aapt里面通常会放一个AndroidManifest。xml,和下面的一样。aidl是什么暂时不清楚,一般里面都是空的。
我们通常关注的assets/jars/jni/libs/res四个目录。
assets目录即为eclipse工程里面的assets目录。直接拷贝过去。
jars是jar包,一会会讲。
jni里面一般放XXXX.so文件,这个是用ndk开发的。里面一般会有一个armeabi文件夹,把这个文件夹放在Eclipse工程的libs目录下
jars里面是编译好的jar包(也可以理解为编译过的class文件的zip集合)进去看,里面有个class.jar,这个class就是原本Eclipse工程下
的src目录下的.java文件。只不过现在是编译过的。把它放在Eclipse工程下的libs目录下就行。
如果里面还有libs,进去将里面的jar包拷贝出来,一样放在Eclipse中的libs下。这些是原来工程引用的jar包。
libs里面应该是空的了。因为jar都在jars/libs下面了。
res文件对应Eclipse工程下面的res。直接拷贝过去,覆盖粘贴。
最后,将AndroidManifest.xml替换一下。
下面说一个如何判断是新建工程引用还是直接jar包引用。如果res和assets目录是空的,我们可以直接jar包引用,否则需要新建工程引用。像引用appcompat
那样。
3.新建Eclipse辅助工程。
这里大家想必都会,只是有几点需要注意一下。
a。新建时候注意包名
这里的包名应该和你的class。jar的包保持一致!
如果不确定,应该查看一下:
b.manifeat.xml一定要在你的主工程中注册。即把activity的标签全部拷贝粘贴过去。否则会报错。
不要以为Android Studio中的manifest都没有合并,你就不用合并了。
其实是as自动给合并了。不信你可以查看AS工程目录下
\app\build\intermediates\manifests\full\debug\AndroidManifest.xml
是不是已经合并了?AS太调皮了。
c.工程引用。新建的时候,要把islibrary勾选上。把创建launcher icon和create activity取消。
d.工程引用II,在编译报错的项目上右键,然后属性,android,library中添加以来的项目。
4.运行最后调试BUG。
收尾
Android Studio作为新一代的Android开发IDE,的确有很多的优越性。
这次逆向工程,让我们更深入的了解了Android Studio打包的过程。以及各种以来项目的处理。
- Android Studio逆向工程——向Eclipse迁移
- Eclipse向Android Studio工程的完美迁移
- eclipse工程手动迁移android-studio
- Android studio 工程迁移到Eclipse
- Android优酷播放器SDK——Eclipse工程迁移Android Studio遇到问题
- eclipse工程迁移到studio
- Android:从Eclipse到Android Studio迁移工程
- android工程从Eclipse迁移到Android Studio
- Eclipse工程迁移到Android Studio问题汇总
- android studio从Eclipse迁移
- eclipse迁移到android studio
- eclipse项目迁移android studio
- 关于Android工程从eclipse迁移至android studio的过程
- eclipse工程迁移到android studio生成的import-summary文件
- App工程从Eclipse迁移到Android Studio的问题总结
- Android 图解向 Android Studio 中导入 Eclipse 工程的步骤
- Android 图解向 Android Studio 中导入 Eclipse 工程的步骤
- 将Eclipse工程迁移到Android Stutio
- 大家好,我叫小白。
- 资产折旧盘点表
- 【教育】这么多年的应试教育,成果几何?
- Zookeeper客户端cli_st为何在crontab中运行不正常?
- How-Tos_Writing a service with spring
- Android Studio逆向工程——向Eclipse迁移
- UVa11624大火蔓延的迷宫(代码觉得没问题,但是对答案是3有疑惑,而且没有在oj上验证)
- Visual Studio Code + Golang1.5 debug + MAC OS X 10.11
- 大整数类的应用 bjfu1005
- 通过 WebBrowser 获取网页截图
- 键盘的相关设置
- 经典排序算法(一)冒泡法排序----C++实现
- 使用svn后无法打开程序
- iOS 计算代码块执行时间