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
我是天王盖地虎的分割线
Android -- ADT变化&aar&Lint的更多相关文章
- Android代码分析工具lint学习
1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...
- Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8 (转)
Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8http://www.crifan.com/android_emulator_ ...
- 【已解决】Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8
[问题] 折腾: [已解决]Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8 过程中,增大对应AVD的内存为2G后,结果无法启 ...
- 安装ADT 提示 android ADT Unable to connect to repository
以往安装ADT根本就不是个问题,可是现在就是个大问题了,联通的宽带网络连www.google.com.hk都打不开,你叫我们这些P民怎么活? https://dl-ssl.google.com/and ...
- 最新Android ADT, SDK, SDK_tool等官方下载说明(及时更新)
1.Android SDK starter package SDK starter package http://dl.google.com/android/installer_r08-windows ...
- android ADT 设置编辑字体
新配置的android ADT 设置编辑字体的时候 可能里面没有我们想要的Courier new 这种舒服的字体 那么就在 字体选项窗口的 做下端 有个显示更多字体的链接 然后就显示微软的所有字 ...
- Android ADT 工具下载地址
/********************************************************************************* * Android ADT 工具下 ...
- MyEclipse 10 中安装Android ADT 22插件的方法
MyEclipse 10 中安装Android ADT 22插件的方法 下载ADT包:http://dl.google.com/android/ADT-22.0.0.zip 将ADT-22.0.0.z ...
- 下载最新android adt的方法
作为一名android开发人员,需要经常更新最新版本的 android adt,但是直接到官网去找很难找到下载的链接,通过下面现成的链接,你就能够直接下载最新的android adt了, 网址是:de ...
随机推荐
- BZOJ2944 : [Poi2000]代码
对于根,要让它的排名尽量小,也就是要让右子树的点数尽量多. 于是从大到小枚举右子树的点数,用Catalan数计算方案数,直到找到相应的右子树的点数为止. 此时根的排名已经确定,接下来要让左子树的代码的 ...
- 应用通信-方案一:RestTemplate
@RestController public class ClientController { @Autowired private LoadBalancerClient loadBalancerCl ...
- 黑群晖NAS安装方法(收集)/物理机/VMware虚拟机/KVM虚拟机(转)
群晖NAS系统的特点: 1.正版的群晖分为两部分,启动引导和系统文件,其中启动引导是一个闪盘,镶嵌在群晖的主板上,而系统文件是现成下载然后倒入的pat文件. 2.黑群晖破解的主要是启动引导,其实能兼容 ...
- 利用 PHP 导出 Git 某个分支下,新增或修改过的文件
使用 SVN 作为版本控制的时候,整理过一个 导出文件脚本:利用 PHP 导出 SVN 新增或修改过的文件 现在换成了 Git,整理出类似的脚本: [第一版]git.php <?php /** ...
- linux设置命令行启动
做spark,内存大的话运行很快,否则运行很慢,主节点用界面,其他用命令行,然后scp,或者ssh 去其他主机最访问 1, 关闭图形界面: [root@bogon ~]# init 3 // 关闭 ...
- [C# 基础知识系列]专题八: 深入理解泛型(二)
引言: 本专题主要是承接上一个专题要继续介绍泛型的其他内容,这里就不多说了,就直接进入本专题的内容的. 一.类型推断 在我们写泛型代码的时候经常有大量的"<"和"& ...
- setTimeout 的黑魔法 【event loop】
setTimeout,前端工程师必定会打交道的一个函数.它看上去非常的简单,朴实.有着一个很不平凡的名字--定时器.让年少的我天真的以为自己可以操纵未来.却不知朴实之中隐含着惊天大密.我还记得我第一次 ...
- OpenLdap+MySQL笔记
20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送) 国内私募机构九鼎控股打造,九鼎投资是在全国股 ...
- UITableView分割线样式与颜色
tv.separatorStyle = UITableViewCellSeparatorStyleSingleLine; //设置样式 tv.separatorColor = [UIColor c ...
- Swift - UITableView展开缩放动画
Swift - UITableView展开缩放动画 效果 源码 https://github.com/YouXianMing/Swift-Animations // // HeaderViewTapA ...