android tools:showin,高效Android开发者必须知道的4个工具

本文介绍了Android开发者必备的四个工具:ToolsAttributes用于检查UI元素,避免意外;SupportAnnotations用于提前发现并修复代码错误;Cut&SliceMe生成适应不同分辨率的位图;LeakCanary检测并预防内存泄漏。这些工具助力高效开发,减少问题发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原标题:高效Android开发者必须知道的4个工具

移动app开发是一个漫长而费力的过程。然而,现在的企业总是希望能够尽快发布app。幸运的是,我们有很多帮助移动开发人员加快工作步伐的工具。

可用的工具集随着移动平台新版本的出现而不断更新。是的,我们很难紧跟所有创新的脚步。这同样适用于通常不被公布的附加功能,尽管它们在常规作业中真的非常有用。

afe7abd1ad176189ba30005f5cdbdb7e.png

特别是,在创建移动app的时候,每个Android开发者必须解决一系列的问题。例如:

在布局运行到设备之前先检查它看上去如何

运行代码检查工具,如Lint:在编译之前很难发现代码中的错误

为位图图形的所有显示分辨率和状态(启用,禁用,按压等)提供选择选项,并将它们导出到不同的数字设备

在调试app构建中的开发阶段检测内存泄漏

有经验的开发人员可以轻松地处理上述任务。然而,快速而高效解决紧迫问题的方法并不是每个人都知道的。下面让我们为大家详细介绍一些高效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类似于Java的@SupressWarning注解。

tools:targetApi

tools:targetApi和@TargetApi注解的工作方式相同,它显示了app将使用的最低API版本。举个例子,如果你正在应用Android KitKat,并且项目中最低的API版本是21。在这种情况下,你只要在代码中写下tools:targetApi以及适合的版本号即可。这可以避免恼人的Lint警告。

tools:locale

这个属性可以帮助你配置语言,并关闭关于错误拼写的Lint警告。例如,如果你的字符串仅包含西班牙文本,那么你可以设置“西班牙语为默认”:

这样,你就将西班牙语设置为默认语言,并且会检查西班牙语的拼写。

至于Design Attributes,可以大大便利创建开发框架中的XML布局。

Design Attributes包括:

tools:context

tools:context可用来显示开发框架选择什么活动类来实施布局。使用这个属性,Android Studio会自动选择所需的主题用于预览。

tools:showIn

tools:showIn有助于指出想要哪个布局在预览中显示。例如:

用来包括布局。通过这样做,开发人员就告诉了框架在哪个地方inflate什么特定布局。

tools:listitem, listheader, listfooter

你可以轻松地用特定布局调整组件视图,以便于分开list、header和footer的元素。例如:

tools:layout

使用tools:layout属性,可以在运行时屏幕上显示片段标签布局:

因此,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的新的注释并定义它的具体数值。

3.Cut&Slice me

任务:接收位图图形所有显示分辨率的选项。

a421f1093958070a9f0bbb5327a91731.png

解决办法:Photoshop插件Cut&Slice me

