zoukankan      html  css  js  c++  java
  • Android应用移植到OPhone平台指南

    1.1    概述

    OPhone平台基于Linux和开放手机联盟(OHA)的Android系统,经过中国移动的创新研发,设计出拥有新颖独特的用户操作界面,增强了浏览器能力和WAP兼容性,优化了多媒体领域的OpenCORE、浏览器领域的WebKit等业内众多知名引擎,增加了包括游戏、Widget、Java ME等在内的先进平台中间件。
     
    本文重点介绍OPhone和Android应用开发的差异,为OPhone和Android开发者提供指导。
     
    1.2    兼容性
     
    目前,OPhone共发布了1.0和1.5两个平台版本,其中OPhone 1.0与Android 1.0兼容,OPhone 1.5与Android 1.5兼容。由于Android 1.5与Android 1.0不兼容,因此OPhone 1.5与OPhone 1.0不兼容。Android 1.0 API和Android 1.5 API变化比较大,是导致OPhone 1.0和OPhone 1.5之间差异的主要原因。
     
    Android CTS (Compatibility Test Suite)是Google提供的Android兼容性测试工具。CTS共有2万多个测试用例,OPhone取得了很好的CTS测试结果:CTS测试通过率:99.96%。Android Market排名前270的应用(2009年10月)有超过80%的可以直接在OPhone平台上运行。部分应用移植失败的原因主要有:
    • OPhone不支持Google Maps库
    • 硬件方面的差异:显示分辨率、传感器、和硬件相关的特殊库
    • Tabview的UI显示
    1.3   OPhone API
     
    OPhone SDK在兼容Android API的基础上还提供了OPhone API,来扩展OPhone平台的能力。如果应用程序使用了OPhone API,则此程序无法移植到Android系统。关于OPhone API的使用,请参考OPhone开发者社区的文档(http://www.ophonesdn.com/documentation/)。
     
    OPhone SDK 1.0提供了如下OPhone API:
    • Home Screen API
    • Local Search API
    • Mail API
    • OPhone SDK 1.5提供了如下OPhone API:
    • AGPS API
    • Video Telephony API
    • Home Screen API
    • Local Search API
    1.4   应用程序模型
     
    OPhone平台除了支持APK应用程序开发之外,还支持Mobile Widget和Java ME应用程序开发。
    Mobile Widget 应用是采用HTML、JavaScript和CSS等网络技术开发的应用程序。在OPhone中,Mobile Widget应用遵循的是联合创新实验室(Joint Innovation Lab, JIL) 的JIL Widget 规范。详细信息请参考如下网址:
     
    OPhone平台支持Java ME应用程序(MIDlet)的开发,目前OPhone 1.5上实现了中国移动Java 4.1规范。
     
    1.5 应用程序开发的差异
    1.5.1   网络数据连接的方法
     
    OPhoneAndroid建立网络数据连接的方法有所不同。OPhone 平台实现了多个应用程序对分组数据复用的功能,不同的应用可以根据自身需要,打开不同的网络连接,通过这种方式我们可以在不同的OPhone应用中同时进行诸如浏览网页、接受彩信、发送邮件这样的网络任务。
    关于如何在OPhone中实现网络连接的管理,详情请见:
     
    1.5.2      不支持Google Maps
     
    OPhone目前不支持Google Maps API,因此使用Google Maps API开发的Android应用程序将无法移植到OPhone平台。
     
    1.5.3      多分辨率支持
     
    由于市面上的大部分Android终端设备都是HVGA(480x320),因此许多应用程序在开发时并未考虑多分辨率的问题。这就导致部分Android Market上的应用程序安装在非HVGA(480x320)分辨率的OPhone终端,出现分辨率不匹配的问题。
     

    目前OPhone终端除了支持HVGA(480x320)分辨率之外,还支持nHD(640x360)、WVGA(800x480)、FWVGA(854x480)等。因此,在OPhone平台上开发应用程序,应当考虑多分辨率支持,并且在模拟器上应用测试时使用分辨率设置。

     
     
     
     
     
    关于如何在OPhone中实现多分辨支持,详情请见:
     
    1.5.4      传感器支持
     
    不同的OPhone终端所支持的传感器不同,因此一些需要特殊传感器支持的游戏或应用无法在某些OPhone终端上正常运行。
     
     
     
    目前Android 平台支持的传感器有:
    android. hardware.Sensor
     
            TYPE_ACCELEROMETER
            TYPE_GYROSCOPE
            TYPE_LIGHT
            TYPE_MAGNETIC_FIELD
            TYPE_ORIENTATION
            TYPE_PRESSURE
            TYPE_PROXIMITY
            TYPE_TEMPERATURE
     
    目前的建议是,在使用之前先检测当前OPhone终端支持哪些传感器,相关的测试代码如下:
     
    1. SensorManager sensorMgr = (SensorManager)getSystemService(Context.SENSOR_SERVICE);  
    2. List list = sensorMgr.getSensorList(Sensor.TYPE_ALL);  
    3. for (int i = 0; i < list.size(); i++) {  
    4. Sensor sensor = (Sensor) list.get(i);  
    5. result += "/t" + sensor.getName() + "/n";  
    6. }  
     
    1.5.5      TabviewUI显示
    部分Android Market上使用了Tabview的应用安装在OPhone终端上会出现显示错误。这是由于OPhone平台只允许在一屏有三个Tab,而对此的实现导致了该问题的发生。
     
     
     
    但只要严格按照以下例子程序就可以避免该问题的出现:
     
    1. TabHost tabHost = getTabHost();  
    2. LayoutInflater.from(this).inflate(R.layout.tabs1, tabHost.getTabContentView(), true);  
    3. tabHost.addTab(tabHost.newTabSpec("tab1")  
    4.                 .setIndicator("tab1")  
    5.                 .setContent(R.id.view1));  
    6. tabHost.addTab(tabHost.newTabSpec("tab3")  
    7.                 .setIndicator("tab2")  
    8.                 .setContent(R.id.view2));  
    9. tabHost.addTab(tabHost.newTabSpec("tab3")  
    10.                 .setIndicator("tab3")  
    11.                 .setContent(R.id.view3));  
     
     
    1.5.6      OPhone特殊UI风格
     
    由于部分的OPhone终端设备没有Home按键,因此对于应用开发者而言,不建议隐藏Status Bar和Title Bar。
    但由于某些应用,特别是游戏,需要全屏显示,可以参考一下代码实现:
     
    1. //Hide title bar  
    2. requestWindowFeature(Window.FEATURE_NO_TITLE);    
    3. //Hide status bar  
    4. getWindow().setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_ FULLSCREEN);  
     
    1.5.7   应用签名
     
    OPhone平台和Android平台在应用签名方面没有区别,但需要注意的是,调试用签名和发布用签名所使用的证书是不同的。如果应用程序没有被签名,在安装的时候就会出现以下错误:
    Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
     
    如何对应用程序签名,详情可以参考一下文档:

  • 相关阅读:
    app已损坏,打不开。你应该将它移到废纸篓。
    Mac/win eclipse genymotion 插件下载地址
    过大年
    error: L6235E: More than one section matches selector
    android socket 线程连接openwrt与arduino单片机串口双向通信
    PCB对应封装元件名称
    网页代码总结
    sql一个表中的数据插入到另外一个表中
    树莓派更换镜像源
    SQL 中的 AND OR
  • 原文地址:https://www.cnblogs.com/xyzlmn/p/3168240.html
Copyright © 2011-2022 走看看