2011/05/01

j2me java软件jad,jar转android apk的方法


有很多手机软件都是用java写的,因为开发的时间久远,或开发人员没有精力开发适应于其他平台的软件,这些java软件并不能直接在android手机上运行,必须安装模拟器才能运行。但是模拟器很烂,经常出现内存不足无法装载,或Force Close,即便成功运行,用触屏的方法去使用这些java软件,体验也很差。
今天思索着把opera mini 4.2 handler.jar转成apk,以后就可以很方便的输入自定义服务器,而不用每次都用前一篇文章的方法:反编译apk、修改源码里的服务器地址、打包、签名等等。搜索了一下jar to apk,还真有办法可以转。

1.确保软件有.jar和.jad文件,没有.jad文件的,可以到这里 http://mg.shouji.com.cn/do/jad 生成

2.打开 http://www.netmite.com/android/srv/2.0/getapk.php ,在option 2下上传.jad和.jar文件,点下方的Get APK按钮,保存生成的apk文件到电脑上

3.下载App Runner:andme_signed.apk,和上一步生成的apk一同传到手机上安装,搞定。

说说这个app runner,其实也可以算是模拟器来的,但是使用的体验和稳定性就好很多。

我一口气转了四个软件,opera mini 4.2 handler mod(opm自定义服务器版)、Memodict(记忆宝)、snaptu(不能使用)、Ucweb7.7(去掉了联系人的权限)

现在不用担心翻不了墙了。

Update:Ucweb7.7已删,不好用。 opera mini handler 不知道为什么突然又用不了,每次进去都要重新输入服务器,而且还跳转到使用中国版的提示页,不能浏览其他网页。估计重装应该可以解决。

Update2:由于我用的是free web host area上的免费空间,昨晚用来搭建twitter api时,被停用了,说限制中国用户使用,只有花钱购买才能继续使用,别无他法。再找其他的免费空间,均不支持curl。
搜索了其他可用的opm服务器,填入opm中,发现又可以用了,原来free web host area在我建立账号之后不久就限制了我的使用。
昨晚找不到免费空间可以支持curl,于是在推特上@牧师(@newsinchina),想购买收费的空间。牧师推荐了他淘宝店上的50元的主机,我看了之后,心动了,一直想建个独立的博客,但是对wordpress不熟悉。(11.5.4)

修改opera mini for android的服务器

opera mini 4.2 custom server

一、架设自己的OPM服务器

opm-server-mirror 项目主页下载 index_2009_11_25.zip,解开后得到 index.php 文件,用记事本(最好是用Notepad++)打开,修改 “http://server4.operamini.com” 为 “http://mini5.opera-mini.net”。保存后上传到支持 curl 的 php 主机上,我用的是 Free Web Hosting Arre 上的免费主机。

二、准备工具

1.安装JRE:到 http://www.java.com/getjava/ 上下载。已经安装过 JRE 或者 JDK 的用户可以跳过。

2.下载smali: http://smali.googlecode.com/files/smali.jar 解压到D盘根目录下;

3.android-apktool。这个工具是用来反编译 .apk 文件的。注意要下载两个压缩包:akptool-xxx-tar.bz2 及 apktool-install-windows-xxx-tar.bz2,然后解压到同一目录里(D:\Tools\apktool)才能使用,详细使用方法见它的说明。另外,建议将此工具的路径添加到 PATH 变量里,以方便下面的使用。

4.Auto-Sign。这是一个签名工具。解压到D:\auto-sign备用。

三、opera mini 4.2 for android 改服务器

1.下载反编译过的的Android版OPM源代码: http://opm-server-mirror.googlecode.com/files/android_opera_classes.zip ,解压到D:\source下

2.用Notepad++打开D:\source\Code.smali,将 http://server4.operamini.com:80 改成你自己架设的OPM服务器,此处可将 socket://server4.operamini.com:1080 一并修改,这样在第一次运行的时候也不会提示下载中国版了,记得保存。

3.打开命令行,进入smali的保存目录,执行:

java -jar smali.jar -o D:\classes.dex D:\source 

意思是将source文件夹编译成classes.dex,执行完会生成classes.dex

