怎样快速移植安卓应用到BlackBerry 10

liuyaping1115 2012-12-13 05:57:49
加精
如果你已经听说过黑莓支持安卓转制了,那恭喜你,这周末(北京时间12月15日)100美金一个应用的活动也支持安卓的转制应用(网络应用移植活动详情)。移植安卓应用到黑莓的平台上除了可以扩大应用本身的影响,应用跨平台和增加应用的下载量之外,现在又多了个理由,那就是每上传一个应用就可以获取100美金的奖励。如果你没有听说过黑莓的Android Runtime,那也没关系,希望读完这篇文章你们可以很快的移植好安卓应用了

一.Android Runtime的介绍

黑莓的Android Runtime是基于安卓版本2.3.3 API 10(Gingerbread)而设计研发的。现支持黑莓PlayBook和10的机型,支持电话,邮件,日历和联系人等黑莓原生态应用。支持的功能有
1. GPU硬件加速器 - UI运行效率高
2. 视频/图片播放
3. 多触摸
4. 陀螺仪,指南针等Sensor
5. 网络
6. BlackBerry 10的键盘
7. 应用启动/最小化/提醒
8. /sdcard/->/accounts/1000/shared/misc/android/
9. 可启动黑莓系统自带的电话,邮件,前后摄像头,图片,视频,设置等
10.可打开.pdf,.doc,.xls,.ppt等文件格式
11.应用内付费
12.黑莓push服务

Android Runtime也不是对所有的硬件和API都支持的。硬件方面类似于蓝牙是不支持的。API软件方面除了只支持到2.3.3之外,对native的.so和第三方的API,类似于google地图API,是不支持的。那遇到应用内需要地图的地方该怎么办呢?需采用WebView的方式

二. 移植基础

申请黑莓的signing key,一般2-3个小时就会返回。具体步骤
这里

移植共有三种工具

1. 网页移植工具(Online Conversion Tool) - 最快捷的移植方式,不需要触碰源代码


第一行选择.apk所在的位置;第二行是本地android sdk的位置。这意味着本地是要下载android sdk的。不要误以为这就是个纯网页的形式。

如果没有问题,就可以点击repackage和签名就可以了。但大多数的情况是会有问题的。


警告会分5个等级,从1(轻微)到5(严重),应用如果只得到2以下的警报就可以正常移植了。2或2以上的警报被认为是不兼容不可移植的。但大多数情况下,即使有2或2以上的警告应用运行问题也不大。但网页去不再允许进行下一步了。

2. cmd工具

这种做法的好处在于不会受到警告的限制,即使有5的警告也可以顺利的打包签名在模拟器/真机上测试。主要共有三个步骤。我写了三个.bat的文件,大家可以借鉴

2.1. 环境设置

在环境变量里添加一个变量ANROID_HOME,将android sdk的路径设置上去,我的是“C:\Program Files(86)\Android\android-sdk\”,千万不要忘了两个“”。
添加 ANDRIOD_GENERATED,选择一个路径,生成的.bar文件都会放到这个文件夹里
下载工具 Command-line Tools

2.2 验证

创建一个android_verifier.bat文件,将下面的code考过去
@ECHO OFF
REM This is auto android repackaging tool
SET PATH=%PATH%;C:\Program Files (x86)\Research In Motion\CommandLineTools_1.3\blackberry.tools.SDK\bin;%ANDROID_HOME%;%ANDROID_GENERATED%
apk2barVerifier %1 %ANDROID_HOME%
保存文件,在cmd下运行时只需要提供.apk文件的绝对路径就好了。运行后会告诉你Manifest里有多少权限,有多少个警告,警告都是多少级的等等。

2.3. 打包

创建android_repackaging.bat文件,将下面的code考进去
@ECHO OFF
REM This is auto android repackaging tool
SET PATH=%PATH%;C:\Program Files (x86)\Research In Motion\CommandLineTools_1.3\blackberry.tools.SDK\bin;%ANDROID_HOME%;%ANDROID_GENERATED%
apk2bar %1 %ANDROID_HOME% -t %ANDROID_GENERATED%
保存文件,运行后在%ANDROID_GENERATED%路径下生成.bar文件。这是未经过签名的bar文件

