Android——Android lint工具项目资源清理详解

 更新时间:2016年11月16日 14:54:00   作者:dzp_coder  
这篇文章主要介绍了Android——Android lint工具项目资源清理详解的相关资料,需要的朋友可以参考下

Android——Android lint工具项目资源清理

最近维护的项目已经有两年多,经过很多前辈的迭代,项目并没有变得健壮,而变得很臃肿.用Android lint工具清理了一次,清楚了不少废弃的布局和资源.

1.     Android lint工具

可以右键项目,Android tools,退出的时候clear lint markers即可


也可以如图:


2.结果出来了,分析分析


3.xml中view太多,已经超过了80个,影响性能.

布局优化:

尽量使用include、merge、ViewStub标签,尽量不存在冗余嵌套及过于复杂布局,尽量使用GONE替换INVISIBLE,使用weight后尽量将width和heigh设置为0dp减少运算,Item存在非常复杂的嵌套时考虑使用自定义Item View来取代,减少measure与layout次数等。

 列表及Adapter优化;尽量复用getView方法中的相关View,不重复获取实例导致卡顿,列表尽量在滑动过程中不进行UI元素刷新等。

背景和图片等内存分配优化;尽量减少不必要的背景设置,图片尽量压缩处理显示,尽量避免频繁内存抖动等问题出现。

自定义View等绘图与布局优化;尽量避免在draw、measure、layout中做过于耗时及耗内存操作,尤其是draw方法中,尽量减少draw、measure、layout等执行次数。 

避免ANR,不要在UI线程中做耗时操作,遵守ANR规避守则,譬如多次数据库操作等。

activity_group_number_detail1.xml has more than 80 views, bad for performance

Issue: Checks whether a layout has too many views

Id: TooManyViews

Using too many views in a single layout is bad for performance. Consider using compound drawables or other tricks for reducing the number of views in this layout.


4.没有定义的id,删掉就ok

he id "top" is not defined anywhere.

Issue: Checks for id references in RelativeLayouts that are not defined elsewhere

Id: UnknownId


5.同一个XML重复定义id

在同个一个Xml文件的中如果ID同名,则前一个有效,而后一个无效

是不是复制粘贴的时候出错了?

Duplicate id @+id/group_imageView2, already defined earlier in this layout

Issue: Checks for duplicate ids within a single layout

Id: DuplicateIds


6.ID的引用不在同一级layout中,比如说:控件A在B(B是viewgroup)的下面,而不应该写成A在B的子控件下面.



7.废弃的四大组件,在mainfest.xml中没有清掉.删除就ok

Class referenced in the manifest, com.baidu.location.f, was not found in the project or the libraries

Issue: Ensures that classes referenced in the manifest are present in the project or libraries

Id: MissingRegistered


8.没使用的资源,这是重头戏,对于减小包的大小很有意义.其中包含了xml,dimens等.量比较大,建议先提交SVN之后再删除,如果出了问题立马可以还原.

The resource R.drawable.fc_seekbar_thumb appears to be unused

Issue: Looks for unused resources

Id: UnusedResources

9.这里检测的结果只是提供一种参考,建议用Toast.LENGTH_SHORT或者 Toast.LENGTH_LONG


10.硬编码的问题,使用Context.getFilesDir().getPath()

Do not hardcode "/data/"; use Context.getFilesDir().getPath() instead

Issue: Looks for hardcoded references to /sdcard

Id: SdCardPath

Your code should not reference the /sdcard path directly; instead use Environment.getExternalStorageDirectory().getPath().


11.大家一看就懂了,viewholder的问题



12.handler导致的内存泄漏问题

一两句话说不清,下面是已经说清楚的.

http://blog.csdn.net/lijunhuayc/article/details/47999931


13.webview的父控件,宽高建议用match_parent

提示

  Placing a <WebView> in a parent element that uses a wrap_content layout_height can lead to subtle 
 bugs; use match_parent instead  

14.I18N的问题就不说了.

总结:Android lint工具主要功能是规范编码,优化布局性能,去除无用资源.

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


相关文章

  • Android实现多进程并发控制的两种方案

    Android实现多进程并发控制的两种方案

    当一个App中存在多个进程时例如存在 主进程,辅进程两个进程,两个进程都会去向A文件中写入数据,但是我们业务中希望每次仅允许有一个进程向A文件写入内容,所以本文给大家介绍了Android实现多进程并发控制的两种方案,需要的朋友可以参考下
    2025-04-04
  • Android消息机制Handler的工作过程详解

    Android消息机制Handler的工作过程详解

    这篇文章主要为大家详细介绍了Android消息机制Handler的工作过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • android中选中菜单的显示跳转和隐式跳转的实例介绍

    android中选中菜单的显示跳转和隐式跳转的实例介绍

    android中选中菜单的显示跳转和隐式跳转的实例介绍,需要的朋友可以参考一下
    2013-05-05
  • Android架构组件Room的使用详解

    Android架构组件Room的使用详解

    Room其实就是一个orm,抽象了SQLite的使用。这篇文章给大家介绍了Android架构组件Room的使用详解,需要的朋友参考下吧
    2017-12-12
  • Android开发5:应用程序窗口小部件App Widgets的实现(附demo)

    Android开发5:应用程序窗口小部件App Widgets的实现(附demo)

    本篇文章主要介绍了android应用程序窗口小部件App Widgets的实现,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • Android应用内存优化指南

    Android应用内存优化指南

    内存优化是提升 Android 应用性能和用户体验的关键环节,内存泄漏、内存抖动、不合理的数据结构或资源占用等问题都可能导致应用卡顿、崩溃或后台被杀,本文从常见问题场景、优化方案、工具使用和最佳实践四个方面深入解析,需要的朋友可以参考下
    2025-03-03
  • Android小组件添加到主屏幕(手机桌面)的方法实例

    Android小组件添加到主屏幕(手机桌面)的方法实例

    很多在多年前使用过Android手机的朋友,可能对于Android 4.0时代盛行的桌面小组件功能有着很深的印象,下面这篇文章主要给大家介绍了关于Android小组件添加到主屏幕(手机桌面)的相关资料,需要的朋友可以参考下
    2023-06-06
  • Flutter 中的PageStorage小部件使用及最佳实践

    Flutter 中的PageStorage小部件使用及最佳实践

    在Flutter中,PageStorage小部件提供了一种方法来保存和恢复页面间的信息,这对于具有多个页面且需要在这些页面之间共享状态的应用程序非常有用,本文将详细介绍PageStorage的用途、如何使用它以及一些最佳实践,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • Android 开机自启动Service实现详解

    Android 开机自启动Service实现详解

    这篇文章主要为大家介绍了Android 开机自启动Service实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Android编程实现动态更新ListView的方法

    Android编程实现动态更新ListView的方法

    这篇文章主要介绍了Android编程实现动态更新ListView的方法,结合实例形式详细分析了ListView的布局及动态更新实现方法,需要的朋友可以参考下
    2016-02-02

最新评论