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打包的过程。以及各种以来项目的处理。





0 0
原创粉丝点击