转换步骤概述
一 准备工作... 2
1.1下载安装Java JDK. 2
1.2 下载安装Android SDK. 2
1.3 下载Android/BlackBerry命令行转换工具包... 2
1.4 到黑莓官网申请应用签名Key. 2
1.5 将你的BlackBerry 10手机设置为开发模式... 3
1.6记下手机的IP地址... 3
二 应用转换... 4
2.1 apk 转 bar. 4
2.2 bar文件签名... 4
2.3 安装bar文件到BlackBerry 10手机上... 4
2.4根据需要调整应用,重复以上1-3的步骤打包测试... 4
2.4.1 调整BlackBerry不支持的Android API4
2.4.2 应用图标大小调整为114 x 114像素... 5
参考... 6
排错Trouble shooting. 7
建议下载JDK 1.7 Windows x86版本,例如 88.75 MB的jdk-7u17-windows-i586.exe 。
JDK下载地址
安装JDK。
设置系统PATH路径包含JAVA_HOME的bin目录;
或者在命令行下执行(每次打开DOS窗口都需要执行一次)
Set PATH="C:\ProgramFiles (x86)\Java\jdk1.7.0_17\bin";%PATH%
建议下载32 bit的ADTBundle,大概405MB。AndroidSDK下载地址
解压缩到C:\android\adt-bundle-windows-x86目录(比如),下面有SDK Manager程序和sdk目录。
运行SDKManager程序,选择下载Android SDK Tools组件(大概9MB)。
在BlackBerry网站下载Command-linetools for Android Apps,大概2.66MB。解压缩到C:\android\blackberry.tools.SDK目录(比如),下面有bin和lib目录。
Command-line tools 下载地址
到BlackBerry网站上申请签名Key,免费申请。申请的时候,选择For BlackBerryPlayBook OS and BlackBerry 10 and Higher,建议申请用英文填写相关信息,注意Company公司名一项在后面会用到。一般地,BlackBerry公司会在两个小时内用两封电子邮件将密钥文件发给你。
应用签名Key申请地址
收到两封邮件后,下载两个CSJ,放到Command-linetools的bin目录下面,比如C:\android\blackberry.tools.SDK\bin目录。
生成csk和p12文件
命令行1:blackberry-signer -csksetup -cskpass <你设置一个csk密码>
命令行2:blackberry-signer -register -csjpin <你申请csj时填写的pin> -cskpass <你设置的csk密码> <你申请到的csj文件名>
提示:对于Android应用转制,只需要导入一个RDK CSJ文件。但是还是建议两个csj文件都导入,那么要导入两次。
命令行3:blackberry-keytool -genkeypair -keystore <你希望生成的p12文件名> -storepass<你设置一个p12文件密码> -dname ”cn=公司名” -alias author
在BlackBerry手机上,设置->安全和隐私->开发模式,选择“使用开发模式”(注:首次在设备上操作可能会要求你设置密码)
如果USB线连接到PC机上,手机的IP地址是169.254.0.1
如果是手机连接WiFi,在BlackBerry手机上,设置->关于->网络,查看IPv4地址
PC上面可以PING通手机IP
在转换工具包中有个”bin”文件夹,下面的所有操作都在这个文件中操作,所以把你要操作的APK拷贝到这里。
2.1 apk 转 bar
命令行: apk2bar <你的apk名> <android SDK路径>
结果:提示Info: Barsigned,在当前目录下面多了个bar文件,未签名。
2.2 bar文件签名
命令行1:
blackberry-signer-cskpass <你设置的csk密码> -keystore<你生成的p12文件名> -storepass<你设置的p12文件密码> <你转的bar文件名> RDK
命令行2:
blackberry-signer -keystore <你生成的p12文件名> -storepass <你设置的p12文件密码> <你转的bar文件名> author
结果:bar文件更新,新加入了你的签名。
2.3 安装bar文件到BlackBerry 10手机上
命令行:
blackberry-deploy-installApp -password <你的设备密码> -device <设备IP地址> -package <你的bar文件>
结果:在BlackBerry手机屏幕上找到这个应用。
接下来点击运行,测试这个应用是否工作正常,比如屏幕大小尺寸,网络连接,功能是否正常等。
2.4根据需要调整应用,重复以上1-3的步骤打包测试
BlackBerry的Android应用支持大部分AndroidJava API,但是不支持某些特性和API,比如APK文件中打包的C语言本地代码,不支持蓝牙和NFC等硬件。
更多不支持的API参考这里:UnsupportedAPIs for BlackBerry 10
不支持的特性,比如APK中打包的第三方本地代码,以及不支持的蓝牙和NFC硬件API,我们或者用Java来实现,或者就只能割舍这部分功能了,这都需要开发人员调整程序代码,测试。
BlackBerry的屏幕分辨率很高,所以需要的应用图标也要大一些,建议是采用114x114像素的图标。修改图标后,修改版本号,重新打包APK,重新生成BAR文件和签名。
参考
本文参考了网友的安卓转制教程
BlackBerry官方的安卓转制指南
排错Trouble shooting
提示1:在应用签名的时候,没有任何提示,签名程序运行卡在那里,几分钟后提示如下Error:Server returned HTTP response code: 502 for URL:http://www.rim.net/Websigner/servlet/RDK-Waterloo。
这可能是出国网络暂时故障,或者是签名服务器暂时故障,稍等个把小时再去尝试。
提示2:一个密钥,对一个apk文件只能做一次签名。如果再次签名,将提示
Error: Code signing request failed becausethis version of the application or package has been previously signed. Pleaseincrement the version(s) and try signing again.
解决办法:Android开发工具中打开AndroidManifest.xml文件,找到versionCode标签,修改之,重新build一个APK文件。参考
提示3:如果需要使用多台机器用一个密钥进行签名,一个密钥可以被多人在多台机器上同时使用。
解决办法:参考签名密钥备份方法进行备份和迁移。
提示4:目前Android应用转制,貌似暂时不支持中文文件名,中文应用名称(转制应用安装后,标题乱码)。
解决办法1:Android开发工具中,修改应用名称为英文,升级版本,重新生成APK文件并转制。
解决办法2:直接编辑修改Android应用中的描述文件并签名。
提示5:安装应用到手机上,提示result::failure881 required signatures missing (AUTHOR)
解决办法:
一般是应用签名问题,需要重新签名;blackberry-signer-cskpass 签名的时候,去掉最后一个参数RDK,重新签名;在手机上安装debugtoken,然后尝试安装运行这个应用。
2013年4月9日更新