|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
很少去思考,没有去多问几个为什么。这是学习的大忌,我认识到了自己学习方法上的错误。孔子说,学而不思则罔,思而不学则殆。一点也没错,学和思是要结合的,这样才能进步。现在回想一下,我学到了什么?自己也无言以对了。Android4.4公布了新的API并为用户和开辟者到场了新的特征
我的同事偏重先容一些年夜的修改细节,但是我更存眷一些细节变更和开辟者在开辟过程当中大概会碰到的举动改动。
权限
启动快速键
在API19中已增加了INSTALL_SHORTCUT和UNINSTALL_SHORTCUT权限进发布的SDK。公然这些权限是需要的,它使得使用在设备的加载界面间接增加或删除快速图标。
这些权限实践上并非新功效。它们在Android1.x的时分就已被界说好了,在谁人时分这些权限是被界说在初始化使用内里而不是公然在SDK,以是利用了新权限的使用能够取得权限所设定的才能,同时也能运转在老版本的安卓设备上。
内部存储
内部存储的划定规矩改动了。回到4.1,读取内部存储权限被引进作为写内部存储权限的一个增补,而在谁人时分并非必需的。如今,这个权限在4.4中被增强了,可是以一种分歧平常的体例。从会见把持角度来看,内部存储被分红两个次要部分:1、App地点的目次;2、其他中央。
读取大概写进数据到你的App地点的地位,不必要任何权限。这基础能够合用任何经由过程Context内里的办法能够会见的目次,好比getExternalFilesDir()或getExternalCacheDir()。假如只利用这些目次,你乃至能够删除你的使用程序中WRITE_EXTERNAL_STORAGE权限。
为了读取内部存储上其他数据,使用必需取得READ_EXTERNAL_STAROAGE
或WRITE_EXTERNAL_STORAGE权限(二者都必要被受权读权限)。这些能够经由过程Environment取得的目次,好比Environment内里的getExternalStoragePublicDirectory()或getExternalStorageDirectory()函数。
更天真的办法
与体系办理的计时器相干的周期性举动在默许情形下会变得更天真,好比计时器中的AlarmManager和SyncAdapter。如许做的目标是,同意体系尽量批量处置事务而且削减设备上的叫醒事务以勤俭电量。
之前的准确办法AlarmManger.set()和AlarmManger.setRepeating(),如今的举动更靠近于AlarmManger.setInexactRepeating()而且附属于事务批处置。
从4.4入手下手,没有任何办法能够创立一个反复的准确闹钟。假如你必要闹钟准确而且可反复,必需挪用新的setExact()办法而且在每一个触发事务中设置新的闹钟。
假如你利用SyncAdapter,由ContentResolver.addPeriodicSync()供应的周期性同步举动在计划上撑持一些弹性。这使得在4.4中增添了一个4%同步周期窗口(好比在一个小时的同步周期中占用2.5分钟)。别的,新的SyncRequest.BuilderAPI已被同意一次大概有一些把持的弹性周期按期同步。好比SyncRequest.Builder.syncPeriodic()实行基础的函数,好比addPeriodicSyn()。能够撑持工夫距离,这个工夫距离使得在同步时分适配器能够被优化,变得平安且天真。
由于这些功效是必要显现设置targetSdkVersion为最少19,以是在这个版本之下的并没有这些改动。可是一旦增添了这个版本必需出格注重而且测试你的使用的兼容性。临时来讲,尽量撑持天真时钟和同步将使你的使用尊敬设备的电池从而提拔收拾用户体验。
位图重用
为了更进一步匡助使用程序削减内存占用,android4.4创建了重用位图分派的API。复杂来讲位图分派使得开辟者很快到达堆限定。从Android3.0入手下手,利用BitmapFactory解码数据时分就能够重用位图实例(利用BitmapFactory.Options中的inBitmap),可是束缚相称的年夜。图片必需刚好是一样的尺寸和设置,而且只同意JPEG/PNG解码。
在Android4.4中,我们如今有Bitmap.reconfigure()往修正和使得现有的实例往顺应新的尺寸和像素设置。BitmapFactory已被更新,之前在没有这些束缚的前提下经由过程重设置能够重用inBitmap。
可是束缚仍是存在的。当位图被创立,它有尺寸巨细和设置,个中设置界说了分派的总字节数。关于实例来讲这类初始分派巨细是不克不及被改动的。以是当我们屡次重设置位图时,每次改动都不成以让必要的字节数凌驾初始分派巨细。
举个例子,能够平安的重设置一个ARGB_8888200*200实例为ARGB_8888100*100,大概300*300RGB_565,为一切的这些与初始分派相顺应。假如试图重设置到ARGB_8888300*300,如许会抛出非常。别的一点也很主要,当位图被毗连到视图的时分,不克不及重设置。应当在这个元素被分别大概移出屏幕。
换句话说,假如你的使用程序可断定一个符合巨细的单个实例,即便它大概比必要在任何给准时间的像素较年夜,仍旧能够削减内存利用。单个360KB点阵图重用为300 |
|