zoukankan      html  css  js  c++  java
  • Android -- ADT变化&aar&Lint

    Switch Case

    switch case 常用的使用方法:

    switch(v.getId()){
    	case R.id.btn1:
      		doClick1();
      	break;
    }
    

    在ADT中的改变

    在正常的 Android 项目中,资源R类里的常量是这样声明的:

    public static final int main=0x7f030004;
    

    然而,到 ADT 14为止,在类库项目中,他们会被这样声明:

    public static int main=0x7f030004;
    

    原因

    在库项目中这些常量都不是final的。原因很简单:当多个库项目整合时,字段的实际值(必须是唯一的)可能会出现碰撞。在ADT 14 之前,所有这样的字段都是final的,所以导致所有的库被使用的时候,主项目必须编译他们的所有资源和相关 Java 代码。这样的性能是很差的,因为它使构建的速度非常慢。它还阻碍了不包含源代码的库项目的分发,限制库项目的使用范围。

    字段不再是 final 的原因是意味着库jar包可以只编译一次,并且能直接在其他项目中复用。以及允许分发库项目的二进制版本(将在 r15出现),这使得构建更快

    影响

    以下代码不能再编译通过:

    switch(v.getId()){
    	case R.id.btn1:
      		doClick1();
      	break;
    }
    

    只能换成:

    if(v.getId() == R.id.btn1){
    	doClick1();
    }
    //else if(...){....}else{...}
    

    我是天王盖地虎的分割线

    aar

    “aar”包是 Android 的类库项目的二进制发行包。

    文件扩展名是.aar,maven 项目类型应该也是aar,但文件本身是带有以下各项的 zip 文件:

    • /AndroidManifest.xml (mandatory)

    • /classes.jar (mandatory)

    • /res/ (mandatory)

    • /R.txt (mandatory)

    • /assets/ (optional)

    • /libs/.jar (optional)

    • /jni//.so (optional)

    • /proguard.txt (optional)

    • /lint.jar (optional)

      这些条目是直接位 zip 文件根目录的。

    R.txt 文件是aapt带参数--output-text-symbols的输出结果。

    我是天王盖地虎的分割线

    Lint

    Android lint工具是一个静态代码分析工具,检查你的Android项目源文件潜在的bug,并优化改进,确保正确性、安全性、性能、可用性、可访问性和国际化。

    概述

    Android SDK提供了一个代码扫描工具,称为lint。可以帮助您轻松地识别并纠正问题与结构质量的代码,不必执行应用程序或编写任何测试用例。每个问题检测到该工具报告的一个描述消息和严重性级别,您可以快速地优先考虑的关键改进。您还可以配置一个问题的严重性级别,忽略不相关的问题,或提高的严重程度。这个工具有一个命令行接口,所以您可以很容易地集成到您的自动化测试过程。

    Lint 工具可以检查你android工程潜在的bug和优化改进,以确保正确性、安全性、性能、可用性、可访问性和国际性。您可以从命令行运行lint,或eclipse中运行lint。

    lint优点

    除了测试Android应用程序满足其功能需求,重要的是要确保代码没有结构性问题。代码结构简陋的可靠性和效率的影响你的Android应用程序,使您的代码很难维护。例如,如果XML资源文件包含未使用的名称空间,这占用空间并产生不必要的处理。其他的结构性问题,比如使用弃用元素或API调用所不支持的目标API版本,可能会导致代码未能正确地运行。

    Android lint是在ADT 16提供的新工具,它是一个代码扫描工具,能够帮助我们识别代码结构存在的问题。主要包括:

    • 布局性能(以前是 layoutopt工具,可以解决无用布局、嵌套太多、布局太多)

    • 未使用到资源

    • 不一致的数组大小

    • 国际化问题(硬编码)

    • 图标的问题(重复的图标,错误的大小)

    • 可用性问题(如不指定的文本字段的输入型)

    • manifest文件的错误

    命令行用法

    lint是命令工具,在SDK 的tools/ 目录下:

    $ lint /src/
    可以通过添加 --disable argument,禁用一个特定的检查,或一列的检查,例如:

    $ lint --disable MissingTranslation,UnusedIds,Usability:Icons /src/
    可以通过--check标志指定运行哪些确切的检查。这让你可以在代码库中查找一个具体的问题,比如:

    $ lint --check MissingPrefix /src/
    使用--show命令加上 id 列表或类别 (或不带参数查看全部)可以获取指定的问题的解释:

    $ lint --show MissingPrefix
    要生成 HTML 报告,只需要添加--html* 文件名* 作为参数:

    $ lint --html /tmp/report.html
    运行lint --help以获取可用参数的相关信息。

    更多

    http://developer.android.com/tools/help/lint.html

    我是天王盖地虎的分割线

  • 相关阅读:
    BZOJ4821 SDOI2017相关分析(线段树)
    BZOJ3167/BZOJ4824 HEOI2013SAO/CQOI2017老C的键盘(树形dp)
    BZOJ4820 SDOI2017硬币游戏(概率期望+高斯消元+kmp)
    BZOJ4811 Ynoi2017由乃的OJ(树链剖分+线段树)
    BZOJ4810 Ynoi2017由乃的玉米田(莫队+bitset)
    Codeforces Round #522 Div. 1 没打记
    BZOJ4784 ZJOI2017仙人掌(树形dp+dfs树)
    43. Multiply Strings
    2. Add Two Numbers
    150. Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/yydcdut/p/4783337.html
Copyright © 2011-2022 走看看