移动app开发是一个漫长而费力的过程。然而,现在的企业总是希望能够尽快发布app。幸运的是,我们有很多帮助移动开发人员加快工作步伐的工具。
可用的工具集随着移动平台新版本的出现而不断更新。是的,我们很难紧跟所有创新的脚步。这同样适用于通常不被公布的附加功能,尽管它们在常规作业中真的非常有用。
特别是,在创建移动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="ContentDeion"
从根本上说tools:ignore类似于Java的@SupressWarning注解。
tools:targetApi
tools:targetApi和@TargetApi注解的工作方式相同,它显示了app将使用的最低API版本。举个例子,如果你正在应用Android KitKat,并且项目中最低的API版本是21。在这种情况下,你只要在代码中写下tools:targetApi以及适合的版本号即可。这可以避免恼人的Lint警告。
tools:locale
这个属性可以帮助你配置语言,并关闭关于错误拼写的Lint警告。例如,如果你的字符串仅包含西班牙文本,那么你可以设置“西班牙语为默认”:
<resources xmlns:tools="https://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的新的注释并定义它的具体数值。
3.Cut&Slice me
任务:接收位图图形所有显示分辨率的选项。
解决办法:Photoshop插件Cut&Slice me
Cut&Slice me仅允许通过按下一个按钮来生成位图图形的切割。它用于实施所有显示分辨率和状态(启用,禁用,按下)。对于Android,resource会被自动传送到不同的文件夹(drawable-xxhdpi, drawable-xhdpi,..),对于iOS,正确的名称前缀会被创建((@2x, @3x)。
我们从2013年开始活跃地使用插件Cut&Slice me。并且它在Android以及iOS开发人员中很受欢迎。
4. LeakCanary
任务:及时检测内存泄漏以防止OutOfMemoryError崩溃,并降低app内存溢出的风险。
LeakCanary有助于在调试构建运行时检测内存泄漏,并提供舒适的UI用于堆栈跟踪历史。
大多数时候,开发人员必须手动查找内存泄漏。首先,他们要揭开OutOfMemoryError崩溃。然后使用不同的设备,他们尝试重现可导致错误的问题。此外,他们希望能够跟随会导致泄漏的操作的序列。他们创造了内存转储,并详细研究以发现应该垃圾回收的对象。然后,他们制作从对象到垃圾回收的最短引用路径,并且最后,他们得到激起内存泄漏的引用。
LeakCanary允许自动化所有的搜索研究,并能很快找到所有的泄漏。还有一个附加优点涉及到发送有关于泄漏的数据到服务器,并排除反射引用和来自于方法的特定活动。
总之,我们可以说,Android开发者有各种不同的工具可用于促进app开发过程。特别是,对于移动开发人员,还存在着一系列被遗忘或甚至是不知道的解决方案,如Tools Attributes,Support Annotations, Cut&Slice me,LeakCanary,以及bug reporting systems。关于最后那个提到的工具,我们将在以后深入探讨。选择什么工具主要取决于开发人员个人的喜好和具体的项目情况。
如果你愿意告诉我你认为必须拥有的工具,那么非常欢迎在评论中畅所欲言。期待听到不同的声音。
祝大家都能代码整洁,项目成功!
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » app开发都需要什么软件(app开发需要的软件)
1 评论