Sencha学习笔记2:打包您的第一个Sencha安卓应用apk安装包

通过上一篇翻译的官方文章的介绍我们对sencha有了初步的印象,同时我们也通过该向导生成了第一个示例应用代码框架,那么下一步可能很多人都觉得应该根据该向导所提示的去看一下一个应用是如何建立起来的详细信息了,但我认为可以换一下学习的路径。

天地会珠海分舵是一个比较急功近利的人,所以有了第一个自动生成的代码示例后,他是比较急于想知道应该如何将该示例打包成一个安卓的apk安装包来安装到目标安卓机器上。刘备做得好,得陇就应该望蜀,做人还是有点追求的好。

下面我们就尝试通过一个HelloWorld的示例来看下应该如何使用sencha命令来把sencha应用打包成一个apk安装包并安装到目标安卓设备上面。

第一步: 创建示例代码

根据上一篇翻译的官方文章《Sencha学习笔记1:
Getting Started with Sencha Touch - 官方Sencha Touch入门指南
》所介绍的方法,我们先定位到sencha sdk所在的目录下面,然后执行对应sencha generate app命令来在sdk的父目录生成对应的应用框架文件:

创建示例代码的命令输出结果如图所示:

第二步:修改MVC模式的View文件app/view/Main.js以改变显示内容

这一步和第三步其实可以跳过,如果你百分之百确定新创建的示例应用运行起来没有任何问题的话,但毕竟天地会珠海分舵只是个初学者,我相信看官对本文感兴趣的应该也是如我一般是个初学者,所以建议还是多做几步顺便对sencha自动生成的代码有些初步印象的好。

sencha命令生成的示例代码框架中的app/view/Main.js就是MVC模式中的View,负责的士如何把ui呈现给用户,所以我们可以通过修改其中的一些选项来修改ui的一些显示。sencha默认生成的应用是有两个tab标签的应用,下面我们将应用的其中一个标签的标题改成"My First Sench App",把其主体内容改成"What an app!";并把另外一个标签的标题改成"Woohoo":

修改之后进行保存,然后在下一步通过浏览器来检查该修改是否成功。

第三步:通过sencha命令启动web服务器

修改好MVC中的view显示后,我们就需要在浏览器中先调试检查下该修改是否已经成功,我们可以用大部分流行的web服务器来访问该示例应用,但为了简单起见,且我们的主要目的是为了去学习sencha touch,所以我们这里使用的sencha命令提供的web服务器来完成这个工作。下图显示了通过命令打开sencha自带web服务器的过程,注意在执行该命令前本人是先cd到应用目录下面的,这样我们在浏览器中就不用制定额外的路径来访问该应用了:

注意上图最后一行打印出来的信息包含了访问该示例应用的端口信息:1841,我们下一步需要用到。

第四步:通过浏览器访问应用

最终通过浏览器定位到我们的应用,相信这种通过web服务器加上浏览器访问的方式主要是为了调试sencha touch应用的方便而设计的,毕竟sencha touch要打造的就是基于浏览器或者混合应用外壳的应用,所以用浏览器调试应该是最方便的。

下图显示了浏览器上通过本地ip和上一步提及的端口来访问我们修改过的view所显示的示例的内容,从中可以看到我们修改的内容已经起效了:

第五步:确定sdk版本

这一步主要是要确定我们系统上下载的sdk版本,因为往下调用sencha命令来生成apk包的时候除了需要制定安卓sdk所在的位置之外还需要指定该sencha示例应用所应该编译到的对应的api level。

按照本人的经验,天地会珠海分舵认为应该有两个方法可以判断当前sdk支持的api level,第一种就是通过检查sdk目录下的platforms目录下面有哪些api level的文件夹:

第二种就是我们可以通过"Android SDK Manager"来确定我们究竟安装了哪些level的安卓api:

通过以上两种方法我们就可以知道我们系统现在支持的是api level多少级别的安卓系统了,当然,如果不满足你的需要的话,你可以通过Android SDK Manager下载更多满足要求的。这里我们会选取其中一个,比如我们这里选取api level 19。

第六步:修改应用顶层目录下的packager.json文件

该文件是一个指示sencha应该如何打包应用的文件,这里有几个地方需要进行修改的。

首先,我们需要修改的是示例应用的命名空间,其实在天地会珠海分舵看来,安卓上该命名空间就等同于应用的包名,往下我们会进行验证。请先看下图显示的命名空间applicationId选项的修改:

该选项的值修改之前是“HelloWorld",为了遵循安卓的包命名规则,我们需要把它修改成如下格式"com.sample.HelloWorld"。图片显示的其他格式先不要动,保留原来是什么值就什么值。

然后往下我们还需要修改签名等相关的信息,如下图所示:

首先platform应该修改成Android,因为我们现在的示例是演示如何打包安卓的apk安装包。其次就是把证书签名相关信息设置好,这些信息可以从前面的步骤获取到。最后就是指定安卓sdk的路径和上一步获得的api level了。修改后别忘记保存。

第七步:调用sencha命令生成apk安装包

到了现在是万事具备只欠东风了,该如何打包的配置文件在上一步已经完成,我们只需要执行“sencha app build native"命令,如果不出意外的话就能生成对应的apk安装包了。如果这个过程中出现问题的话,建议仔细查看错误输出提示,往往就是我们上一步的配置文件没有配置好导致的问题。当然,sencha除了提供“sencha app build native"命令来打包apk安装包之外,还提供了其他的一些打包方法,但是这里我们先不用管,今后学习的过程中我觉得有必要的话自然会对其进行尝试然后分享给大家的了。

请看下图执行sencha打包apk命令的部分输出信息:

