`

Brew FAQ-常见问答(5)

    博客分类:
  • C++
阅读更多
(1)如何获得启用 BREW 的电话?

    如果市场上有这种电话,则直接购买。 目前我们正在着手准备地区性电话试验室, 以便为开发者提供地点,供其测试和开发原型电话或适用于全世界各种市场的电话。 我们也在讨论是否有必要向开发者提供电话生产商的其它解决方案。
(2)如果我需要(再)扩容或配置 DNS,我 应将电话寄到什么地方?
    您可以通过提供全程跟踪的速递公司(如 Federal Express,而不通过美国邮政服务)将电话寄至以下地址:

QUALCOMM, Inc
Attn :QIS Phone Center (Bldg R - 212P)
5775 Morehouse Dr.
San Diego, CA 92121

同时,请提供以下信息:
返回地址和电话号码
电话问题/请求性质:再扩容、配置 DNS、电话错误等。
ESN 号
如果激活,使用哪个电话号码和运营商
电话的浏览器是否激活?

(3)如何生成测试签名文件?
    要生成测试签名文件,请使用从 BREW 网站上可以获得的 BREW TestSig Generator。 请采用以下格式输入电话的电子序列号 (ESN): 0xaabcccdd。在 Kyocera3035 上, ESN 可以通过卸下电池并查看电话后部的标签找到。 ESN 的前缀是“H:”。下面电话的 ESN 是 FEDA6548, 在 TestSig Generator 中必须输入0xFEDA6548。

在 Sharp Z-800 上,ESN 可以在 Main Menu(主菜单)-> Display(显示)-> Version(版本)中找到。
(4)ISHELL_GetLocation API 存在什么隐私问题?
    这由运营商处理此敏感数据的实施策略和用户的个人首选项决定。
(5)BREW 是否支持 Bluetooth?
    目前,BREW 不支持 Bluetooth,但我们正在做这方面的工作。
(6)BRW 是否支持电子邮件?
    目前 BREW API 在本地不支持因特网或其它电子邮件协议。
(7)BREW 是否在本地支持文本语音转换或语音文本转换?
    不,但第三方公司可以开发此功能并留出一个接口,以便其它应用程序使用此功能。

(8)如何能在多个模块间共享资源?
    默认情况下,动态加载的 BREW 模块的文件访问权限局限于应用程序目录及其子目录。 不过,可能会出现模块共享资源或其它类型文件的需求; 在这种情况下,BREW 提供一个共享目录, AEE_SHARED_DIR。实际共享目录路径对于各个设备各有不同。 在 BREW Emulator 上运行时,共享目录可以在 名为“Shared(共享)”的示例目录中找到。

    任何模块都可以从共享目录中读取文件。但是,要在共享目录中创建 或写入文件,必须使用 MIF 编辑器修改应用程序的权限级别, 以便提供共享目录的“写”权限 (请参阅 BREW SDK 随附的《BREW MIF 编辑器指南》)。

    该目录的全限定路径可以如下所示进行构建:
char sharedBarFile[20];
SPRINTF(sharedBarFile, "%s/%s", AEE_SHARED_DIR, "shared.bar");

    例如,在 Kyocera 电话上,前面的代码将用“/brew/sch/shared/shared.bar”填充“sharedBarFile”, 然后可以将其用于从 shared .bar 文件加载资源。

此技术适用于需要在应用程序间共享的任何类型的文件。

(9)删除/禁用应用程序对应用程序数据和首选项有什么影响?
    使用 Mobile Shop(移动商店)删除/禁用应用程序:

    如果删除应用程序,则应用程序的数据和首选项也一同删除。 应用程序间共享的数据是例外; 该共享数据在删除应用程序时不被删除。有关 共享数据的详细信息,请参阅 FAQ。

    版本 1.0.1 在删除首选项方面存在缺陷:删除应用程序时,无法删除使用 ISHELL_SetPrefs() 设置的首选项。 该缺陷已在 BREW 版本 1.1 中修复。

    如果禁用应用程序,则不删除应用程序的数据和首选项。

    使用 BREW App Loader 删除应用程序:

    如果使用 BREW App Loader 删除应用程序,则该应用程序的首选项将保留。
(10)运行应用程序时为何收到“未知错误 (1)”?
    一般情况下,.mif 文件中指定的 Class ID 和应用程序代码中的 Class ID 不匹配时会出现该错误。 如果以下条件的值为 false,则会出现该错误(在模拟器和电话上都会):
int AEEClsCreateInstance(AEECLSID ClsId, Ishell* pIShell,
Imodule* po,
void** ppObj) {
**ppObj = NULL;
if(ClsId == AEECLSID_MYAPP) {
//要继续,就必须为 true
// AEECLSID_MYAPP 值包含在 .bid 文件中
}
}

    确保 .mif 文件中的 Class ID 与 .bid 文件中的 Class ID 相同。 请注意您可以使用 MIF 编辑器在本地生成 Class ID,用于测试。

(11)试图启动应用程序时为何收到以下错误? 错误:“应用程序名 - 为节约内存, 已卸载该应用程序。必须下载新的版本”。
    该消息出现在模拟器上时表示 dll 应用程序丢失。 在模拟器中运行前使用 Visual C++(Build(编译)->Rebuild All(全部重新编译))编译应用程序。

    该消息出现在电话上时表示找不到 mod 文件。 如果应用程序是使用 Mobile Shop(移动商店)下载的,则可以选择 Yes(是)重新加载。 如果应用程序是使用BREW App Loader 下载的,请确保您已经下载了 .mod 文件。

(12)在什么情况下,小程序无法启动(即 ISHELL_CanStartApplet() 返回 False)?
    显示重要对话框(如Privacy Alert(隐私警告)对话框)时小程序无法启动。 某些情况取决于 OEM,如进行语音呼叫或数据呼叫时是否启动小程序。 例如,Kyocera 3035 允许小程序在进行语音呼叫时启动,而 Sharp Z-800 不允许。
    运行拥有基于使用的许可的应用程序时,为什么在关机后再开机时剩余使用次数会重置为原始值?
许可信息存储在 MIF 文件中。应用程序调用 ILICENSE_SetUsesRemaining()、ILICENSE_DecrementUsesRemaining 或 ILICENSE_IncrementUsesRemaining() 时,BREW 试图更新 MIF 文件。 由于 BREW SDK 版本 1.0.1 中有缺陷,应用程序必须拥有文件权限级别才能成功更新 MIF 文件。 因此,SDK 1.0.1 的暂时解决办法是包括文件权限级别(通过 MIF 编辑器)。 这已在 SDK 版本 1.1 中修复,即基于使用的应用程序在 1.1 中不必拥有文件权限级别。 有关权限的详细信息, 请参阅此 FAQ。

(13)如何确定我的电话上的软件版本?
在 Kyocera 3035 上:

定位到空闲屏幕键入 111111,然后按 Select(选择)键选择 Version(版本)菜单项
查找 SW Version(软件版本)下列出的版本号码。例如: LR2.0.31
在 Sharp Z-800 上:
软件版本可以在 Main Menu(主菜单)-> Display(显示)-> Version(版本)下找到。

(14)如何能将数据从一个应用程序传递到另一个应用程序?
    可以通过在共享数据位置创建文件/数据库在应用程序间共享数据。 请参阅 FAQ。
    将数据从一个应用程序传递到另一个应用程序的另一种方法是通过 ISHELL_SendEvent() 或 ISHELL_PostEvent 函数,不过这不是推荐方法。 可以将这两个函数中事件特定的 32 位值 (dwParam) 参数指向 App A 中的数据结构。 App B 接收事件时,应该立即复制数据。 这一点很重要,因为如果 App B 决定为响应事件而自动启动,则会在没有足够 RAM 启动 App B 的情况下停止并卸载 App A,因而使 App A 在 dwParam 中向 App B 提供的指针无效。

例如:

// 应用程序 A

// 要传递到应用程序 B 的数据是一个宽字符串:pMe->myStringISHELL_SendEvent(pMe->a.m_pIShell, AEECLSID_APP_B, EVT_USER,MY_USR_EVT,(uint32) pMe->myString);

//应用程序 B

case EVT_USER:
if(wParam == MY_USR_EVT) {
AECHAR* data = WSTRDUP((AECHAR*)dwParam);

// 可以通过调用 ISHELL_StartApplet 启动应用程序 B
... ... ...
... ... ...
FREE(data);
return TRUE;
}

    请注意不保证应用程序能够接收已发送/传递给它的所有事件。 下面举例说明,请考虑可用堆为 60K 的设备。 假定 App A 的大小为 45K,App B 的大小也是45K。 如果 App A 试图向 App B 发送/传递事件,则由于 RAM 限制不会加载 App B,该事件会被丢弃。

(15)什么是“Preparing Applications(准备应用程序)”?
    BREW 内核应用程序的一个函数,是向“应用程序下载服务器 (ADS)” 发送新下载的应用程序和最近删除的应用程序的确认。 例如,通过 MobileShop 删除应用程序时, BREW 保持一个记录,说明需要将删除确认 (ack) 发送到服务器。 BREW 试图在下次连接到 MobileShop 时或下次打开手持设备电源并启动 BREW 时发送 ack 并启动 BREW(在第二种情况下,BREW 启动内核应用程序发送确认)。 BREW 内核应用程序是由 BREW 内部启动 - 用户无法启动内核应用程序。

    如果 BREW 内部启动内核应用程序时有应用程序正在运行, 则会暂停该正在运行的应用程序。因此,应用程序只需处理“中止/恢复”事件 (如中止 和恢复应用程序中所述),就可正确处理“Preparing Applications(准备应用程序)”消息。

(16)我的应用程序中需要包含的图像及其大小要求是什么?
    所有 BREW 应用程序均要求包含以下三种指定像素尺寸的应用程序图像:

缩略图: 16 x16 像素
图标: 26 x26 像素
图像: 最大大小视不同的设备而有所不同

KWC 3035 和 Sharp Z-800 上的图像大小如下:
QCP3035: 69 x 46 像素或更小
Sharp Z800: 108 x72 像素或更小
LG VX-10: 120 x100 像素或更小

    Sharp 1.08 和 LG VX-10 使用缩略图显示应用程序管理器中的应用程序, 在突出显示一个应用程序时该图像就显示在屏幕中央。 Kyocera 3035 和 Sharp 2.01使用图标显示应用程序管理器中的应用程序。

(17)是否可以使用 BREW API 获取 ESN 或其它唯一设备标识符?
    目前没有可以获取设备 ESN 的 BREW API。 可以通过 BREW API 访问的唯一设备标识符是 设备电话号码。请参阅“如何 获取正在运行我的应用程序的设备电话号码?”
(18)对于我的应用程序可以随附的文件数有限制吗?
    由于手持设备上的数据结构限制不同,所以建议使用的文件数要尽可能少。 一些手持设备上有 OEM 施加的 最大 BREW 文件数量限制,且有可能在 用完内存之前已无可用文件。

    Sharp Z-800 手持设备有一个 BREW 文件限制,要求 所设计的应用程序使用的文件不得超出八 (8) 个。 包括应用程序包中的文件 - mod、bar、sig 和 mif 文件。还包括应用程序使用的模块。该 限制是基于 Z-800 对所有可用于 BREW 应用程序的文件数有 限制(在 2.01 build 上为 93 个文件)的事实形成的, 反之,该限制又规定了手持设备上适用的应用程序总数的上限。

    请注意,8 文件限制适用于非运行时应用程序所用的 文件数。您的应用程序可以 在运行时创建其它文件,但必须在应用程序退出时删除它们。

    当前的 Kyocera 3035 构件可用于创建更多的 BREW 文件, 范围为 250。正如前所述, 继续限制应用程序使用的文件数是明智之举。

    请注意,应用程序中包含的文件多于 8 个时 可能会导致无法通过 True BREW 测试,或导致 运营商拒收您的应用程序。

(20)使用 ISHELL_SetPrefs() 设置的首选项存储在什么地方? 我必须用“可修改”标记为我的应用程序签名吗?
    ISHELL_SetPrefs() 将首选项信息存储在您的应用程序的外部 BREW 数据库中。 由于存储应用程序首选项不 修改任何应用程序文件,不必使用“可修改”标记为应用程序签名。
(21)BREW 如何解决为无线手持设备开发应用程序和服务的问题?
    BREW 平台是一个无线手持设备的标准应用程序开发环境,手持设备涵盖范围从便宜的大众化电话到多功能高端无线设备。通过该平台,您可以编写能在多种电话上使用的应用程序,而不要求对每个新的电话型号进行应用程序修改。BREW 解决了当前的编程难题,如不需要电话及其软件的内部知识。
(22)创建 BREW 应用程序自始至终需要什么?
    需要 BREW 软件开发包 (SDK)、Windows® 开发环境和 ARM 编译器(ARM 已创建了专门支持 BREW 的 ARM BREW 编译器,可以向 BREW 开发者提供,售价 1,500美元。)您还需要为您的应用程序的 TRUE BREW 兼容性测试进行计划。通过测试的应用程序(测试是无线运营商在提供您的应用程序以便通过其网络下载前要求的)将收到 QUALCOMM 的数字签名。手持设备使用此签名进行验证,之后才允许下载或运行应用程序。
(23)如何获得 BREW SDK?
    只需单击此处下载即可。

(24)如何通过编写 BREW 应用程序赚钱?
    您的应用程序经过 TRUE BREW 测试后,QUALCOMM 将它与您的条款声明页传递到 BREW 运营商外联网上。一旦您接受与运营商间的条款,运营商将在他们的 BREW应用程序下载服务器上向他们的用户提供您的应用程序。客户采用您的应用程序时,将根据您与每个运营商达成的条款向您支付酬金。QUALCOMM 正在将中间件与运营商网络链接起来以管理应用程序分发以及对您的酬金支付。您作为 BREW 开发者有权访问的开发者外联网允许您跟踪运营商及最终用户对您的软件的采用情况。
(25)兼容性测试包括哪些内容?由谁进行测试?
    由第三方测试试验室来执行兼容性测试。测试的具体内容因应用程序而异,但一般来说,测试将涉及以下内容:
    应用程序如何与核心电话功能交互。例如,用户在另一个应用程序中时应用程序在被推入设备时如何处理即时通信或其它系统警告。
    内核应用程序的长期稳定性。向事件队列发送大量的事件,以查看应用程序如何处理它们,看看系统的不稳定性(如崩溃)、内存使用(如峰值)等。
重要的应用程序功能。进行测试以确保您宣称的重要应用程序功能在应用程序中实际存在。QUALCOMM 不会从最终用户角度测试该功能的“正确性”。
    应用程序使用的每个 BREW 功能领域的一组标准测试。例如,如果应用程序使用 BREW 文件系统调用,则我们将使用标准的文件系统测试套件。同样,如果应用程序使用 BREW 网络调用,则我们将用标准的网络测试套件进行测试。
    任何因运营商或生产商而异的外观要求。
    与目标设备的兼容性。
    与必需附件的交互。
    与 QUALCOMM 指定的一小组内核应用程序的互操作性。例如,如果市场上的大多数电话最终使用某浏览器,则我们将测试所提交的应用程序,确保它能与该浏览器较好地互操作。

(26)QUALCOMM 是否会对兼容性测试收费?
    是,QUALCOMM 将按成本回收情况收取测试费用。QUALCOMM 将尽可能降低您的这些成本。

(27)通过后会怎样?
    您的应用程序现在已经过 TRUE BREW 测试,可以放在运营商的下载服务器上。QUALCOMM 将使用数字签名对您的应用程序签名。运营商下载服务器和客户手持设备将查找该签名以对您的应用程序下载进行验证。

(28)为 BREW 平台开发还需要哪些其他费用?
    BREW 软件开发包 (SDK) 可以免费向开发者提供。QUALCOMM 还将免费提供基于 Web 的开发者支持。您将负责获取自己的开发工具,包括 ARM BREW 编译器。
    如何将我的应用程序安装到特定手持设备上或让特定运营商采用我的应用程序?
    QUALCOMM 将确保运营商和生产商可以访问已经通过兼容性测试并经过 TRUE BREW 测试的所有应用程序。我们鼓励您也将您的应用程序销售给运营商和生产商。

(29)编写 BREW 应用程序需要多长时间?
    这取决于应用程序的复杂性。许多应用程序可以在一到两月内完成。非常简单的应用程序可以用几周时间写完。BREW 使应用程序的编写更加容易,因为它为今天的 Windows、Palm 和其它大众化开发者提供了一个比较熟悉的标准环境。BREW 还解决了困难的集成问题,而过去需要数月实施时间。

(30)BREW 平台支持哪些编程语言?
    BREW 相对于开发语言是中立的。本地 C 和 C++ 应用程序的运行最有效。尽管目前在 C++ 的使用方面存在一定局限,但是我们正在努力消除这些局限。如果Java 虚拟机在设备、浏览器(WAP、CHTML 等)和其它环境下可用,BREW 还将支持 Java 应用程序的集成。
(31)BREW 将与哪些无线网络协同工作?
    QUALCOMM 与日本 KDDI、韩国 Korea Telecom Freetel (KTF) 和美国 LG Telecom、LEAP 和 Verizon Wireless、加拿大 Bell Mobility、墨西哥 Pegaso、南美Movicom and Telesp、新西兰 NZ Telecom 签署了谅解备忘录。有望在近期公布其它运营商合作伙伴。公司正在与全球其它主要 CDMA 运营商进行积极的磋商。

    QUALCOMM 预计启用 BREW 的服务将在 2001 年年底开始推出,2002 年将推出更多的服务。
(32)如果使用 BREW 有问题,可以到何处求助?
    除此 FAQ 和 BREW SDK 中的文档外,您可以在 http://www.qualcomm.com/brew/sch/developer/support/knowledge.html 网站上查找到更多有深度的知识库文章。如果您在 SDK 文档、此 FAQ 或知识库中没有找到查找的答案,且您已注册为 BREW 开发者,则可以给 QUALCOMM 的开发支持组发送电子邮件,地址为:brew-support@qualcomm.com。

(33)如果我的应用程序已放入运营商目录,该如何监视使用情况?
    从具有您的 QUALCOMM Authentic Document ID 的计算机上访问 http://notarization.verisign.com/pta。该服务会根据您的 Authentic Document ID 或QUALCOMM Digital Notarization Certificate 让您进行自我验证。选择此证书并继续。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/elong_2009/archive/2010/01/17/5201955.aspx
分享到:
评论

相关推荐

    深入研究BREW手机游戏开发BREW开发-海信(王宏兵).RAR

    《深入研究BREW手机游戏开发BREW开发-海信(王宏兵)》是一份针对BREW(Binary Runtime Environment for Wireless)平台的详尽学习资料,由海信公司的王宏兵编写。BREW是由QUALCOMM公司开发的一个强大的移动应用程序...

    brew--ITextdemo

    标题“brew--ITextdemo”中的“brew”可能指代的是一个类似于Homebrew的包管理器或者某种特定环境下的工具集,而“ITextdemo”则是一个具体的项目名称或示例程序。结合描述来看,这个标题意在表明这是一个利用特定...

    docker-brew-ubuntu-core, 在 Docker 中,官方导入的Ubuntu核心tarball用于使用.zip

    docker-brew-ubuntu-core, 在 Docker 中,官方导入的Ubuntu核心tarball用于使用 ;dr: git clone --single-branch https://github.com/tianon/docker-brew-ubuntu-core.git不打开请求来更新图像用于准备Ubuntu官方 ...

    深入BREW开发-中文版

    【深入BREW开发-中文版】是一本关于BREW(Binary Runtime Environment for Wireless)平台开发的书籍,主要针对无线设备的软件开发。BREW SDK(Software Development Kit)提供了开发BREW应用程序所需的工具和库,...

    brew-4.1.14

    在提供的文件中,我们看到三个不同格式的打包文件:`brew-4.1.14.tar.gz`、`brew-4.1.14.zip`和`Homebrew-4.1.14.pkg`。这些文件都是Homebrew 4.1.14的分发形式,但用途不同: 1. `brew-4.1.14.tar.gz`:这是一个...

    Brew SDK 3.1.5

    export SDKROOT=$(brew --prefix brew-sdk)/sdk ``` 之后,重新加载配置文件以应用更改: ``` source ~/.bashrc 或 source ~/.zshrc ``` ### 3. 使用 Brew SDK 现在,你可以利用 Brew SDK 来安装特定版本的软件或 ...

    homebrew-autoupdate:一种自动更新Homebrew的简便方法

    brew upgrade和brew cleanup也可以自动处理,但它们是可选标志。 如果安装了terminal-notifier程序,则在此命令运行时,您还可以请求桌面通知。安装此命令只需brew tap domt4/autoupdate 。用法brew autoupdate --...

    brew-php-switcher:Brew PHP切换器是一个简单的shell脚本,可在主要PHP版本之间快速切换您的Apache和CLI。 如果支持多个产品,则使用全新或旧的旧版PHP功能构建的项目。 目前仅适用于Homebrew(或简称Brew)的用户

    `brew-php-switcher` 是一个针对Homebrew用户的实用脚本,它允许开发者在不同的PHP版本间轻松切换,以满足不同项目对PHP版本的需求。这对于维护依赖于特定PHP版本的项目或者测试新功能至关重要。 首先,我们需要...

    BREW开发- 第三章搭建BREW开发环境.ppt

    搭建BREW开发环境是开发BREW应用程序的基础步骤,这一过程涉及到多个组件的安装和配置,主要目的是为了在个人计算机上创建一个与目标手机环境相仿的开发平台。下面将详细介绍这些知识点。 首先,BREW开发环境对PC机...

    BREW开发-海信(王宏兵)

    5. **内存管理和性能优化**:由于移动设备资源有限,BREW应用需要高效管理内存,减少不必要的资源消耗。这涉及到对象的正确创建和释放,以及代码的优化。 6. **用户界面设计**:BREW平台提供了多种UI元素,如按钮、...

    Brew FAQ.pdf 电子资料

    ### 关于BREW FAQ.pdf电子资料的关键知识点 #### 一、概述 BREW FAQ.pdf是高通公司提供的一份详尽的技术文档,旨在为手机应用程序开发者提供必要的指导和支持。这份文档覆盖了创建、编译、调试及发布BREW应用程序...

    高通brew初级培训 培训资料 Brew开发技术文档.doc 海信BREW开发.pdf

    5. 应用分发与计费: BREW应用通常通过运营商的BREW应用商店分发,用户可以通过手机下载安装。BREW平台提供了内置的计费机制,允许开发者选择一次性购买、订阅或免费试用付费模式。 6. 海信BREW开发: 海信作为...

    Brew FAQ中文

    Brew FAQ中文版是针对BREW(Binary Runtime Environment for Wireless)平台的一份常见问题解答文档,旨在帮助开发者解决在创建、编译、调试和本地化BREW应用过程中遇到的问题。BREW是一个为无线设备设计的操作系统...

    Brew-API参考资料(中文)

    ### Brew-API参考资料中文解析 #### 简介 Brew-API是Binary Runtime Environment for Wireless (BREW) 平台提供的一套应用程序接口(API),旨在帮助开发者构建高效、可靠的无线应用。该API文档由QUALCOMM ...

    brew-ebook.rar_brew_brew BUIW_brew ebook_buiw

    《brew-ebook.rar_brew_brew BUIW_brew ebook_buiw》是一个与Homebrew(简称brew)和BUIW相关的电子书项目,旨在帮助用户理解和应用brew在模拟器上的功能。Homebrew是Mac OS X系统下的一个开源包管理器,它允许用户...

    brew-4.1.15

    1. "brew-4.1.15.tar.gz":这是一个使用gzip压缩的tar归档文件,常见于Linux和Unix-like系统中。用户可以通过解压这个文件来获取Homebrew源代码,然后按照指示编译和安装。这种方式通常适用于开发者或者需要自定义...

    Brew Videos-crx插件

    【Brew Videos-crx插件】是一款专为英语用户设计的浏览器扩展程序,它致力于简化和优化视频发现的体验,让用户体验到参与酿造过程的乐趣。这个插件的主要目标是将观看视频与特定的兴趣领域——“酿造”相结合,可能...

    brew-2.6.0资源

    5. **软件包更新**:Brew会定期更新其维护的软件包列表,确保用户可以获取到最新版本的开源软件。 安装和使用Homebrew的步骤通常如下: 1. **安装Homebrew**:在终端中输入一条简单的命令`/bin/bash -c "$(curl -...

Global site tag (gtag.js) - Google Analytics