好贷网好贷款

对 Android 开发者有益的 40 条优化建议(二)

发布时间:2016-12-3 12:39:54 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"对 Android 开发者有益的 40 条优化建议(二)",主要涉及到对 Android 开发者有益的 40 条优化建议(二)方面的内容,对于对 Android 开发者有益的 40 条优化建议(二)感兴趣的同学可以参考一下。

建议22:在Honeycomb之前的版本里时不存在ActionBar跟很多 animation  样式的,所以可以使用ActionBarSherlock 跟NineOldAndroids来代替。Jake Wharton写的Android开源 组件都是往下兼容的精心杰作。更为惊喜的是,ABS 拥有强大的功能用来定义ActionBar。 把速度作为目标 建议23:在运行慢的手机上测试。你将在运行慢的手机上发现很多问题,同时它让你抓狂,没人会喜欢运行慢的程序。  建议24:尽量减少XML布局层次。更多的层次意味着系统将为解析你的代码付出更多的工作,这将会让图像渲染的更慢。  建议25:用Android Lint。在工程目录上右键选择Eclipse>Android Tools>Run Lint。它将会得到程序的一些信息,并能提高程序的运行速度,或者它能让你得代码更加清爽。  建议26:Android Lint可以得到错误信息。它可以给你的代码提供很详细的信息,并在你出错之前就可以给做出提示。  建议27:用<merge>可以帮助你减少视图层次结构。这是一种简单的方式来去除多余的层次。好的文章都对此有所解释,而且在 Android Developer中它也显得与众不同。  建议28:用HierarchyViewer可以直观的看到你布局的层次。这个智能的工具可以显示布局中有多少层次,而且可以提示出那些可以让程序变慢。  建议29:如果可以尽量用RelativeLayout。AbsoluteLayout已经过期了,就不要用了。你经常会遇到在RelativeLayout和LinearLayout中做出选择的情况,那就直接用RelativeLayouot吧,因为它可以让你减少视图层次。比如,你想实现一个如下视图: 盒子 A 在屏幕左半边 |盒子 B在屏幕右半边 你首先会想到这么做: <LinearLayout android:layout_width=”match_parent” android:layout_height=”wrap_content” android:orientation=”horizontal” > <TextView android:text=”Box A takes up left half of the screen” android:layout_width=”0dip” android:layout_height=”wrap_content” android:layout_weight=”1″ /> <TextView android:text=”Box B takes up left half of the screen” android:layout_width=”0dip” android:layout_height=”wrap_content” android:layout_weight=”1″ /> </LinearLayout> That works just fine, but you could also use: <RelativeLayout android:layout_width=”match_parent” android:layout_height=”wrap_content” android:orientation=”horizontal” > <TextView android:text=”Box A takes up left half of the screen” android:layout_width=”match_parent” android:layout_height=”wrap_content” android:layout_toLeftOf=”@+id/dummy_center” /> <View android:id=”@+id/dummy_center” android:layout_width=”0dip” android:layout_height=”0dip” android:layout_gravity=”center” /> <TextView android:text=”Box B takes up left half of the screen” android:layout_width=”match_parent” android:layout_height=”wrap_content” android:layout_toRightOf=”@+id/dummy_center” /> </RelativeLayout> 第二个表单比第一个难看的多,事实上是相当的糟糕:我们已经介绍过一个完整的新元素了。但是假如我们要给每个盒子里加入一个图片,一般的我们将这样做: 盒子 A 在屏幕左半边 图片|盒子 B在屏幕右半边 图片 用第一中方法,你得创建一个有两个层次的LinearLayout,如果用第二种方法,你可以直接在同一个RelativeLayout中加入图片,比如要指定第一个图片必须在“dummy_center”的左边,而且一个TextView A必须也在其左侧。那么你就得用7个元素3个视图层次了(LinearLayout 方式),而(RelativeLayout方式)只用6个元素2个层次,这样所有的工作添加完成。 建议30:用一些扩展工具如DDMS。这可以帮助你发现一些不必要的网络调用、查看电池使用量、垃圾回收信息,状态变化(例子:当回调onStop和onDestroy时)等。LittleEye是我目前比较喜欢的工具。  建议31:用AsyncTasks。Anroid工程团队受够了人们经常在UI线程里面实现网络调用(译注:耗时操作,容易阻塞UI刷新),所以他们实现了一些可产生编译级错误信息的API。但是仍然在很多app中的一些工作会拖垮UI线程,我们要考虑到UI布局要快以及提高UI的响应性。 目标机器空间小 建议32:一些Aandroid设备有100mb空间大小的限制。现在情况已有变化了,但是仍然有很多用户还会担心5Mb大小的app会浪费空间。如果你可以选择将app装入SD卡的话,这就不是问题了,但如果你的app需要在onBoot里启动的话你就不能装入SD卡了(例子:如一些窗体小部件).甚至对于一些新的设备,如果能很快的下载一个小的APK的话,用户还是很高兴的。  建议33:用XML资源(我发誓上次我已经提醒过了),这将比PNG资源节省很多空间,当你仅仅需要一个可以满足很多屏幕大小的配置时,一个XML文件会比能实现同样功能的PNG省空间。 建议34:如果要用PNG,最好优化一下(用PNGCrush或ImageOptim)  目标bugs 建议35:在Android开发者控制台里检查所有被自动检测出来的bugs.  建议36: ProGuard现在是默认启动着的. Proguard太好用了 (提高你app的速度和降低文件大小),但这也让StackTraces 非常难以处理。你将需要重新追踪你的StackTraces,因此你将需要继续保留在每次构建中创建的Proguard的映射文件。我把它们都放到以代码版本号命名的文件夹里。  建议37: 为了显示StackTraces里的行数,你需要修改ProGuard的配置。确认你的proguard.cfg拥有下面这句话:  -keepattributes SourceFile,LineNumberTable  建议38:使用staged rollouts。测试5%的基础用户,并且观察bug报告。  建议39:使用真实设备测试平台。Device Anywhere and Perfecto Mobile提供了虚拟测试平台,在那里,你可以使用真正的移动设备。我发现他们有一些笨拙,加入连续不断地进行测试的话,会导致有一些糟糕的情况。如果你在联合办公的环境里工作,或者有一些Android开发的好友,那么去启动一个“设备池”吧。  建议40: 多写代码少写博客。其实不是的, 分享就是关爱, 我只是想不出第40条写什么是了。 

上一篇:编写一个简单的C++程序
下一篇:根据字符串创建ftp目录 并按照日期建立子目录返回

相关文章

相关评论