4.下载Android版OPM的安装包: http://opm-server-mirror.googlecode.com/files/opm4.apk 。如果你知道怎么获取APK包也可直接使用原始的APK文件。

5.将opm4.apk改名为opm4.zip,用任意压缩工具打开。删除里面的META-INF文件夹(这个我没删,也成功了)。并把D:\classes.dex拖进opm4.zip替换掉原始的classes.dex。

6.把修改过的opm4.zip放入Auto-Sign的目录,运行里面的sign.bat。

7.如果你在Auto-Sign的目录里面看见your_app_signed.apk的话,恭喜你,你已经成功了!传到手机上安装吧,请在安装之前卸载先前的版本。

四、opera mini 6 for android 改服务器

1.准备一个 Opera Mini for Android 6 的 apk 文件
这个可以去 Opera 网站下载,选择 Android 就可以。 也直接去才市场下载后安装,然后通过 AppMonster 之类的备份软件备份 apk 到 SD 卡上,再通过 SwiFTP 等软件传到 PC 上待用,假设传到 PC 上的文件名是 Opera_Mini_6_Android.apk。

2.解包
按 Win-R 组合键,在 “打开” 后面的输入框中输入 “cmd”,点击 “确定”。在弹出的 “命令行提示符” 窗口中输入 “D:” 回车,切换到 D 盘根目录 (第 1 步中保存 Opera_Mini_6_Android.apk 的路径),然后输入以下命令进行解包:

apktool d Opera_Mini_6_Android.apk operamini

3.修改 opm 服务器 打开 D:\operamini\smali\com\opera\mini\android 目录,用Notepad++打开文件 AndroidNativeImage.smali。 把 444 行的 国服版的 key 改成 422 行国际版的 key,此处直接复制替换整行即可。 把 454 行的 “http://mini5cn.opera-mini.net:80/” 修改成第 2 步中的 url,比如 “http://myopm.domain.com/”。

4. 给新生成的 Opera_Mini_6_Android.apk 签名 把第 3步中生成的 Opera_Mini_6_Android.apk (位于 operamini\dist 目录中) 复制到 D:\Tools\Auto-Sign 目录中,改名为 operamini.zip,双击 D:\Tools\Auto-Sign 目录下的 sign.bat 文件,根据提示按 2 次任意键,得到最终的 your_app_signed.apk 文件,重命名为 Opera_Mini_6_Android_mod.apk,删除 operamini.zip 文件。

5. 重新签名原版 opm6
可能 opm6 采用了新的验证机制,目前改服后的 opm6 安装后无法完成 installing 过程,这里采用 @LvWind 的方法,把原版重新签名后再使用改服版覆盖安装。

用解压缩工具打开 Opera_Mini_6_Android.apk,删除目录 META-INF,然后改名为 Opera_Mini_6_Android.zip,复制到 D:\Tools\Auto-Sign 目录中,双击 D:\Tools\Auto-Sign 目录下的 sign.bat 文件,根据提示按 2 次任意键,得到最终的 your_app_signed.apk 文件,重命名为 Opera_Mini_6_Android_resigned.apk,删除 Opera_Mini_6_Android.zip 文件。

6. 手机上安装 opm6

把第4步中得到的 Opera_Mini_6_Android_mod.apk 文件及把第5步中得到的 Opera_Mini_6_Android_resigned.apk 文件复制到手机 SD 卡上,先安装Opera_Mini_6_Android_resigned.apk,完成后选择打开,等待 installing 结束后退出,然后再安装 Opera_Mini_6_Android_mod.apk。记得安装之前先删除老版本,至此可以享受科学上网的乐趣了。


本文参照并修改自:
1.如何修改Android版的OPM:http://code.google.com/p/opm-server-mirror/wiki/HowToCustomYourOpmForAndroid
2.Opera Mini 4.2 for Android 共存版制作教程:http://wzyboy.im/post/635.html
3.给 Opera Mini 6 for Android 改服: http://blog.yufeng.net/index.php/2011/03/change-the-proxy-for-opera-mini-6-for-android/#more-237

来源页提供更多的资源,我只是修改其中难懂的、错误的地方,并复制过来,以便自己以后随时查看。
Related Posts Plugin for WordPress, Blogger...