可用的工具集随着移动平台新版本的出现而不断更新。是的,我们很难紧跟所有创新的脚步。这同样适用于通常不被公布的附加功能,尽管它们在常规作业中真的非常有用。
特别是,在创建移动app的时候,每个Android开发者必须解决一系列的问题。例如:
- 在布局运行到设备之前先检查它看上去如何
- 运行代码检查工具,如Lint:在编译之前很难发现代码中的错误
- 为位图图形的所有显示分辨率和状态(启用,禁用,按压等)提供选择选项,并将它们导出到不同的数字设备
- 在调试app构建中的开发阶段检测内存泄漏
有经验的开发人员可以轻松地处理上述任务。然而,快速而高效解决紧迫问题的方法并不是每个人都知道的。下面让郑州Android培训为大家详细介绍一些高效Android开发中必知的好工具。
1.Tools Attributes
任务:检查UI元素在开发阶段是什么样的,避免它们在**终构建中出意外。
Tools Attributes可以使用额外的命名空间来帮助管理Android Studio,这样开发框架就不会传输运行时版本的属性到**终构建。
看似Android开发人员只有一种方法来检查成品布局——在设备上运行它。但是,你还可以使用内置于开发框架的Tools Attributes,在我们的例子中所使用的框架是Android Studio。
Tools Attributes的两个主要类别:
- Lint Attributes
- Design Attributes
作为一个静态分析工具,Lint被用于很多编程语言和软件平台。应用Lint Attributes有助于协调Lint工作。
下面是一些具体的Lint Attributes:
tools:ignore
tools:ignore属性允许你建立Lint工具来禁止XML文件中特定属性的警告。例如:
tools:ignore="ContentDescription"从根本上说tools:ignore类似于Java的@SupressWarning注解。
tools:targetApi
tools:targetApi和@TargetApi注解的工作方式相同,它显示了app将使用的**API版本。举个例子,如果你正在应用Android KitKat,并且项目中**的API版本是21。在这种情况下,你只要在代码中写下tools:targetApi以及适合的版本号即可。这可以避免恼人的Lint警告。
tools:locale
这个属性可以帮助你配置语言,并关闭关于错误拼写的Lint警告。例如,如果你的字符串仅包含西班牙文本,那么你可以设置“西班牙语为默认”:
<resources xmlns:tools="http://schemas.android.com/tools" tools:locale="es">这样,你就将西班牙语设置为默认语言,并且会检查西班牙语的拼写。
至于Design Attributes,可以大大便利创建开发框架中的XML布局。
Design Attributes包括:
tools:context
tools:context可用来显示开发框架选择什么活动类来实施布局。使用这个属性,Android Studio会自动选择所需的主题用于预览。
tools:showIn
tools:showIn有助于指出想要哪个布局在预览中显示。例如:
tools:showIn="@layout/activity_main"用来包括布局。通过这样做,开发人员就告诉了框架在哪个地方inflate什么特定布局。
tools:listitem, listheader, listfooter
你可以轻松地用特定布局调整组件视图,以便于分开list、header和footer的元素。例如:
tools:layout
使用tools:layout属性,可以在运行时屏幕上显示片段标签布局:
tools:layout="@android:layout/list_content"因此,Tools Attributes可以帮助开发人员确保他们总是能够远离在**终app构建中显示临时文本的风险。
2.Support Annotations
任务:在编译前检查代码中的可能错误,并且为了防止错误,对代码做一个全面的审查。
Android Support Library Annotations可以帮助Android Studio提升代码。它从Android Studio 1.3.0开始有用。对于之前的版本,你需要单独插入注解。
Android Support Annotations Library允许你在开发下找app中的bug。添加注解到项目,开发人员就可以让保持纯代码的任务变得更容易。
Support Annotations可分为:
- Nullness Annotations
- @Nullable, @NonNull
Nullness Annotations的目的是检查null。它们可被应用于代码字段,参数和方法。使用这些完全没有注解的注解的主要区别在于,Nullness Annotations只定义变量是否具有“null”值。
- Resource Annotations
- @StringRes, @DrawableRes, @ColorRes
在编码时,移动开发者经常引用字符串、图像等资源。使用Resource Annotations可以强制输入的文本。例如,通过添加resource annotation @ColorRes,当你试图输入颜色代码,而不是引用resource ID的时候,就会得到框架警告。没有注解,IDE就不反应,因为代码以及resource ID的引用的期望类型为int。
- ColorInt Annotations
- @ColorInt
@ColorInt是@ColorRes的相反注解。在这种情况下,你定义方法不引用resource ID,而是引用具体的颜色。应用@ColorInt Annotations可以让你快速找到错误,如果方法呼吁颜色资源ID的话。
- Thread Annotations
- @UiThread,@MainThread,@WorkerThread,@BinderThread
这些注解的目的是确定方法和特定类型的线程之间的连接。
- Value Constraint Annotations
- @Size(min = 5), @IntRange(from = 0, to = 12), @FloatRange(…)
在编码时使用参数的正常值几乎是不可能的。要定义可能的值的范围,你可以添加@IntRange或@FloatRange注解。如果你想限制数据数组、集合或线程中字符串的大小或长度,那么@Size注解将是一个极好的工具。
- Permission Annotations
- @RequestPremission(Manifest.permission.ACCESS_FINE_LOCATION)
使用Permission Annotations,你可以验证一个权限或一列权限。每当app引用方法时,它会提供确认,并且这列权限对你开放。如果权限不存在,你会在代码中发现错误。
- CallSuper Annotations
- @CallSuper
当你需要调用方法的super实现时可以使用这个注解。
- Enumerated Annotations
- IntDef和StringDef
这种类型的注释允许创建用于替换一些枚举常数值的广义定义。例如,你有IceCreamFlavourManager类,它包括3个模式:VANILLA(香草),CHOCOLATE(巧克力)和STRAWBERRY(草莓)。使用@IntDef,你就可以创建一个名为@Flavour的新的注释并定义它的具体数值。
QQ:2290909800 QQ交流群:493076664;97682894;咨询电话(Phone):0371-55397597 15838221845(手机)
地址(Address): 郑州市高新区莲花街牡丹路教育科技产业园区B座 网址(website):http://hn.lanou3g.com/