hosted app=网站快捷方式,兼KaiOS应用急速开发攻略:Nokia 8110 4G和KaiOS的可开发性评测(2)

android studio 教程 | 2018-09-14 19:40

(本文阅读受众:IT开发)

今年7月,谷歌(Google)注资 2,200 万美元,用以为KaiOS加入谷歌服务,如地图、Assistant、YouTube 和搜索引擎等,让谷歌可以打入这些发展中的地区。在笔者看来,这笔投资更像是官方出厂的预装费;同时这也引起笔者好奇,Google是如何为KaiOS开发应用呢?在将整个emmc dump出来之后(),笔者也就能够对这个问题一探究竟了。

首先查看的是Google Map应用,然而里面就只有一个应用描述文件。KaiOS商店中的Weather应用也是如此。翻查资料才发现,原来就是Firefox OS的hosted app机制。本质上来说,hosted app非常像一个网站快捷方式,放置在应用程序列表里面,供手机用户直接打开对应网站。Google这开发方法简直粗暴有效……

(Google Map应用,就只有应用描述文件。但里面的翻译倒是很全,不愧为国际公司)

(KaiOS商店中的Weather应用,同样只有一个应用描述文件。重点是cursor参数,显示鼠标光标,让并没有按键支持的页面也能够浏览)

(鼠标光标在Weather应用中,可通过导航键查阅页面。吐槽一下这个应用,输入地点之后搜索,竟然显示成其它城市的天气。谁有空的话,可以把中国天气网的包装成KaiOS应用。)

那么依照这个思路,复制一份Google Map应用的应用描述文件,然后修改几处地方,一个运行在KaiOS的高德地图应用就大功告成了。开发KaiOS应用居然这么简单,看来不用多久,我就会升职加薪、当上总经理、出任CEO、迎娶白富美、走上人生巅峰,想想还有点小激动呢,嘿嘿。

(醒醒,这是做梦!)

以下介绍KaiOS应用急速开发攻略,也就是制作hosted app的过程。

首先准备以下材料:

(导播,你切错画面了!图片来源:pixabay.com)

1、web服务器一台

用于上传应用图标和应用描述文件用。

以下假设这台web服务器的访问地址是。

2、电脑一台,安装了Firefox 52.9.0 ESR版。

KaiOS / Firefox OS的调试需要依赖WebIDE,而52.9.0 ESR版是Firefox最后一个能正常调试的版本。在后续的Mozilla Bugtrack中,WebIDE会在未来移除,到时候调试会更加困难。

而更糟心的是,Firefox总是自动升级到最新的ESR版本,搞到每次都要安装一次,即使在设置里面禁止自动升级都不行。如果有方法完全禁止自动升级,请告知,本人感激不尽。

如果WebIDE有问题,尤其是安装了多个Firefox,务必在关闭所有Firefox后,用命令行启动Firefox的用户配置管理器:

firefox.exe -p

然后新建一个新的用户配置(Profile),并且取消掉“启动时不询问并使用选定的配置文件”。

3、一台Nokia 8110 4G手机

4、一条USB数据线

5、adb程序

adb程序既可以通过Android studio获得,也可单独下载Android SDK Platform-Tools获得。相比前者1G起步,后者只有6MB。

制作过程如下:

1、Nokia 8110 4G手机待机状态下,输入*#*#33284#*#*,开启调试模式。

2、使用usb线将手机连接电脑。

3、进入adb目录,运行如下命令:

adb devices -l

看到Nokia 8110 4G手机,就是连接成功了

4、打开Firefox 52.9.0 ESR,然后打开WebIDE。

如果WebIDE没有找到手机,需要在adb目录运行如下命令:

adb forward tcp:6000 localfilesystem:/data/local/debugger-socket

然后在WebIDE点击"Remote Runtime"(“远程运行环境”),输入localhost:6000,然后连接。忽略提示“build date mismatch”错误,如果右侧的“Runtime Info”(“运行环境信息”)从灰色变成可选择,并且可以打开,那就是正常的了。

如果连接失败,需要重启手机,再重复这个步骤。如果意外断开usb链接,或者webIDE关闭了,也要重启手机,再继续这个步骤。汗……

(每次都要重启手机,笔者内心是这样的……)

5、到github下载笔者为本文章准备的高德地图(非官方)demo示例:

6、修改src/amap.webapp,把替换为web服务器地址。

以下假设为:-gaode-map-unofficial/

7、把src目录下所有文件上传到web服务器,并保证amap.webapp文件可被访问。

以下假设为:-gaode-map-unofficial/amap.webapp

8、在WebIDE选择“Open Hosts App”,并且输入amap.webapp文件所在地址。

以下假设为:-gaode-map-unofficial/amap.webapp

9、如果成功,会出现应用信息。点击上面的三角箭头运行。笔者由于运行过了,只有重新运行按钮。

10、手机会下载并且运行这个非官方的高德地图应用了。是不是好简单呢?

可能有人问,照这样做法,岂不是可以把微信网页版变成KaiOS的微信应用嘛?然而现实很残酷,腾讯没做手机网页适配,塞进去也用不了,二维码比屏幕还大,无法扫描登录,囧。

(有些东西,就不要抱太大希望嘛)

=====================

参考信息:

A hosted Open Web App In Firefox OS:

-US/docs/Archive/Mozilla/Marketplace/Options/Hosted_apps

Use the Profile Manager to create and remove Firefox profiles:

-US/kb/profile-manager-create-and-remove-firefox-profiles

"Operation failed: importing [packaged|hosted] app: TypeError: IDB._db is null:

Android SDK Platform-Tools下载:

(国内下载地址: ,搜寻“platform-tools_”文件开头,r代表版本号)