2.4.下载模拟器

选择BB10的模拟器,还需下载VMWare 4.0(推荐)。加载完成后打开模拟器。
生成debug token
上传至模拟器上
将未签名的.bar文件load到模拟器上

2.5. 签名应用

创建android_sign.bat文件,将下面的code考进去
@ECHO OFF
REM This is auto android signing tool
SET PATH=%PATH%;C:\Program Files (x86)\Research In Motion\CommandLineTools_1.3\blackberry.tools.SDK\bin;%ANDROID_GENERATED%
batchbar-signer %1 "C:\Users\mzhou\Documents\signing tool\author.p12" <申请签名时你设置的密码> <注册签名时设置的密码> bbjamer %ANDROID_GENERATED%
一般我两个密码都是一个,这样不会记混。万一记错问题也太多了。有很多开发者有这个问题。所以切记自己的密码。

3.Eclipse Plugin

这一项应当是最显而易见的。对于许多安卓应用来讲,这是最普遍的做法。
3.1 下载ADT Plugin for Eclipse
3.2 在Eclipse里下载黑莓
plugin for ADT
编译时选择黑莓编译器来编译,就像选择不同的安卓的版本的编译器编译是一个道理。
3.3. 启动模拟器检查问题,道理和cmd里的部分原理是一样的,我就不做详细解释了。

三.界面改动建议
应用图标改为114x114
测试满屏,有些应用只占屏幕1/4。全触摸屏是1280x768,键盘机是720x720的。
去掉应用升级功能,因为升级一般都是去了安卓商店。升级只需要将更新的版本上传到BlackBerry World,系统会提醒应用升级的。所以不必担心
关于和版本号 - 替换安卓的字样,版本号希望从1.0开始

最好祝大家移植愉快,移植成功了或挣到钱了都和兄弟@bbjamer说一声.谢谢

...全文
3811 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandywin 2013-01-26
  • 打赏
  • 举报
回复
谢谢分享!
winjave 2012-12-21
  • 打赏
  • 举报
回复
学习下,虽然对黑莓平台无爱...还是了解下的好
007china 2012-12-20
  • 打赏
  • 举报
回复
这东东确实有用
hao12319870818 2012-12-19
  • 打赏
  • 举报
回复
谢谢楼主!
lsdm1026 2012-12-19
  • 打赏
  • 举报
回复
不错么,非常好,帮助很大。
l4kangaxx 2012-12-19
  • 打赏
  • 举报
回复
oho,不错么,非常针对目前的需求啊
LAONINGA098 2012-12-17
  • 打赏
  • 举报
回复
学习了,谢谢分享
a646458580 2012-12-17
  • 打赏
  • 举报
回复
学习了,谢谢楼主
next163 2012-12-16
  • 打赏
  • 举报
回复
想问一下那个.p12文件从哪儿来的,我注册了只收到一个csj文件
DHBInsideJob 2012-12-16
  • 打赏
  • 举报
回复
支持分享....
XuMengXian 2012-12-16
  • 打赏
  • 举报
回复
顶你 写的很好 学习了
  • 打赏
  • 举报
回复
小花小花 2012-12-16
  • 打赏
  • 举报
回复
wolaiye11111 2012-12-16
  • 打赏
  • 举报
回复
mbugaifc 2012-12-15
  • 打赏
  • 举报
回复
pengqian1984 2012-12-14
  • 打赏
  • 举报
回复
我是黑莓忠诚用户,谢谢各位辛勤劳动的同志们
abxd1234asdf 2012-12-14
  • 打赏
  • 举报
回复
hao
tnhutien 2012-12-14
  • 打赏
  • 举报
回复
学习了,谢谢分享
zhan750520 2012-12-14
  • 打赏
  • 举报
回复
学习。学习。
nettman 2012-12-14
  • 打赏
  • 举报
