android解析plist文件
android解析plist文件(精选4篇)
android解析plist文件 第1篇
plist,即property list,是苹果手机软件开发中经常用到的存储文件格式,其实质就是XML文件,但是它遵循一定的格式,比如包含一些指定的元素,如plist,array,string,key等。苹果提供了解析该类文件的机制,可惜在安卓开发工具中却没有提供。经常遇到的情况是,在开发苹果和安卓手机软件的时候,要统一资源文件,这个时候,我们可以采用GitHub中提供的开源android-plist-parser解决方案。
比如我们要解析一个全国省市区的一个plist文件:
xml version=“1.0” encoding=“UTF-8”?>
...
...
...
...
...
...
那么如何在android中解析呢?
一:在GitHub上下载android-plist-parser
二:解压下载的包,并导入android项目的类路径里,
三:解析该文件,并将解析信息打印在控制台。(因为该文件不算太小,因此在新线程中运行,防止主线程卡死)
new Thread(new Runnable {
@Override
public void run() {
PListXMLParser parser = new PListXMLParser(); // 基于SAX的实现
PListXMLHandler handler = new PListXMLHandler();
parser.setHandler(handler);
try {
parser.parse(getAssets().open(“area.plist”)); // area.plist是你要解析的文件,该文件需放在assets文件夹下
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
PList actualPList = ((PListXMLHandler) parser.getHandler()).getPlist();
Dict root = (Dict) actualPList.getRootElement();
Map
android解析plist文件 第2篇
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
一个APK文件结构为:
mete-INF Jar文件中常可以看到
res 存放资源文件的目录
A ndroidManifest.xml 程序全局配置文件
c lasses.dex Dalvik字节码
resources.arsc 编译后的二进制资源文件
总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式,
在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。
android解析plist文件 第3篇
关键词:Android,视频文件,传输,处理
一、视频自适应算法框架
基于Android视频文件传输的自适应算法是根据网络环境下传输实时视频数据而提出的一种算法[1]。在进行视屏文件传输时, 通过对网络进行探测以及对反馈信息的分析二实现基于Android视频传输的自适应控制, 该自适应算法的实现主要从4个方面进行: (1) Android系统接受包含视频数据的时间戳、发送序号、状态值等网络信息的视频数据, 参考实时传输协议RTP进行打包传输。 (2) Android系统在接受到视频数据包之后, 通过解包获取数据信息以及当前的网络状态, 并反馈控制策略, 同时计算数据包的丢失率以及带宽瓶颈等参数, 然后参考实时参数协议RTCP进行打包然后反馈给视频数据的发送端。 (3) Android系统通过利用TCP友好速率控制算法来计算网络的实时带宽, 然后利用视频自适应算法来实现平滑的视频数据传输, 降低TCP的AIMD算法所带来的带宽波动。 (4) Android系统根据调整以后的数据接收速率对视频数据包进行接收。
基于Android视频传输的自适应算法首先要根据接收的新型进行RTCP分析, 病对分组丢失的统计规律、分组延迟抖动以及信息传输所消耗的时间进行计算, 然后对网络状态进行估计以判断是否需要对带宽进行调整。另外还要根据当前网络的状况对视频传输的带宽进行适当的调整。
二、TFRC算法
TCP友好速率控制算法能够根据网络状态对数据流速率进行调整, 实现控制网络拥塞状况的目的, 它是基于速率的拥塞控制算法。TFRC吞吐量变化较为稳定, 波动较小, 主要适用于电话、流媒体等对信号传输稳定性要求较高的应用。TFRC算法的基础是TCP稳态速率模型, 该模型给出了TCP在网络处于拥塞避免阶段时的跑平均发送速率。
TFRC稳态速率公式如下:
上面公式中的s代表TCP报文的大小;p是包的丢失率;t0是数据报文超时时间;tRTT是数据报文环路时间;b表示一个应答所接收到的报文数量。通过该公式能够计算出传输数据流的稳态接收速率B (p) 。
从上面的公式能够看出对传输数据流的稳态接收速率影响最大的是数据包的丢失率。数据包的丢失率主要分为3个步骤, 分别为初始化参数列表, 丢失率的判断以及丢失率的计算。
三、基于Android平台的视频自适应传输算法
考虑到目前Android智能手机的性能以及网络状况, 视频自适应算法通过将TFRC算法以及视频编码算法结合, 实现视屏编码的动态调整和发送。当发现当前网络出现拥塞后, Android系统会对视频数据的接受策略进行自动调整, 保证视频传输的稳定性[2]。如果网络出现长时间的拥塞, 视频自适应算法的表现就是在最初阶段出现较大的丢包率, 随后通过算法的调整, 逐渐适应网络拥塞的环境, 丢包率也会逐渐降低, 保证视频传输的流畅性。
通过与TCP基于AIMD窗口控制算法相比较, 视频自适应算法采用了更为缓和的速率变化控制策略, 既降低与TCP流之间的影响, 又使数据传输速率变得更加稳定, 有效的实现了视频文件的稳定传输, 同时还保证了视频的传输质量。
四、总结
本文提出了一种基于Android智能手机视频传输的自适应算法, 该算法能够对网络带宽进行实时动态探测, 自动适应当前的网络拥塞状况, 并通过利用TFRC算法制定出平滑的数据传输带宽, 根据实时的带宽对视频的编码以及传输速率进行控制, 有效的提高了视频文件的传输质量, 改善用户的使用体验, 该自适应算法具有较高的应用价值。
参考文献
[1]王辉.基于Android的视频流自适应算法设计[J].现代电子技术, 2012, (22) :42-45
android解析plist文件 第4篇
对一个新系统,每一个用户所关注的点都有所不同,CPCFAN就对它低配置硬件手机的支持非常感兴趣,这是以往版本都不具备的重大改变。换句话说,KitKat 通过名为“Project Svelte”(瘦身计划)的项目简化了系统每一个重要组成部分,Project Svelte能够让Android 4.4更流畅地运行在512M RAM的设备中,减少系统在运行时所需的内存,在运行高消耗内存的App时也能保持系统的流畅性,同时系统还调整了多任务机制,使用顺序执行服务的方案,避免系统卡死。开发者还可以使用“ActivityManager.isLowRamDevice”API,决定App是否驻留内存。Google会在自己的App中率先推广这一特性,升级到Android 4.4即可享受到Project Svelte带来的好处。对于高配置智能手机来说,Project Svelte则可以带来更快速的多任务响应,而低配置智能手机则保证了设备的流畅运行。
Google试图利用Project Svelte来修复Android设备的碎片化问题,确实Google在系统核心应用上的优化力度有着明显的推动力,老旧的Android设备均能独立下载安装,但笔者认为通过Android 4.4来复活过时的智能手机和平板并不现实,毕竟从高配置走向低配置并不现实。
2 更高利用率的屏幕
自Android 4.0以来,Google就一直推崇Holo设计,名为Navigaion Bar屏幕下方的黑色背景的虚拟按钮底栏就是Holo设计中不可或缺的一环。屏幕虚拟按钮底栏Navigation Bar的一大优点就是灵活性,按钮可任意定制,但实际上却并非那么灵活。在全屏应用中,屏幕上依然会显示黑色的底栏,减少了显示操作面积,并不美观。
Android 4.4对Navigation Bar虚拟按钮底栏动了手术,Android 4.4的锁屏和主界面中,底栏从黑色变透明(只在智能手机上体现,平板依旧保持原状),更加美观(如图1)。此外,系统的API还开放了相应接口,第三方App同样也能使用透明的底栏。不过,很多第三方厂商早就使用二次定制的底栏,这也仅仅局限于系统UI层面,现在Google将底栏界面改变,放宽了限制,今后App在开发过程中同样也能定制透明度与按钮,使系统尽可能地让碍眼的底栏彻底隐藏。
| Tips |
技术贴士
修改后的Navigation Bar并不适用于所有设备,无论是Nexus7或是Nexus10均不支持此项特性(如图2),Google基于什么考虑,就不得而知了。
3 更精准的语音识别
自iOS 5.0中的Siri获得成功后,各家厂商都对语音识别有了新的看法与认识,其中就有Google。Google大力发展Google Now智能语音服务,前进的步伐甚至比Siri还要快上几分。最早出现在Android 4.1系统上的Google Now,与Siri相比实用性更强,其借助了Android系统强大的搜索功能,与地图、日程、搜索的组合展示出了智能语音的通用性,特别是在升级至Android 4.4系统后,它对自然语义的解析要更优。不仅如此,Google Now的启动比Siri更迅捷,在Google Glass中可以使用“OK Glass”命令,启动智能语音系统,而在Moto X手机可以使用“OK Google”命令。这种名为“Always Listening”(即时语音)的新特性,可以让手机在待机的状态下也能够以特定命令唤醒智能语音系统。当然了,这并不是系统层面上的支持,想要获取即时语音还需要硬件支持,在Moto X与Google Glass中都内置有特定芯片,而Nexus 5使用的骁龙800处理器也有些相应的模块。如果是其他设备,就需要先点亮屏幕,才能激活“OK Google”开启语音系统(如图3)。
4 改进通讯方式
在最新的Android 4.4中,通话功能有了重大的改变,除了用于商务的智能识别来电特性外(系统根据Google地图自动搜索当地的电话簿,为用户适配号码),还重设了通讯录(如图4),系统会自动调整联系人的排列顺序,将经常联系的人放置在通讯录前列。并且通讯录的搜索功能也得到了强化,用户通过通讯录不仅可以搜索联系人,还能够搜索附近的商店以及其他App中的好友,Android 4.4的通讯录似乎变得更像是一个社交圈子。
对于及时通讯功能来说,Android 4.4系统将环聊升级到最新版,新版的环聊继承了短信、彩信功能,使得它不再履行一个单纯及时通讯功能,同时还肩负了收发短信、彩信的功能。环聊的功能远比短信应用强大,用户能够在环聊中发送地理位置、GIF动态图片等信息,并且还将语音通话和视频通话功能融入其中,不过想要让用户改变固有的使用习惯,并不是一朝一夕的事。
5 进击的蓝牙
Android 4.4中加入了对蓝牙AVRCP 1.3特性的支持,蓝牙耳机等设备可以直接调节安卓系统的音量。虽然这是个小小的改进,却带来了很多方便。不过要注意的是,这个特性只支持使用系统自带驱动的蓝牙设备,有些蓝牙设备使用了自家厂商编写的底层,就没法享受到这一特性了。
系统针对独立的音频DSP芯片进行优化,是喜欢手机听音用户最关注的,以往的系统利用手机播放音乐都需要经过应用层处理,会调用系统中央处理器,比较耗电。要改善问题,只能期望设备厂商自己编写驱动。现在,系统默认将音频输出到独立的DSP音频芯片中进行硬件解码,绕开了应用层,大大节省了电量。
虽然有不少Android 4.4新特性只能够在特定的机型上实现,但适用其他机型的特性也有不少,特别是Project Svelte与云打印功能有着出色表现(如图5),Google终于在节省资源上有了明显的动作,面对如此改变的新系统,将你手中设备升级至4.4相信不是难事,存在的只是时间问题。
android解析plist文件
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