打包好的apk安装包会保存在示例应用顶层目录下的build文件夹的相应子目录下面,具体请看下图:

第八步:把安装包安装到目标机器上并运行

有了该apk安装包后我们就可以像对待其他普通安装包一样,通过"adb install"命令来把该安装包安装到目标安卓设备上面了。安装后该应用的图标如下所示:

触按该应用图标后打开该示例应用,大家可以看到其内容跟前面通过浏览器访问sencha示例应用是一致的:

第九步:验证应用命名空间和示例应用包名是同一回事

上面的第六步中我们在packager.json这个打包配置文件中把示例应用的命名空间设置为“com.sample.HelloWorld“,当时我跟大家断言说该命名空间应该就是该安卓应用的包名,这里我们可以通过安卓的”pm list packages"这个专门列出所有安装包的命令来进行验证:

从上图我们可以验证前面所有的包名和命名空间其实就是同一回事。


作者


自主博客


微信


CSDN


天地会珠海分舵


http://techgogogo.com


服务号:TechGoGoGo

扫描码:


http://blog.csdn.net/zhubaitian

时间: 2025-01-12 16:47:09

Sencha学习笔记2:打包您的第一个Sencha安卓应用apk安装包的相关文章

Sencha学习笔记4: Creating your First App - 官方创建您的第一个Sencha Touch应用指导

英文原文地址:http://docs.sencha.com/touch/2.3.1/#!/guide/first_app (天地会珠海分舵声明:本翻译文章建议读者参照英文原文进行阅读,因为原文包含了实时代码编辑和预览的功能,这在csdn是不能做到的,所以下面只是提供了相应的截图,而非真实的演示) Required Software 软件需求 请参考<Sencha学习笔记1: Getting Started with Sencha Touch - 官方Sencha Touch入门指南> Crea

mybatis学习笔记(14)-查询缓存之中的一个级缓存

mybatis学习笔记(14)-查询缓存之中的一个级缓存 mybatis学习笔记14-查询缓存之中的一个级缓存 查询缓存 一级缓存 一级缓存工作原理 一级缓存測试 一级缓存应用 本文主要讲mybatis的一级缓存.一级缓存是SqlSession级别的缓存. 查询缓存 mybatis提供查询缓存.用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级缓存是SqlSession级别的缓存.在操作数据库时须要构造sqlSession对象,在对象中有一个数据结构(HashMa

试验笔记 - 使用7-ZIP压缩来减小APK安装包体积

7-ZIP版本:9.20 x86 And x64 Windows(2010-11-18) 1. 将APK包解压到文件夹2. 全选所有文件,右键“添加到压缩包”3.“压缩格式”必须“zip”4.“压缩等级”选择“极限压缩”5.“压缩方法”必须“Deflate”(试了Deflate64,BZip2,LZMA,PPMd都无法正常安装)6.“单词大小”选择“256”7. 将后缀改为APK即可 原APK大小:1,039,193 B不同“单词大小”压缩能力比对:128:963,793 B(极限压缩默认)19

Cordova+Eclipse打包apk安装包

前提条件,电脑安装过nodejs和Cordova,不作详述,后面再补一篇相关blog记录一下. 本文主要从纯操作角度介绍使用Cordova将html5项目打包成安卓安装包的过程,此前看到很多前辈写的经验对具体操作部分介绍得不够细致,为了方便后来者更好地参照,所以在此作此记录. 第一步:在磁盘中新建一个文件夹,用来存放Cordova创建的项目 比如,在D盘的Download下面新建一个文件夹ruyi 从cmd命令行中进入到ruyi目录中, 运行Cordova命令创建工程 ruyi : 项目文件夹名

Sencha学习笔记1: Getting Started with Sencha Touch - 官方Sencha Touch入门指南

官方英语原文:http://docs.sencha.com/touch/2.3.1/#!/guide/getting_started What is Sencha Touch? 初识Sencha Touch Sencha Touch is a high-performance HTML5 mobile application framework. You can use Sencha Touch to produce a native-app-like experience inside a b

[原创]java WEB学习笔记04:Servlet 简介及第一个Servlet程序

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

linux学习笔记(打包压缩工具)

前言:数据的备份在运维过程中是很关键的一件事情.数据无价. 内容: 几种压缩工具 compressuncompress 老旧的压缩用具一般现在已经不适用. gzip : .gzgunzipzcat不解压的情况查看文本内容.注意:压缩完会删除源文件 gzip -d file 解压文件gzip -# file 设置解压比-1 - -9 默认是-6gzip –c filename > /PATH/TO/filename.gz 能够保存源文件gunzip -c filename > /PATH/TO/

【学习笔记】关于输入缓冲区。一个不规范的字符赋值语句引发的讨论

1.这种赋值语句是我练习时写的错误代码,它不符合规范,是实际写代码的时候,不应该出现的.只是结果碰巧"正确",因此拿出来讨论. 2.因此这篇笔记对实际代码能力的提升并没有太大帮助. 下面这段代码,4个printf语句的输出结果分别为多少? #include<stdio.h> int main() { char *a = 'abc' ; char b = 'abc' ; printf( "%s\n", &a);      //c printf( &

【安全牛学习笔记】KALI版本更新(第一个ROLLING RELEASE)和手动漏洞挖掘(SQL注入)

KALI版本更新-----第一个ROLLING RELEASE Kali 2.0发布时声称将采用rolling release模式更新(但并未实施) Fixed-release 固定发布周期 使用软件稳定的主流版本 发布-----主流-----作废 更稳定,适合于企业生产环境 Rolling release 使用于开发者和技术人员 连续升级新版本,追求在新功能出现后最快使用 正在成为流行 KALI版本更新-----第一个ROLLING RELEASE Kali 2.0 rolling relea