安卓手机应用安卓市场(精选8篇)
一天后,微博中开始出现网友恶搞调侃乐商店的PS图,众网友纷纷将目前手机中流行游戏“改良”为,并加上乐商店的logo并@乐商店,其中包括愤怒的小鸟之愤怒的女优,找你妹之找女优等等。事件的高潮部分在于乐商店官方微博在发现自己被调侃后,竟将所有网友的PS图做成合集,并自嘲的对此事进行表态,并用了相当隐晦的文字,并且宣称要推出官方版APP,一时将乐商店推致舆论的风口浪尖。乐商店自我调侃为哪般
在事件的源头,一个普通的Android用户对众多应用市场APP做了横向评测,其中包括乐商店、91、机锋、豌豆荚。乐商店沉默后对此进行了自嘲式回应,其它应用市场均选择了缄口。从这个评测内容上来看,可以得出结论:目前所有Android手机的应用市场,均不同程度存在APP,甚至,而乐商店之所以被单独点出,旨在把握好了“底线”二字。且不说的APP是否该存在,以及存在的方式,单从安全系数方面就让人堪忧。这些APP也是广告、积分墙甚至是病毒的源头。这也反应出目前Android手机市场应用种类的混乱之治。乐商店此次的回应虽引起了众多网友的吐槽,以至于关联到联想,但由此也让笔者对联想刮目相看,对于互联网时代的企业而言,永远不变的风格也许真的跟不上时代了,而这种机动且自嘲的回应,刚好有了一些“娱乐”的性质也同时反应了乐商店对互联网事件敏锐的嗅觉。
手机APP分级制度是否应推出?
众所周知,国内的电影分级制度一直是近年来争论的焦点,因为随着电影市场的不断升温,覆盖年龄层面的扩大,亟需分级制度来保护青少年的身心健康。同样作为覆盖众多年龄层的手机应用,内容也鱼龙混杂,APP就是其中之一,为了保护青少年身心健康发展,手机应用市场的软件同样需要分级制度。这个事件也给手机APP分级制度敲响了警钟。Android应用市场应拿何种态度应对APP?
从评测中可以看出,软件已经遍布在所有Android市场,在分级制度尚未建立的时刻,Android市场的负责方应该何种态度应对?事件主角乐商店选择了坦然面对,并做了自嘲式调侃,既然存在,承认的同时进行调侃。乐商店运营总监@崔巍 LEX 在新浪微博中回应:“非色情,后者我们限制,前者是人性所需,这事儿与故事和事故一样”。也有网友评论:不反对有“底”的。5000年中华文化里也不缺乏类似的著作。凡事要有度,这个度是大众能够接受的,也就是社会能容忍的。移动互联网是个新兴的行业,对于适度还需遵循一定的范围,不能一棒打死。
关键词:安卓系统,手机应用,未来发展
1 前言
手机应用程序(APP)在苹果刚开始流行之时专指供IOS操作系统使用的应用程序,这一观念发展至今已经成为指代所有移动终端能使用的第三方智能手机应用程序的名词。在安卓系统中应用程序使用的是同一的apk格式, 并且由于其开放性在当今移动终端市场获得了长足的发展。
2 安卓系统
2.1 安卓系统
安卓是一种以Linux为基础的,极具开放性的操作系统,当前其在移动终端中有大范围的使用。此种操作系统在2007年由谷歌推出, 一经推出获得了大规模的应用。当前安卓系统多用于各种移动设备的终端,手机、平板、电视以及游戏机等均可。
2.2 安卓系统架构
在程序编写人员进行程序开发相关工作时需要借助一个工具,在安卓系统发展成熟之前,此工具通常甚至总是为Java, 没有为程序编写人员提供多样化的选择。当程序编写人员终于认识到安卓系统的便利性时, 在编程语言上同样也有了更多的选择。安卓系统架构中以Linux系统为核心,Java在其中是一种重要的编程语言,但是在安卓系统中已然可以使用c/c++ 作为编程语言完成程序的开发。
在安卓系统中有三个层次:内核、中间层以及应用程序构架。第一层提供安全、内存和进程方面的管理,并且其在整体系统中也充当了一个通道的位置,将系统上层的软件与系统硬件条件联合了起来。第二层中包含的内容主要有函数库以及系统运行环境。 函数库起到的主要作用就是为用户提供Java中的一些功能,同时其自身为系统程序的正常运行提供API,保证应用程序的正常运行。系统运行环境指的就是安卓应用程序的运行环境。 第三层中包括的内容就是应用程序框架,这一层面的设置的目的就是为了实现应用程序的开发。程序猿通过应用程序框架完成对其核心应用程序的访问,使用这一方式能有效实现程序设计相关工作的简化,对于其应用程序开发工作十分有利。同时还能为安卓系统用户提供SMS、MMS、行事日历、电话簿管理等智能电话基础功能。
3 安卓系统在多领域应用趋势
3.1 平板电脑
由于苹果公司系列PAD产品的出炉使得平板电脑成为继智能手机之后的又一大移动智能终端。当前平板电脑的生产厂商以联想、苹果为主导,在进行针对此类软件的应用程序开发时,针对不同的系统,开发商有不同的态度。据相关统计资料表明,约84%的开发商愿意为IOS平板进行应用程序的开发,而只有62%的开发商表示愿意为安卓系统进行应用程序开发,在这两者相比的情况下安卓系统处于劣势。同时需要注意的是愿意为黑莓以及惠普的平板电脑,也就是使用BLACKBEERY OS与WebOS系统的平板电脑,只有16%的开发商愿意为其进行应用程序的开发。
3.2 智能电视
在安卓与IOS的竞争中目前仍然处于优势的一点就是智能电视领域。统计数据表明,提到针对安卓以及IOS系统智能电视进行应用程序的开发 ,对IOS有兴趣的开发者展40%, 而对安卓系统有兴趣的开发站占44%。在电视这一载体中安装应用程序改变了人们从前的电视节目收看观念,对于改进人们的电视机观看体验起到了十分重要的推动作用。
3.3 智能手机
在安卓与IOS系统开始智能手机市场的竞争之前, 智能手机的发展还没有目前这么迅速。安卓系统的开放性是其在智能手机市场能与IOS系统抗衡的重要原因。手机生产企业在制造手机的过程中使用安卓系统时无需付出高额的软件费用,降低了生产商进行手机生产相关工作时需要付出的成本,使得当前市面上存在大量的千元以下智能手机, 让智能手机的使用门槛进一步降低,更好的实现了智能手机终端的普及。
在使用搭载安卓系统的智能手机时,用户不断发现安卓系统的方便性。通过安卓系统自身的能力能与WiFi、3G、WAP等各种网络相衔接, 实现真正的移动上网。当安装过相应的手机应用程序后可以实现各种功能的扩展, 由于安卓系统的源代码持续处于开放状态,所以许多游戏开发厂商热衷于针对安卓系统开展游戏开发相关工作。统计资料表明,截止2012年12月31日与安卓系统相匹配的应用程序数量已经达到了70多万款,与IOS系统的差距正在逐步减小。
3.4 安卓应用领域
安卓系统由于自身的特殊性在移动互联网的多个领域取得了突出的发展。
电子商务领域。搭载安卓系统的移动设备通常电量使用较慢,且能实现随时随地地接入移动互联网,对于电子商务从业者来说,与自身顾客随时随地取得联系是十分重要的,根据这一特点很多电子商务从业者选取了安卓系统作为工作系统,提升了其工作效率,达成了对电子商务从业者事业的促进。
车载设备领域。随着社会生活水平的提升,车辆进入了许多人家, 消费者对于车辆中控台采用的操作系统也有了更高的要求。安卓系统应用与车辆中能有效实现车辆的导航、多媒体以及无线通信等各方面的功能,与传统GPS设备相比, 以安卓系统为基础构建的车载系统能更好地实现车辆的人性化导航,将路况、拥堵信息实时反映出来,对于帮助车主选择正确的路径有帮助作用。
股票证券投资。股票证券市场风云变幻,想要尽量多的把握好时机,对于信息传递的实时性与快捷性有较高的要求。在安卓设备上使用正确相关引用程序,由于安卓实时性的能力,可迅速地将各种信息传递至移动终端,帮助其做出正确的判断。
版权限制的数字媒体领域。由于安卓系统中文件的格式特点,造成其中的文件想要形成二次传播是非常困难的。
4 安卓系统手机应用的未来发展趋势
4.1 云端应用占据主流
目前手机应用市场上的各类应用程序大都为单机游戏,在用户下载完成后在使用过程不需要额外付出流量,不会产生任何联网行为。这种做法对于用户的手机流量有节省作用, 但是每一款游戏都有达到尽头的时候,当游戏玩到尽头时消费者对于该款游戏的兴趣便会彻底失去,所以目前手机应用市场中存在大量的“快餐游戏”,即看着觉得好玩,玩过一次马上删掉那一种,对于我国手机应用市场的可持续发展十分不利。未来云端应用将会占据安卓手机应用市场的主流。 对于用户来说,通过云存储重要信息,当发生任何信息丢失的意外时能便利地找回各种重要信息,同时用户还能将自己的应用程序相关信息存储在云端,对于游戏开发产生提供后续升级更新服务提供了条件,对于保证我国手机应用市场的可持续发展有促进作用。
4.2 手机应用盈利模式变化
从前手机应用想要实现盈利需要在游戏的可玩性方面有较高的要求,吸引消费者通过付费完成对游戏的购买。而当前已经发展出一种内置的收费形式,即手机应用采用免费下载形式,当消费者在体验过游戏之后若对自己的角色不满意可以利用短信付费的形式对其进行加强,或者说当消费者玩至一定的关卡时需要付费才能进行接下来的关卡。此种内置式的付费方式简单地说就是利用一款免费的应用将收费的部分传递至消费者 眼前,通过收费后可玩性的提升完成盈利。
4.3 社交网络发挥重要作用
当前我国主要的社交网络包括腾讯QQ、微信、新浪微博等,目前许多手机游戏一改从前手机端游戏不需要联网的特点,利用游戏时以及游戏后的联网让完成游戏的用户能看见自己成绩与社交好友成绩的对比,同时有些游戏还具有“炫耀”功能,即当你的成绩比好友高时可以选择向好友炫耀,显著提升了游戏的可玩性。未来社交网络对各种手机应用的影响将会越来越明显,在手机应用开发的过程中注重社交网络元素的注入是十分有必要的。
4.4 新型技术的出现与发展
HTML5技术的出现对于手机应用市场来说是一项十分重大的变革。从前想要在手机端实现与PC端相似的网页玩游戏是十分困难的, 因为在浏览器中的Web技术与HTML之间的兼容性存在较大问题, 但是目前HTML5技术出现,能轻易实现这一功能,对用户的行为模式可能带来较大的影响。
5 结束语
一、安装百度手机卫士防吸费
目前扣费病毒和偷跑流量APP泛滥,稍不留意就被吸费,为此应安装百度手机卫士、360手机卫士等软件,用其“防吸费功能”查杀吸费病毒,实时监测手机流量、超流量报警关闭网络。
启动手机浏览器到http://as.baidu.com/搜索下载安装“百度手机卫士”,再启动该软件点“防应用吸费”和“流量防偷跑”可查杀扣费和偷跑流量APP,点右上角按钮进入“防吸费设置”(如图1)。
在“流量监控设置”中打开“流量监控”、定时自动校准、每日流量提醒、月使用流量预警,点“号码信息”,选择手机号所在的省、运营商、品牌,点“保存并校准”,并设定每日、每月流量提醒值和每月流量套餐值,在“超过套餐时”中选“关闭网络”;
在“防应用吸费设置”中打开“监控安装应用”和“应用启动监控”,在“流量防偷跑设置”中打开“锁屏耗流量提示”、夜间耗流量提示、后台流量提示,设定后台流量消耗提醒值。
二、快速切换上网方式
手机上网有“数据连接”和“WiFi网络”两种方式,可这样快速切换:拉下通知栏,找到扇形图(WiFi上网)、↑↓(数据连接)图标按钮(如图2),点扇形图能WiFi上网,点↑↓即数据连接上网,按钮变灰色说明已关闭。
三、备份手机中重要资料
安卓自带的“数据备份恢复”可以将手机里重要资料(如联系人、短信、书签等)备份到SD卡上,即进入全部应用,点“数据备份/一键备份”即可,如要将SD卡备份内容恢复到手机上就点“一键恢复”。
或者用百度云将手机中重要资料(包括任何目录)上传到云端保存,还能将云端备份数据再下载恢复到手机、PC等设备上。
四、更换壁纸
按“menu”键弹出一个菜单(如图3),点“壁纸”,让你从“壁纸”、动态壁纸、媒体库中选择一个,其中“壁纸”和动态壁纸都是手机系统内置的壁纸,“媒体库”允许将手机内存或SD卡中图片(包括照片)设成壁纸;这里选择“壁纸”,出现手机里所有壁纸,选择一个,点屏幕底部“设置壁纸”,桌面壁纸就更换成功了,动态壁纸和媒体库的操作雷同。
五、关闭后台运行程序
点“设置/应用程序”,进入“正在运行”(如图4),点要关闭的APP,在弹出的窗口中点“停止”按钮就关闭正运行的APP。
六、为每个联系人定制铃声
点击联系人,在列表中点任意一个用户显示其画面,然后点“menu”键,弹出一个菜单,点“设置铃声”(如图5),就会显示铃声列表,选择一个即可设置铃声。
(一):安卓系统介绍
本系列教程将会帮助安卓手机用户从入门到精通完全熟悉你的安卓手机。首先我们要对安卓系统有所了解。
安卓系统是谷歌的手机项目。安卓系统是全球使用量最多的智能手机系统。苹果的iOS排在第二位。安卓的历史并不长,才仅仅几年的时间,但是发展非常迅速,这个有很多方面的原因,一,是因为安卓系统是免费的,谷歌不向制造商收取相关的费用;二,安卓系统是开源的,所有的制造商都可以使用;三,作为应用最广的智能手机系统,我们不得不说,安卓系统还是比较好用的,能够被大多数用户所接受和认可。
安卓在快速发展的同时,也出现了几个问题。最重要的有以下几个:升级更新慢,应用质量低,版本多等。这些原因都直接造成了安卓手机用户手机体验的下降。
最新发布的很多报告都显示,安卓系统发展并没有减慢或者是倒退的迹象,相反,安卓还处在快速发展的过程中。制造安卓手机的厂家有很多,目前最大的安卓制造是韩国的三星,特别是三星最近发布的即可Galaxy 系列手机,受到了市场的极大追捧,在三星大步发展的同时,其它的生产厂家却大多数都落在了后门,如摩托罗拉和HTC。诺基亚没有生产安卓智能手机,诺基亚还在极力的推动它的Windows Phone手机,但是却遭到了市场的冷落。
智能手机的发展速度之快超出了我们的想象,安卓到底会走向何方?我们也都在静静的观察。
(二):手机物理键
对安卓系统介绍后,我们先要看的是安卓系统的物理键。这里我们用的是HTC的手机来给大家介绍。
1.开关键
你可以按 on/off(开和关)两个键实现,开启或者是关闭屏幕。
长按 on/off键,你可以选择关机,飞行模式等等。
按一下 Home键,你可以离开你所用的那个应用,你再按一次那
静音模式,振动模式,个应用就又回到了原来的位置。
长按Home键(1秒),你可以看到你最近使用的应用。
2.按菜单键,你可以看到应用选项和设置等等。菜单键
3.返回键
从一个菜单或者是应用中返回
4.搜索键
按一下搜索键就可以搜索应用或者是网络,如果你的手机没有搜索键,你可以试着长按菜单键。
语音搜索:长按搜索键(包括语音控制)
(三):手机个性化 安卓手机最大的一个特点是你几乎可以个性化所有的一切东西。这包括屏幕,壁纸,键盘,主题等等,几乎所有的外观都可以个性化。
1.在主屏幕上加入快捷方式和小工具:你可以在屏幕上长按屏幕的空白处,加上即可。在安卓4.0里,你可以按我的应用进行设置。
2.壁纸:你可以主屏幕上按住空白处(长按),然后点击壁纸库进行设置即可。
3.动态壁纸:你可以给你的手机换上动态壁纸,这样你的爱机会更显可爱。你的背景可以是雨可以是雪。
4.键盘:安卓手机的键盘你也可以随意的换,你需要做的很简单,那就是找一款适合自己的方便使用的键盘。
5.主题:你可以很容易更换图标甚至是应用的图标
6.通知栏,你可以更换通知的声音,你可以更换手机的模式等。
7.文件夹:你可以把应用放在文件夹里面,方法:在手机屏幕上创建一个文件夹然后放进去就可以了。
(四):主屏幕设置
安卓手机的一大优点是它可以设置每一项功能和每一款应用。你可以利用Quick Setting把所有的设置放到一起进行设置,也可以按菜单-->设置。
个性化:你可以个性化情景模式,壁纸,铃声;
无线连接:你可以启动/关闭WiFi,蓝牙,热点,GPRS等等,你还可以打开关闭WiFi网络通知或者自动寻找WiFi热点。
声音:你可以选择你的铃声,通知音等等。
屏幕:你可以选择亮度,以及屏幕点亮的时间等
搜索:安卓手机的搜索包括对网络,邮件,日历,短信息,通讯录等等的搜索。
应用:你可以管理应用,强迫停止运行一个应用,拆卸应用等等。
应用 开发:充电的时候,你可以开着保持唤醒状态。
语音识别设置:开启个性化语音识别可以让Google Voice学会你说话的方式,口音等。
无线和网络:收音机,4G网络,蓝牙,WiFi,飞行模式等等,你都可以选择开启或者关闭。
(五):数据备份
你或许会丢失你的手机,或者一些情况下你可能需要恢复出厂状态。所以为你的手机备份也是非常重要的。谷歌只为你备份谷歌通讯录,日历以及付费的应用。如果你知道怎么操作,你还可以为免费应用,设置,数据,照片,音乐,墙纸,通话日志,书签,短信息,铃声,主屏幕,铃声,词典等等备份。
导入安卓电话通讯录
如果你常常以“google Contacts”储存你的通讯录,你可以跳过这一步。(经常以“Google Contacts”储存你的通讯录可以备份到Gmail中,以“手机通讯录”的方式保存不会备份。)
如果把你的通讯录存在了手机了,你可以导入到Gmail中。
1.按Home键 > 通讯录 > 导入/导出 > 导出 >手机
2.记住 vcf文件的名字和目标地址。可能是:“/sdcard/pcsc_pcsc_0001.vcf”
3.将你的vcf文件传到电脑上
4.将vcf文件从电脑上传到谷歌通讯录中
自动备份和恢复应用设置 如果你的手机允许,把你的手机设成自动备份的:
菜单 > 设置 > 搜索 “隐私”。点击隐私,然后确认“备份我的设置”和“自动恢复”
备份和恢复所有的应用
自己刷机需要的东西自备,因为不同机型需要的软件不一样!
注意:刷机前别忘了把名片,备忘录,短信,等等一些重要的东西备份一下!
先将下载好的rom包(就是系统包)命名为update.zip传到sd卡的根目录下,然后关机。
G1,G2,G3等有Home房子键机型,请按住Home键+开机键开机
N1,G7等Home键为触摸的机型,请按住音量键下键+开机键开机
稍等即可进入recovery模式,即恢复模式
1. 在recovery模式下,选择第四项Flash zip from sdcard
2. 然后会看到你卡中的全部zip文件,刚才命名为update.zip主要就是为了方便找到rom包,找到你放到SD卡中的rom,确认。
3. 点击你要刷的新rom后,会进入如下页面,然后按Home房子键就开始自动刷机了
4. 刷机过程中不要动,稍等片刻就好。
5. 当屏幕最下方的英文出现 complete,并回到recovery主页时,就说明刷机成功了!
6. 此时你便可以选择recovery菜单第一项Reboot system now来重启手机了。
Ps: 完成以后 ,最好是重置一下手机,需要进入recovery菜单中的第五项wipe
其中第一项是恢复手机出厂值,第二项是清除缓存,第三项是清除SD卡的第二分区内容,第四项是清除电池使用记录,第五项是清除重力感应设置
点击每一项后,会弹出提示,按Home房子键
小米之家的工程师说:这是因为安卓系统本身的特性所致。一般手机也就装到100多个app,32gb小米手机也一样只能装那么多。app搬家也不可能实现……
可是我觉得这个设计很不科学,想来问问懂行的朋友,安卓手机一般可以装多少个app,有设计数量上限嘛?
补充一下,小米2这款手机是16GB存储空间,不支持SD卡的。
所以,当16GB的ROM里还余下3GB空间的时候不能升级或安装任何app,这是不是不科学呢?
随着移动网络基础设施的建设,手机不可否认地逐渐成为重要的信息载体。不仅如此,随着智能手机在性能和系统功能方面的不断提升和完善,其在信息平台中的地位逐步赶超桌面系统。对于手机平台,信息采集能力和互联网连接能力正是其优势及发展趋势之所在,对于当前主流的手机平台:安卓和IOS,一方面,其采集信息的手段方便快捷;另一方面,手机的网络连接能力也随着基础设施的建设和升级变得越来越强大。
而实际上,手机移动客户端的业务框架是在已有业务框架(B/S)上的扩展,其主要扩展了移动设备通过无线网络接入互联网的环节。其常见应用的业务示意如图1所示。
图1中,手机移动客户端通过无线网络接入互联网,进而实现与服务端的通信。无论是手机移动客户端还是桌面客户端,都可以通过互联网从服务端获取信息,从而实现信息的互联互通。手机移动客户端APP以安卓实机(安卓2.3.6)为验证环境,桌面客户端为火狐(Firefox),Web服务器为Tomcat 6,其实机界面如图2所示。
2 信息处理套路及实现思路
通常,桌面客户端(浏览器)与服务端进行HTTP通信,按照数据流向可分为:推送(POST)和获取(GET),而且为了避免页面阻塞,桌面客户端大都采用Ajax技术来实现页面内容的异步加载。桌面客户端尚且如此,手机移动客户端则更为突出:一来手机移动客户端的处理性能不如桌面客户端,二来手机移动客户端要比桌面客户端更强调用户体验。
对于手机移动客户端,不仅需要自行实现桌面浏览器的信息推送、获取及展示的功能,而且还必须充分考虑异步处理。对于手机移动客户端的异步处理,安卓平台提供了例如:线程消息队列处理器(Handler)、加载器(Loader)、异步任务(AsyncTask)等异步处理机制。出于兼容性以及机制本质(实际上都使用了线程)的考虑,主要面向于线程+消息队列处理器的使用技巧。
2.1 信息项定义
既然需要对信息进行处理,则首先需要对信息项进行定义。信息项的定义既涉及移动客户端也涉及服务端。对于服务端而言,信息项的定义即数据表的定义;对于移动客户端,即为POJO实体类的定义,且POJO实体类的属性对应于数据表的列。
2.2 信息推送
该功能可分为“三步走”:第一步是推送信息的编码;第二步是内容的推送;第三步则是推送结果的判断。对于编码,无论是文本(“键-值对”)还是文件(图片)都可以编码成可进行HTTP通信的实体(HttpEntity),无非是实体的子类不同而已(具体请参考安卓平台有关HttpEntity接口定义);对于推送,可以使用HttpClient的推送方法进行内容的推送;对于推送结果的判断则需要获取服务端的执行反馈,涉及服务端接口的定义。
2.3 信息获取
该功能可分为“五步走”:第一步是请求参数的编码;第二步是参数的推送;第三步是推送结果的判断及内容的获取;第四步是内容的分解;第五步则是依据内容实例化对象。前三步与信息的推送相同,区别仅在于第三步所获取的内容有所不同,推送得到的是结果,获取得到的是所需内容,二者都为JSON编码(JSON数组);内容的分解即为将JSON数组分解为JSON对象,实例化对象则是依据JSON对象的属性构造对应的对象(POJO类)。图3是获取信息的流向示意图。
2.4 信息展示
信息的展示体现在前端(Activity),即在Activity中定义数据容器并绑定到适配器(Adapter),并调用线程在后台获取数据,同时初始化主线程消息队列处理器(Handler)。当数据获取线程获取数据并填充Activity的数据容器完毕后,向Activity的主线程消息队列处理器发送消息,通知适配数据进行视图更新。此处的消息队列处理器如同给主线程嵌入了一个“针头”,用于接受后台线程所传入的消息。其实现机制如图4所示。
可能有读者会问,后台数据获取线程为什么不直接通知列表视图适配器,而需要主线程进行“传话”呢?该限制源于安卓平台的一个规则:只有Activity的主线程才能访问其界面视图(否则会抛出“CalledFromWrongThreadException”异常),所以任何要求对Activity中的界面元素进行的操作都必须通过主线程来完成,所以才有主线程“传话”的操作。
3 服务端接口设计
3.1 信息推送接口
按照推送内容可分为两种:文本信息(“键-值对”)和文件的上传。
3.1.1 文本推送
文本推送接口包含3个参数,如表1所示。
通过表1可以看出,通过上述3个参数,即可拼凑出SQL的插入语句(INSERT),以实现往数据表中插入记录。
3.1.2 文件推送(上传)
文件推送(上传)接口包含5个参数,如表2所示。
通过表2可以看出,通过上述5个参数,即可拼凑出SQL的更新语句(UPDATE),以实现往数据表BLOB列中插入文件内容块。
3.2 信息获取
按照获取内容可分为两种:文本信息(JSON数组或JSON对象)和文件的下载。
3.2.1 文本获取
文本获取接口包含6个参数,如表3所示。
表3中参数“ds_id”为数据集标识,其内容是一段带有参数的SQL选择语句(SELECT),通过传入的参数来生成完整的SQL语句,服务端通过执行该SQL语句来获取结果集并以JSON格式返回。
3.2.2 文件获取(下载)
文件获取(下载)接口包含4个参数,如表4所示。
通过表4可以看出,通过上述4个参数,即可拼凑出SQL的选择语句(SELECT),以从BLOB列中读取文件二进制流内容。
4 实例代码分析
4.1 信息项定义
表5所示的是信息项的数据表定义(服务端)和POJO实体类(移动客户端)的定义,后者的属性项基本与前者的数据列对应。
4.2 信息推送
4.2.1 推送文本内容
信息的推送通常从Activity发起,通过点击按钮等方式进行触发,在推送之前需要进行内容的有效性检查,代码1是推送文本内容的关键代码。
代码1中,先进行内容的有效性检查,然后依据接口规范准备内容(目标列名和列值),再调用文本推送接口进行推送,最后获取推送结果(以JSON格式编码),再依据结果进行后续的事务。
在推送接口(“doPost”方法中调用)中,将文本内容都按照utf-8进行编码,这也就要求服务端也必须按照utf-8进行编码,建议服务端统一采用utf-8编码,特别默认不采用utf-8编码的应用程序服务器(例如Tomcat,对于其采用utf-8编码的方法,可在“server.xml”文件的“Connector”标签中设置属性“URIEncoding”为utf-8)。
所谓推送,在服务端可以理解为往数据库表中插入记录。
4.2.2 上传文件
代码1中,当文本内容推送完毕后,即自动发起图片文件的上传。代码2是上传图片的关键代码。
代码2中,除了文本参数,文件上传接口还有一个特殊类型的参数:文件,在推送接口(“upload”方法中调用)中,会将文本和文件流参数按照utf-8进行编码,再进行推送;和文本推送接口相同,文件上传接口也需要获取服务端反馈,以盘点上传结果(以JSON格式编码)是否成功。
需要注意的是,文件上传前需要确定宿主记录的ID(即代码2中方法的参数),必须要等文本内容上传完毕(记录插入完毕,主键ID确定后),才能上传文件。文件的上传,在服务端可以理解为往指定ID的记录中的BLOB列中更新文件流内容。
4.3 信息获取
4.3.1 获取文本内容
文本的获取有两种触发方式:后台自动触发和前端人为触发,前者在Activity创建时进行自动触发,后者为用户通过点击按钮进行触发(例如刷新操作)。数据的请求一般也需要参数,即也需要将请求参数进行编码等操作。代码3是在Activity创建时发起数据请求的关键代码。
代码3中,先按照文本获取接口组织参数,然后启动数据获取线程来获取数据。代码4是数据获取线程的关键代码。
代码4中,线程通过调用文本获取接口来获取数据内容,该内容是一个记录集。所以,文本内容的获取,在服务端可以理解为执行查询语句(可以传入参数),然后将结果集返回给客户端(以JSON编码)。
4.3.2 分解记录
服务端返回的文本内容是一个记录集(JSON数组),需要将其进行分解。代码5是分解数据内容(JSON数组)的关键代码。
代码5中,从JSON数组中分解出单个JSON对象,并将JSON对象转换成POJO类,并将类实例添加到数据容器(“ds”)中。最后通过Activity提供的数据更新接口(“updData”)和消息接口(“postMessage”)来更新数据和发送消息。代码6是将JSON对象转换成POJO类实例的关键代码。
代码6中,通过JSON对象的属性值来构建POJO类实例。
4.3.3 下载文件
文件的下载和展示一般在获取文本内容之后,即先展示文本数据,再展示图片内容。和文件上传一样,文件下载也需要记录的ID,即从指定ID的记录中的BLOB字段中获取文件流内容。代码7是启动下载文件的关键代码。
代码7可知,文件的下载是在记录对象生成时启动,且会在本地文件生成一个对应文件。代码8是文件下载线程的关键代码。
代码8中,需要调用服务端文件下载接口来完成图片文件的下载,并保存为本地文件。下载完毕后,会通过Activity提供的消息接口(“postMessage”)来发送消息。
4.4 信息展示
信息展示的载体是Activity所定义的可视化组件,文中实例中使用的是列表Activity,其需要设置列表适配器(Adapter),列表适配器又绑定了记录集和和行布局。
4.4.1 初始化Activity
对于Activity,需要准备4件事情:定义数据容器、将数据容器绑定到适配器、初始化主线程消息队列处理器和启动数据获取线程。代码9是Activity初始化的关键代码。
代码9中,记录数据容器为“mySharing”,其是一个数组列表(ArrayList);其绑定到自定义列表适配器(“FooListAdapter”)。Activity使用数据管理器(DataMgr)来获取对象集(代码3);在Activity的主线程消息队列处理器(“Handler”)的定义中接收数据更新和图片更新的消息,并通知列表适配器进行更新。
4.4.2 Activity提供的数据更新接口
代码10是代码5中,数据获取线程在数据获取完毕后,所调用的Activity提供的数据更新接口的定义。
代码10中,该接口仅仅用来更新Activity的记录集(“mySharing”)。
4.4.3 Activity提供的消息发送
代码11是代码5中,数据获取线程在数据获取完毕后,所调用的Activity提供的消息发送接口的定义。
代码11中,该接口仅仅用来向Activity的主线程消息队列中发送消息。消息包括两类:一种是通知Activity更新数据(文本),一种是通知Activity更新图片。Activity无论是收到数据更新还是图片更新的消息,都会“要求”列表适配器按照最新数据进行刷新。
4.4.4 自定义列表适配器
代码12是自定义列表适配器中所定义的行视图组件与对象属性值的映射关系的关键代码。
代码12中,在列适配器获取行视图的回调函数(“getView”)中,从每个对象中获取其属性值并分别设置到行视图所定义的各个可视组件中。其界面效果如图2(左图)所示。
囿于篇幅,列表视图的行视图的定义请参见完整代码。
另外,对于图片的展示其思路与文本内容相同,其技巧在于将服务端图片内容下载到本地存为图片文件,并将其路径信息设置为POJO对象的属性,通知适配器刷新视图时,按对象的路径属性加载图片文件即可。
4.5 工程设置
由于在该应用中需使用HTTP通信,涉及到HTTP的通信规范和网络访问,所以在工程中必须有相应的设置,具体如下:
(1)需引入httpmime包(安卓平台已经包含HttpClient的包)。
(2)须在工程清单文件中声明互联网访问等使用权限。
5 结语
从手机移动客户端进行信息处理的应用套路和技巧出发,结合安卓平台的技术特性,对手机移动客户端在信息推送、获取以及展示等应用方面的功能实现和相关技巧进行了详细的阐述,并结合实机案例对关键功能的实现进行代码了分析。
实际上,作为一个完整的应用系统,不仅包括手机移动客户端,还包括服务端和桌面应用,但囿于篇幅,文中只对手机移动客户端和服务端接口部分进行了介绍。
长期以来,智能手机续航能力不足一直饱受用户诟病,而手机电池电量大小也成为决定消费者选择手机品牌的重要影响因素。
“在今天的安卓手机中,你用任何一款都会发现非常费电,大家经常指责手机厂商提供的电池(容量)不够大,(但实际上)我们从原来做2000 mAh,不够大就做2500 mAh,2500 mAh不够就做3000mAh。”小米科技董事长雷军在中国互联网大会“2013中国互联网高层年会”上与虎嗅网创始人李岷的对话中指出。
尽管手机的容量一直在不断增大,但安卓手机费电的情形却并未得到改善,随身携带备用电池已经成为很多安卓手机用户的习惯。
软件异常是费电元凶
智能手机屏幕大、功能多且使用频繁,对电量的需求肯定大,但许多消费者反映自己的智能手机还没怎么使用,却连一天都撑不到就没电关机了。
根据金山手机毒霸安全中心发布的《90万款App耗电分析报告》显示,软件异常是安卓费电元凶,而最主要的三种耗电行为分别是频繁唤醒CPU、长期持锁(唤醒锁)、非必要的后台程序自启动。
“大量的安卓软件出于某些目的,会在手机后台异常运行,这些应用程序的行为大大消耗了安卓手机的续航能力。”金山网络安全专家李铁军表示,“如果按照一部手机夜间待机8小时算,这些过度耗电的应用软件会消耗待机电量的10.64‰其中频繁唤醒系统的应用软件比例占9‰长期霸占唤醒锁和设备资源的占11‰”
分析结果发现,APP自身原因造成安卓系统异常耗电的比例高达61.04%,其中90%的软件自启动和该软件给用户提供的功能没有任何关系,而正是这些行为,造成了应用软件严重耗电的现象。
李铁军指出,耗电和应用软件的行为有关,一些软件频繁自启动只是为了访问特定网站、下载广告资源、获取最新的通知消息、选择恰当的时机在用户手机上弹出消息、检查有没有更新的版本、提高软件的活跃度等等。因此,耗电的应用软件往往也消耗过多的网络流量,同时,恶意窃取用户手机隐私信息的软件同样会过度耗电和消耗流量。
相较苹果手机而言,安卓手机更为费电。据了解,iPhone5的电池容量只有1440mAh,可以正常使用一天,而安卓手机普遍电池容量在2000mAh、甚至3000mAh以上,它的使用时间却并没有比iPhone长多少。
“问题在于iOS是一个管制非常严的系统,整个生态系统比较健康,而Android是个开放的系统,有的App经常捣乱,比如说常驻后台启动,同时屏幕弹出悬浮窗口,再加偷流量,顺便弹广告。我相信你们的手机或多或少都有这样的特点。”雷军表示。
在iPhone或iPad上,苹果提供了统一的通知中心。应用软件不能直接向用户手机推送消息,必须使用苹果统一的通知中心。iPhone或iPad后台有个服务程序接收苹果服务器的消息通知,消息通知再去通知相应的APP去接收消息内容。这样,在用户的iphone手机或ipad上,一个后台服务保持和苹果服务器的连接,就能完成任务。用户端的资源占用做到了最小,其特点之一,就是省电。
而安卓系统就不一样,由于本身是完全开放的,手机或平板制造商可以对安卓系统自行改造。还因为某些特别的原因,国内安卓手机很少使用Google的消息推送机制。于是,各个安卓应用开发者便自行其是,想怎么连接就怎么连接,想隔多久连接就隔多久连接,甚至有些应用每秒钟连接一次,开发者根本没有为用户的电池续航能力考虑。
李铁军说:“安卓手机后台唤醒就好比一个马蜂窝,有的程序刚休眠,就可能被别的程序唤醒。只观察一个程序的电力消耗会觉得这没什么大不了,但在安卓系统环境里,这些程序会相互作用,频繁唤醒CPU,使系统几无休眠时间。这就使得安卓手机屏幕关闭时的电力消耗比iPhone、iPad高许多。”
APP行为管理是核心
目前,谷歌官方并没有对应用程序的电力消耗制定具体的规则,因此,许多开发者、运营商在没有约束的情况下肆意侵犯用户的权利。针对这些现象,一部分手机厂商会考虑去限制应用程序的自启动情况,比如MIUI V5就可以限制应用程序自启动。
“我在做系统的时候。就在想我们的系统能不能安静一点,能不能不要不停地吆喝。用过小米手机的应该都知道,其实小米的这些系统没有任何一个是会不停弹出通知的。”雷军说道,“小米对整个手机上的生态系统非常的在意,我希望小米生态在Android开放生态的大范畴里面,是一个比较约束的、比较安静的、用户体验比较好的一个生态。”
同时,有些安全软件也会去限制应用程序自启动、查杀应用程序进程,以图达到省电省流量的目的,但不少用户发现,在查杀掉一些进程之后不久,这些程序又自动启动了。
“原因在于这些软件也不能算是恶意软件,除了比较耗电,耗流量之外,它们纯粹是正常的软件,也为用户提供他们所需的服务,只是由于开发者只顾自己利益而没有考虑到用户才会出现这些情况。”李铁军说道,“同时,安卓应用程序有太多机会重新启动,当手机信号发生变化、点亮屏幕、来电话、来短信、同步、加减音量等等都会触发程序启动。仅仅杀掉应用软件进程,并不能治本。”
安卓系统里,有自启动能力的应用软件非常之多,可能数量比Windows应用软件自启动还要多。这使得安卓系统太像Windows,每次开机都会有一批应用程序启动,拖慢系统速度、消耗手机内存、耗费手机电量,同时由于这些自启动的软件启动的目的几乎都是连网获取消息,又会浪费手机流量。
在李铁军看来,要想解决安卓软件过度耗电的问题,必须从管理APP行为下手,而非简单查杀病毒、进程就能解决的。而如何管理APP又可以同时从三个方面入手:
一是,管理APP的自由唤醒周期,由金山手机毒霸统一唤醒规则。将频繁唤醒系统的周期延长,变杂乱无章的马蜂窝式唤醒系统为统一唤醒。准时休眠、准时唤醒,最大限度的给CPU和硬件设备休眠时间,从而大幅减少不必要的电量消耗。
二是,当应用程序由于BUG原因不释放唤醒锁的,金山手机毒霸强行释放。对不释放设备资源的,程序退出后强行释放。就像在Windows系统里,准确找到占用CPU100%的进程。将其结束。
三是,管理非必要的应用程序自启动,将与正常功能完全无关的软件自启动彻底关闭。
【安卓手机应用安卓市场】推荐阅读:
安卓文件目录09-06
有用的安卓总结11-24
安卓实训总结06-02
安卓操作系统简介12-05
手机市场预测报告09-18
儿童定位手机市场分析05-23
智能手机市场调研报告05-26
手机市场督导工作总结09-10
手机市场调查报告问卷09-20
手机市场调查报告内容10-09