仅允许通过按下一个按钮来生成位图图形的切割。它用于实施所有显示分辨率和状态(启用,禁用,按下)。对于Android,resource会被自动传送到不同的文件夹(drawable-xxhdpi, drawable-xhdpi,..),对于iOS,正确的名称前缀会被创建((@2x, @3x)。

4f05820e51af368be876f433a1f0249c.png

我们从2013年开始活跃地使用插件Cut&Slice me。并且它在Android以及iOS开发人员中很受欢迎。

4. LeakCanary

任务:及时检测内存泄漏以防止OutOfMemoryError崩溃,并降低app内存溢出的风险。

解决方案:库

LeakCanary有助于在调试构建运行时检测内存泄漏,并提供舒适的UI用于堆栈跟踪历史。

cc886c06791dfd645d82a4fca63847d4.png

大多数时候,开发人员必须手动查找内存泄漏。首先,他们要揭开OutOfMemoryError崩溃。然后使用不同的设备,他们尝试重现可导致错误的问题。此外,他们希望能够跟随会导致泄漏的操作的序列。他们创造了内存转储,并详细研究以发现应该垃圾回收的对象。然后,他们制作从对象到垃圾回收的最短引用路径,并且最后,他们得到激起内存泄漏的引用。

LeakCanary允许自动化所有的搜索研究,并能很快找到所有的泄漏。还有一个附加优点涉及到发送有关于泄漏的数据到服务器,并排除反射引用和来自于方法的特定活动。

总之,我们可以说,Android开发者有各种不同的工具可用于促进app开发过程。特别是,对于移动开发人员,还存在着一系列被遗忘或甚至是不知道的解决方案,如Tools Attributes,Support Annotations, Cut&Slice me,LeakCanary,以及bug reporting systems。关于最后那个提到的工具,我们将在以后深入探讨。选择什么工具主要取决于开发人员个人的喜好和具体的项目情况。

如果你愿意告诉我你认为必须拥有的工具,那么非常欢迎在评论中畅所欲言。期待听到不同的声音。

祝大家都能代码整洁,项目成功!返回搜狐,查看更多

责任编辑:

README for preparing SD/MMC/Micro-SD CARD for booting Android Pre-Requesites -------------- 1) Need to have an SD/MMC/Micro-SD card with atleast 2GB of size. 2) The script needs to be invoked from ubuntu linux machine 8.04 or above. 3) User needs to have sudo privileges. What script will do ------------------- The mkmmc-android.sh partitions the MMC/SD card into three partiions namely boot, rootfs and data. The script will then put the boot images on boot partition and extracts the android rootfs-rootfs_*.tar.bz2 to rootfs partition. Finally the script will copy the Media clips to the data partition and START_HERE folder to boot partition. How to invoke the script ------------------------ There are three ways of invoking this script. 1) Command: sudo ./mkmmc-android <device> <MLO> <u-boot.bin> <uImage> <boot.scr> <rootfs tar.bz2 > <Media_Clips> <START_HERE Location> Example: sudo ./mkmmc-android /dev/sdc MLO u-boot.bin uImage boot.scr rootfs.tar.bz2 Media_Clips Details: In this case, the script will take Boot Images (MLO,u-boot.bin, uImage and boot.scr) Root Filesystem tarball, Media Clips and START_HERE folder as arguements. The script will then put the boot images on boot partition, extract the android rootfs-rootfs_*.tar.bz2 to rootfs partition. Finally the script will copy the Media clips to the data partition and START_HERE folder to boot partition. 2) Command: sudo ./mkmmc-android <device> <MLO> <u-boot.bin> <uImage> <boot.scr> <rootfs tar.bz2 > Example: sudo ./mkmmc-android /dev/sdc MLO u-boot.bin uImage boot.scr rootfs.tar.bz2 Details: In this case, the script will take Boot Images (MLO,u-boot.bin, uImage and boot.scr) and Root Filesystem tarball as arguements. The script will then put the boot images on boot partition, extract the android rootfs-rootfs_*.tar.bz2 to rootfs partition. The data partiton will be left empty in this case. 3) Command: sudo ./mkmmc-android.sh <device> Example: sudo ./mkmmc-android.sh /dev/sdc Details: In this case, the script will assume default locations for BootImages, Root Filesystem, Media_Clips and START_HERE. This command is equivalent to the following sudo ./mkmmc-android /dev/sdc Boot_Images/MLO Boot_Images/u-boot.bin Boot_Images/uImage Boot_Images/boot.scr Filesystem/rootfs.tar.bz2 Media_Clips START_HERE If you are in a particular Board Specific Directory, extracted from DevKit Release, then you can prepare the sd card by executing sudo ./mkmmc-android.sh <device>, to prepare sd card.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值