不同品牌BREW手机间的应用移植

简介: 版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/6520457

            针对手机的硬件差异性,为了减少应用移植中的工作,可以在应用中采用自适应的方法。每个手机都有各自的类型标识——平台标识,如果应用自身根据平台标识以及相应硬件信息动态加载相应的资源,无疑可以实现某些应用的零工作量移植。获得手机平台标识和相关硬件信息的方式之一是使用ISHELL_GetDeviceInfo()和ISHELL_GetDeviceInfoEx()。

            ISHELL_GetDeviceInfo()可以在 AEE层中查询有关手机性能的信息,例如所支持的 RAM 总量、屏幕显示等其它项目。要获取 AEEDeviceInfo结构中的 dwNetLinger 和 dwSleepDefer值,在调用此函数之前,wStructSize 必须等于sizeof(AEEDeviceInfo)。

            ISHELL_GetDeviceInfoEx()用于获取有关设备的特定信息(AEEDeviceItem)。此函数使用 ID 指定所需的信息,返回时在缓冲区中包含对应的信息。这些ID所表示的含义如表15-2所示。

ID的名称
 含义说明
 
AEE_DEVICEITEM_CHIP_ID
 标识芯片组 ID 的字符串
 
AEE_DEVICEITEM_MOBILE_ID
 标识手持设备的移动 ID 的一个 ASCII 字符串
 
AEE_DEVICEITEM_AMR_VOCODER_SUPPORT
 是否支持 AMR (Adaptive Multi-Rate) 声码器
 
AEE_DEVICEITEM_EVRC_VOCODER_SUPPORT
 是否支持 EVRC(增强型变速率编码)声码器
 
AEE_DEVICEITEM_IS96_VOCODER_SUPPORT
 否支持 QCELP-IS96(8K)(Qualcomm 码激励线性预测编码)声码器
 
AEE_DEVICEITEM_IS96A_VOCODER_SUPPORT
 否支持 QCELP-IS96A(8K)(Qualcomm 码激励线性预测编码)声码器
 
AEE_DEVICEITEM_IS733_VOCODER_SUPPORT
 是否支持 QCELP-IS733(Qualcomm 码激励线性预测编码)声码器
 
AEE_DEVICEITEM_SMV_VOCODER_SUPPORT
 是否支持可选择模式的声码器
 
AEE_DEVICEITEM_SYS_COLORS_DISP1 AEE_DEVICEITEM_SYS_COLORS_DISP2 AEE_DEVICEITEM_SYS_COLORS_DISP3 AEE_DEVICEITEM_SYS_COLORS_DISP4
 返回与特定显示屏幕关联的系统颜色列表
 
AEE_DEVICEITEM_DISPINFO1 AEE_DEVICEITEM_DISPINFO2 AEE_DEVICEITEM_DISPINFO3 AEE_DEVICEITEM_DISPINFO4
 返回特定显示屏幕的相关信息
 
AEE_DEVICEITEM_CARRIER_ID
 标识手持设备的运营商 ID 的一个 uint32 值
 
AEE_DEVICEITEM_SIDHASH
 返回手持设备的支付帐户的一个散列。 可用于确定是否已更换了支付帐户,例如在调换了 RUIM 卡时。 请注意,不会返回具体的帐号,而只是返回一个帐户字符串的散列。
 
AEE_DEVICESTATE_KEYS_PRESSED
 返回处于按下状态的按键的值
 
AEE_DEVICESTATE_FLIP_OPEN
 在设备翻盖处于打开状态时返回 TRUE,否则返回 FALSE
 
AEE_DEVICESTATE_HEADPHONE_ON
 如果设备耳机是打开的,返回 TRUE,否则返回 FALSE
 
AEE_DEVICESTATE_KEYGUARD_ON
 如果设备的键盘是打开,将返回 TRUE,否则返回 FALSE
 
AEE_DEVICESTATE_SPEAKER_ON
 如果设备的扬声器为打开则返回 TRUE,否则返回 FALSE
 
AEE_DEVICEITEM_USER
 OEM 定义项目的起始点
 

表 15-2:可以用ISHELL_GetDeviceInfoEx()获取的有关设备的特定信息

根据AEEDeviceInfo和AEEDeviceItem中的信息,应用可以做到动态加载资源文件。当然这些资源信息也可以保存在服务器上,应用程序通过网络通信的方式获得这些资源数据,从而完成一个应用在不同手机上的适配。

如果某些手机不支持某些接口,应用程序可以通过判断该接口是否创建成功获得该信息。例如在内存没有问题的情况下,创建IPosDet接口失败,很可能是由于该手机不支持定位功能造成的。这时,应用程序就应该不提供定位功能,从而成为只具备浏览查询功能的一个LBS应用。

如果是两台手机对同一接口的功能存在差异(一般出现在IRingerMgr或者IAddrBook),这时需要应用程序多做一些工作。例如采用一个配置文件来定义地址簿或者铃声目录中的域,应用程序在启动时根据手机信息来读取配置文件,这样就能够进一步弥补手机间的差异进而很好的实现移植了。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wireless_com/archive/2010/11/02/5981424.aspx

目录
相关文章
|
6月前
|
前端开发 搜索推荐 JavaScript
如何通过DIY.JS快速构建出一个DIY手机壳、T恤的应用?
DIY.JS 是一款基于原生 Canvas 的业务级图形库,专注于商品定制的图形交互功能,帮助开发者轻松实现个性化设计。适用于 T 恤、手机壳等多种商品场景。它自带丰富功能,无需从零构建,快速集成到项目中。通过创建舞台、添加模型、定义 DIY 区域和添加素材四个步骤即可完成基础用法。支持在线演示体验,文档详细,易上手。
221 57
|
8月前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
5753 80
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
9月前
|
人工智能 算法 前端开发
OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
OmAgent 是 Om AI 与浙江大学联合开源的多模态语言代理框架,支持多设备连接、高效模型集成,助力开发者快速构建复杂的多模态代理应用。
698 72
OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
|
9月前
|
XML 人工智能 文字识别
Mobile-Agent:通过视觉感知实现自动化手机操作,支持多应用跨平台
Mobile-Agent 是一款基于多模态大语言模型的智能代理,能够通过视觉感知自主完成复杂的移动设备操作任务,支持跨应用操作和纯视觉解决方案。
3102 10
Mobile-Agent:通过视觉感知实现自动化手机操作,支持多应用跨平台
|
11月前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
870 1
|
12月前
|
Web App开发 缓存 前端开发
拿下奇怪的前端报错(六):多摄手机webrtc拉取视频流会导致应用崩溃,从而无法进行人像扫描
本文介绍了一种解决手机摄像头切换导致应用崩溃的问题的方法。针对不支持facingMode配置的四摄手机,通过缓存和序号切换的方式,确保应用在特定设备上不会频繁崩溃,提升用户体验。
337 1
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
396 12
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的品牌手机销售信息系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的品牌手机销售信息系统附带文章和源代码部署视频讲解等
117 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的品牌手机销售信息系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的品牌手机销售信息系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
8821 2

热门文章

最新文章

下一篇
oss教程