回复
感谢楼主分享
加载更多回复(16)
手机是现代人生活必不可少的工具,其发展经历了第一代手机、第二代手机和第三代手机三个阶段。手机按照操作系统分可分为智能手机和非智能手机两类,智能手机常用的操作系统有Android、塞班、Windows Mobile、MAC、黑莓和Palm等。近几年来由于Android的开放和开发快捷等特点,越来越多的智能手机使用Android作为操作系统,目前Android手机的市场份额已经跃居智能手机市场的第一位。考虑到Android广阔的市场前景,本文选择Android作为课题的研究对象。    本文首先对手机的发展阶段、常用智能手机操作系统、Android目前国内外研究状况及本文的组织结构进行了简单的介绍。然后介绍了Android的四个特点,详细分析了Android的系统架构。    其次,介绍了Devkit8000开发板的硬件资源,采用了先将Linux内核移植到Devkit8000开发板上,然后制作Android内核补丁打到Linux内核上的方式,把Android系统移植到了Devkit8000开发板上,具体工作包括制作交叉编译工具链、制作引导程序、制作可以在开发板上运行的Linux内核、生成Android内核补丁、制作Android文件系统,然后给出移植成果。    第三,采用Eclipse+ADT的方式在Ubuntu系统下构建了Android应用程序开发环境,在详细研究Android应用程序开发的核心组件和应用程序生命周期的基础上,实现了音乐播放器和对对碰游戏两个Android应用程序,并在Android模拟器、Android手机上和移植了Android系统的Devkit8000开发板上进行验证。    最后,对本文所做的工作进行了总结,并对后续工作进行了展望。
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Android基础教程》的源代码 对应的书籍资料见: Android基础教程(你的第一本Android书) 基本信息 原书名: Hello, Android: Introducing Google's Mobile Development Platform 原出版社: Pragmatic Bookshelf 作者: (美)Ed Burnette 译者: 张波 高朝勤 杨越 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115215369 上架时间:2009-11-6 出版日期:2009 年11月 开本:16开 页码:196 版次:1-1 编辑推荐   你的第一本Android书.    Pragmatic系列图书品质保证..    从这里,开始一个新的梦想... 内容简介   android是谷歌公司开发的全新开源手机平台。本书是一部关于 android开发的基础教程,采用由浅入深、循序渐进的方式讨论android。书中还结合数独游戏等实例更加形象生动地讲解了 android开发的基本流程,且每章最后都有一个 “快速阅读指南 ”,更加方便了读者的阅读。.    本书内容完整丰富,具有较强的通用性,读者都能通过本书快速学习 android开发,提高相关技能。... 作译者 作者: Ed Burnette Ed Burnette 资深软件技术专家,拥有20多年软件开发经验。他是SAS高级计算机实验室的联合创始人和高级研究员,也是www.planetandroid.com网站的创办人和ZDNet的专栏作家。除本书外,他还出版了Google Web Toolkit:Taking the Pain out of Ajax和Eclipse IDE Pocket Guide等著作。 目录 封面 -13 封底 202 扉页 -10 版权 -9 版权声明 -8 对本书的赞誉 -7 前言 -6 目录 -2 第一部分 Android简介 1 第1章 快速入门 3 1.1 安装工具 3 1.1.1 Java 5.0+ 3 1.1.2 Eclipse 4 1.1.3 Android 4 1.1.4 Eclipse插件 5 1.2 创建第一个程序 7 1.3 在模拟器上运行程序 8 1.4 在手机上运行程序 9 1.5 快速阅读指南 9 第2章 基本概念 11 2.1 Android的系统架构 11 2.1.1 Linux内核 11 2.1.2 本机库 12 2.1.3 Android运行时 13 2.1.4 应用程序框架 14 2.1.5 应用程序 15 2.2 它还活着 15 2.2.1 进程不等于应用程序 16 2.2.2 应用程序生命周期 17 2.3 构建块 19 2.3.1 活动 19 2.3.2 意图 19 2.3.3 服务 19 2.3.4 内容提供者 19 2.4 使用资源 20 2.5 安全性 20 2.6 快速阅读指南 21 第二部分 Android基础知识 23 第3章 设计用户界面 25 3.1 数独游戏简介 25 3.2 声明性设计 26 3.3 创建启动界面 27 3.4 使用替代资源 34 3.5 实现About对话框 37 3.6 应用主题 41 3.7 添加菜单 43 3.8 添加设置 45 3.9 开始新游戏 47 3.10 利用日志消息调试程序 48 3.11 利用调试器调试程序 50 3.12 退出游戏 50 3.13 快速阅读指南 50 第4章 绘制2D图形 53 4.1 Android图形基础 53 4.1.1 Color类 53 4.1.2 Paint类 54 4.1.3 Canvas类 55 4.1.4 Path类 55 4.1.5 Drawable类 56 4.2 在Sudoku程序中添加图形 58 4.2.1 开始游戏 58 4.2.2 定义Game类 58 4.2.3 定义PuzzleView类 60 4.2.4 绘制游戏盘面 61 4.2.5 绘制数字 63 4.3 处理输入 65 4.3.1 定义和更新选定区域 66 4.3.2 输入数字 68 4.3.3 增加提示 69 4.3.4 抖动屏幕 70 4.4 其他问题 71 4.4.1 创建软键盘 71 4.4.2 实现游戏逻辑 76 4.4.3 其他功能 78 4.5 更多改进 80 4.6 快速阅读指南 81 第5章 多媒体 83 5.1 播放音频 83 5.2 播放视频 88 5.3 为数独游戏配上音乐 92 5.4 快速阅读指南 94 第6章 存储本地数据 95 6.1 为数独游戏添加选项 95 6.2 继续玩前一个游戏 97 6.3 记住当前位置 99 6.4 访问内部文件系统 100 6.5 访问SD卡 101 6.6 快速阅读指南 103 第三部分 高级主题 105 第7章 互联的世界 107 7.1 通过意图实现浏览 108 7.2 利用视图打开网页 111 7.3 JavaScript与Java通信 115 7.4 使用Web服务 121 7.5 快速阅读指南 131 第8章 定位与环境感知 133 8.1 位置,位置,位置 133 8.1.1 我在哪里 135 8.1.2 更新位置 137 8.1.3 模拟说明 138 8.2 充分利用传感器 139 8.2.1 了解传感器 139 8.2.2 解析传感器的读数 140 8.2.3 模拟说明 140 8.3 地图功能 141 8.3.1 嵌入MapView 142 8.3.2 准备就绪 145 8.3.3 模拟说明 146 8.4 快速阅读指南 147 第9章 SQL实战 149 9.1 SQLite简介 149 9.2 SQL基础 150 9.2.1 DDL语句 151 9.2.2 修改语句 151 9.2.3 查询语句 151 9.3 你好,数据库 152 9.3.1 使用SQliteOpenHelper 153 9.3.2 定义主程序 155 9.3.3 添加一行 156 9.3.4 运行一个查询 157 9.3.5 显示查询结果 158 9.4 数据绑定 159 9.5 使用ContentProvider 162 9.5.1 更改主程序 164 9.5.2 添加一行 164 9.5.3 运行一个查询 165 9.6 实现ContentProvider 165 9.7 快速阅读指南 166 第10章 利用OpenGL实现3D图形 169 10.1 理解3D图形 169 10.2 OpenGL简介 170 10.3 构建一个OpenGL程序 171 10.4 管理线程 173 10.5 构建一个模型 178 10.6 光线、相机…… 181 10.7 动作 183 10.8 应用纹理 184 10.9 透明效果 187 10.10 快速阅读指南 189 第四部分 附录 191 附录A Java与Android语言及其API 193 附录B 参考书目 197 译者序   2007年11月5日,谷歌公司推出了自己的开源手机平台,正式命名为Android,该平台由操作系统、中间件、用户界面和应用软件组成。谷歌公司对外宣称这是首个为移动终端打造的真正开放和完整的移动平台。.   作为基于Linux的开源手机平台,Android包括一部手机工作所需的全部软件——操作系统、用户界面和应用程序,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌公司与开放手机联盟合作开发了Android,这个联盟囊括了中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家无线应用方面的领头羊。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,谷歌公司希望能建立一个标准化、开放式的移动电话软件平台,这样必将推进更好、更快的创新,为移动用户提供不可思议的丰富应用和服务。   Android作为谷歌公司企业发展战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。作为一款多方倾力打造的平台,Android具有许多优点:实际应用程序运行速度快;开发限制少,平台开放;程序多任务性能优秀,切换迅速等。当然,它也具有系统细节不完善、电源管理不好、软件的界面不太好、支持的软件厂商还比较少等缺点。但是凭借谷歌公司的强大实力以及与开放手机联盟的通力合作,我们相信Android会越来越好,一定会成为主流的手机操作系统平台。..   本书分为3个部分共10章,最后还有两个附录。第1~3章介绍Android的基础知识和基本概念;第4~6章介绍2D图形、多媒体和存储本地数据;第7~10章介绍高级主题,包括联网、定位与环境感知、数据库和3D图形;附录介绍了Android与Java之间的差别以及参考书目。   本书由张波、高朝勤、杨越和徐红霞等翻译,在翻译过程中得到了人民邮电出版社图灵公司编辑的热心帮助,在此一并致谢。由于译者的知识水平有限,加之时间比较仓促,文中难免会出现一些疏漏,恳请广大读者给予批评指正。...    前言   Android是一款针对手机的全新开源软件工具包,它由Google和开放手机联盟(Open Handset Alliance)共同创建。Android有望在数年内遍布于数百万部手机和其他移动设备中,从而成为应用程序开发人员的主要平台。无论你是业余爱好者还是专业程序员,无论你是自己玩玩还是为了盈利,都应该了解关于Android开发的更多信息。本书将帮助你迅速入门。.   Android的特别之处   如今,市场上已经有了许多移动平台,包括Symbian、iPhone、Windows Mobile、BlackBerry、Java Mobile Edition和Linux Mobile(LiMo)等。当我向别人说起Android时,他们的第一个疑问通常是:我们为什么还需要另一个移动标准?它有何惊人之处?   虽然Android的一些特性并非首创,但它是第一个将以下特性结合在一起的环境。   基于Linux,真正开放、开源、免费的开发平台。手持设备制造商钟情于它的原因,是它们可以使用和定制该平台而不需要支付版税。开发人员喜欢它的原因,是他们知道这个平台是独立的,不受任何一家厂商的限制。   受Internet mashup思想启发的基于组件的架构。一个应用程序的组件可以在另一个应用程序中用作其他用途。你甚至可以将Android内置的组件替换为自己改进后的版本。这将在移动领域掀起新一轮的创造风潮。   众多开箱即用的内置服务。基于位置的服务使用GPS或手机发射塔三角测量法,让你可根据所处位置来定制用户体验。凭借功能全面的SQL数据库,利用强大的本地存储,可以完成偶尔连接的计算和同步操作。浏览器和地图视图可以直接嵌入在应用程序中。所有这些内置服务有助于提高功能的标准,同时降低开发成本。   应用程序生命周期的自动化管理。多层安全措施将程序彼此分离,这将使智能电话的系统稳定性达到前所未有的水平。最终用户不再需要担心哪些应用程序是活动的,也不必在运行新程序前先关闭原有的一些程序。Android针对低能耗、低内存的设备进行了优化,这种根本性的优化是之前的平台从未尝试过的。   高质量的图形和声音。将类似于Flash的光滑、无锯齿的2D矢量图形和动画与3D加速的OpenGL图形相结合,可实现各种新式的游戏和商业应用程序。Android内置了最常用的行业标准音频和视频格式的编解码器,这些格式包括H.264 (AVC)、MP3和AAC。   当前及未来各类硬件间的可移植性。所有程序都是用Java语言编写的,并且将由Android的Dalvik虚拟机执行,所以代码在ARM、x86和其他架构之间是可以移植的。Android提供了对各种输入方法的支持,比如说键盘、触摸屏和轨迹球。用户界面可以针对任何屏幕分辨率和屏幕方向进行定制。   Android为用户与移动应用程序交互提供了全新的方式,同时也提供了实现这些交互的底层技术保障。而Android最令人心动之处,莫过于你可以为它编写软件,本书恰好可以为你提供这方面的帮助。   本书读者对象   阅读本书唯一的前提条件,是具备对Java编程或类似面向对象语言(比如说C#)的基本理解,不需要拥有为移动设备开发软件的经验。实际上,如果你确实有这方面的经验,反倒应该忘记它们。Android是如此与众不同,因此最好不要带着成见来学习它。   本书内容   本书分为三部分。大致来说,本书采用由浅入深、循序渐进的方式讨论Android。   有些章使用了一个公共的示例:Android数独游戏。通过逐渐在游戏中添加特性,你将学习Android编程的许多方面,包括用户界面、多媒体和Android生命周期。..   第一部分中将首先介绍Android,内容涉及如何安装Android模拟器,如何使用IDE(Intergrated Development Environment,集成开发环境)编写第一个程序。然后,我们将介绍一些基本的概念,比如Android中的生命周期。Android中的编程方式可能与你之前采用的方式不同,因此一定要在继续学习之前掌握这些概念。   第二部分讨论Android的用户界面、二维图形、多媒体组件以及简单的数据访问。这些特性在大多数程序中都用得到。   第三部分深入探讨Android平台。这一部分介绍外部通信、基于位置的服务、内置SQLite数据库和三维图形。   本书最后提供了一个附录,其中列出了Android与Java SE(Java Standard Edition,Java标准版)之间的不同之处。 .  在线资源   本书网站http://pragprog.com/titles/eband提供了以下资源。   本书使用的所有示例程序的完整源代码;   勘误页面,列出了本书这一版中的所有错误(希望它保持空白);   论坛,在此你可以直接与作者及其他Android开发人员交流(希望论坛用户越来越多)。   读者可以在自己的应用程序中随意使用源代码。   关于“快速阅读指南”   虽然大多数作者都希望读者阅读他们书中的每一句话,但我知道你可能不想这样做。你只希望阅读能够解决手头问题的部分,而在需要解决其他问题时,再回过头来阅读另外一些内容。因此,我在书中特意注明在哪里可以找到你所关心的内容。   本书每章最后都有一个“快速阅读指南”,告诉无序阅读本书的读者接下来应该阅读哪些内容。读者还可以在其中发现一些指向相关资源(如图书和在线文档)的链接,可以了解相关主题的更多信息。   好吧,你现在想了解点什么?第1章就将指导你完成第一个Android程序。第2章回过头来介绍Android的基本概念和原理。第3章探讨用户界面,也就是大多数Android程序中最重要的部分。   致谢   我要感谢为本书成功出版做出贡献的许多人,包括审稿人Anthony Stevens、Gabor Paller、Fred Burke、Dianne Hackborn和Laurent Pontier,他们详尽审阅了本书;感谢编辑Susannah Pfalzer在我几乎要推迟交稿时提供的好建议并为我鼓足勇气。特别要感谢我的家人,感谢他们在我写作本书期间表现出来的极大耐心。...    媒体评论   “跟本书的2005版一样,我认为Louis的这本书写得非常好,信息量极其丰富而且实践性强。阅读过程中,你会觉得是在跟作者讨论问题。我喜欢这本书,还因为它有自己的观点,而非从在线图书中照搬过来……”.   —— Amazon读者评论   这本书极其出色,不仅文笔流畅、浅显易懂,内容也妙趣横生。本书既恰到好处地讲解了Android独有的特性,同时也突出了高质量编程的原则。   ——Anthony Stevens   PocketJourney创始人兼CTO,Google Android竞赛前20强   Ed Burnette的这本书虽然篇幅不长,但内容丰富,保持了Pragmatic(实用)系列图书的一贯风格。仅凭2D和3D图形方面的内容,本书就非常值得所有Android开发人员拥有。   ——Mark Murphy..   CommonsWare创始人   我还记得第一次使用Android时的情景:当时感觉它就像是一座超大型迷宫。有了这本书,入门就不会那么痛苦了。我深信,通过阅读本书,上手开发Android应用程序将是一件非常轻松愉快的事。   ——Gabor Paller   OnRelay公司高级软件架构师...

1,146

社区成员

发帖
与我相关
我的任务
社区描述
探讨BlackBerry智能手机开发相关的技术、软件、产品等话题。
社区管理员
  • BlackBerry
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