Android开发贴士集合

Activity.startActivities()——对于从app流的中部启动会非常好。

TextUtils.isEmpty()——一个普遍适用的简单工具类。

Html.fromHtml()——格式化Html的快速方法,本人认为它也不是非常快,所以我不是经常用它(我说不经常用它是为了重点突出这句话:请多手动构建Spannable来替换Html.fromHtml),但是它对渲染从web上获取的文字还是很不错的。

TextView.setError()——在验证用户输入的时候用户体验很不错。

Build.VERSION_CODES——它不仅仅描述了版本号,还总结了各Android版本的不同特性。

Log.getStackTraceString()——方便的日志工具。

LayoutInflater.from()——简化一系列冗长的getSystemService()调用的简单工具。

ViewConfiguration.getScaledTouchSlop()——使用ViewConfiguration中提供的值以保证所有触摸的交互都是统一的。

PhoneNumberUtils.convertKeypadLettersToDigits——使得处理电话号码更方便,很多人都只提供字母,而不是数字。

Context.getCacheDir()——使用系统提供的缓存目录进行数据缓存,操作非常简单不过很多人不知道怎么使用。

ArgbEvaluators——处理颜色的渐变。就像Chris Banes说的一样,这个类会进行很多自动装箱的操作,所以最好还是去掉它的逻辑自己去实现它。

ContextThemeWrapper——方便在运行过程中更改主题。

Space——轻量级的视图组件,可以跳过绘制的过程,对于需要占位符的任何场景来说都是很棒的。

ValueAnimator.reverse()——可以顺畅地取消动画效果,很赞。

DateUtils.formatDateTime()——提供区域格式化时间/日期字符串的一站式服务。

AlarmManager.setInexactRepeating——通过闹铃分组的方式来节省电量,即使你只调用一个alarm实例,它仍然比较好用(可以确保在使用完毕时自动调用AlarmManager.cancel()。

Formatter.formatFileSize()——一个区域化的文件大小格式化工具。

ActionBar.hide() / .show()——可以在actionBar显示或者隐藏的时候进行动画展示。可以在切换到全屏的时候更优雅。

Linkify.addLinks()——可以控制在Text上添加链接。

StaticLayout——在自定义View中渲染文字的时候很实用。

Activity.onBackPressed()——方便控制返回按钮,在需要自定义返回键的操作时候,可以用到。

GestureDetector——可以监听动作事件和相关的监听器事件(点击,滚动,滑动等)。比自己实现系统的一些动作事件更简单。

DrawFilter——可以让你操作Canvas,即使没有调用draw方法。例如,可以在创建自定义View的时候设置一个DrawFilter,给父View里面的所有View设置反别名。

ActivityManager.getMemoryClass()——可以让你清楚知道设备还剩多少内存。在计算怎么设置缓存大小的时候就很有用。

SystemClock.sleep()——这个方法在保证一定时间的sleep时很方便,通常我用来进行debug和模拟网络延时。

ViewStub——它是一个初始化不做任何事情的View,但是之后可以载入一个布局文件。在慢加载View中很适合做占位符。唯一的缺点就是不支持标签,所以如果你不太小心的话,可能会在视图结构中加入不需要的嵌套。

DisplayMetrics.density——通过这个方法可以获取屏幕的密度,很多时候需要去掉系统自动缩放精度的功能,但是有时候在控制的时候也很有用(尤其是在自定义View的时候)。

Pair.create()——方便构建类和构造器的方法。

UrlQuerySanitizer——使用这个工具可以方便对URL进行检查。

Fragment.setArguments——因为在构建Fragment的时候不能加参数,所以这是个很好的东西,可以在创建Fragment之前设置参数(即使在configuration改变的时候仍然会导致销毁/重建)。

DialogFragment.setShowsDialog()——这是一个很巧妙的方式,DialogFragment可以作为正常的Fragment显示!这里可以让Fragment承担双重任务。我通常在创建Fragment的时候把onCreateView()和onCreateDialog()都加上,就可以创建一个具有双重目的的Fragment。

FragmentManager.enableDebugLogging()——在需要观察Fragment状态的时候会有帮助。

LocalBroadcastManager——这个会比全局的broadcast更加安全,简单,快速。像otto这样的Event buses机制对你的应用场景更加有用。

PhoneNumberUtils.formatNumber()——顾名思义,这是对数字进行格式化操作的时候用的。

Region.op()——我发现在对比两个渲染之前的区域的时候很实用,如果你有两条路径,那么怎么知道它们是不是会重叠呢?使用这个方法就可以做到。

Application.registerActivityLifecycleCallbacks——虽然缺少官方文档解释,不过我想它就是注册Activity的生命周期的一些回调方法(顾名思义),就是一个方便的工具。

versionNameSuffix——这个gradle设置可以让你在基于不同构建类型的manifest中修改版本名这个属性,例如,如果需要在在debug版本中以”-SNAPSHOT”结尾,那么就可以轻松的看出当前是debug版还是release版。

CursorJoiner——如果你是只使用一个数据库的话,使用SQL中的join就可以了,但是如果收到的数据是来自两个独立的ContentProvider,那么CursorJoiner就很实用了。

Genymotion——一个非常快的Android模拟器,本人一直在用。

-nodpi——在没有特别定义的情况下,很多修饰符(-mdpi,-hdpi,-xdpi等等)都会默认自动缩放assets/dimensions,有时候我们需要保持显示一致,这种情况下就可以使用 -nodpi。

BroadcastRecevier.setDebugUnregister()——又一个方便的调试工具。

Activity.recreate()——强制让Activity重建。

PackageManager.checkSignatures()——如果同时安装了两个app的话,可以用这个方法检查。如果不进行签名检查的话,其他人可以轻易通过使用一样的包名来模仿你的app。

Activity.isChangingConfigurations()——如果在Activity中configuration会经常改变的话,使用这个方法就可以不用手动做保存状态的工作了。

SearchRecentSuggestionsProvider——可以创建最近提示效果的provider,是一个简单快速的方法。

ViewTreeObserver——这是一个很棒的工具。可以进入到VIew里面,并监控View结构的各种状态,通常我都用来做View的测量操作(自定义视图中经常用到)。

org.gradle.daemon=true——这句话可以帮助减少Gradle构建的时间,仅在命令行编译的时候用到,因为Android Studio已经这样使用了。

DatabaseUtils——一个包含各种数据库操作的使用工具。

android:weightSum (LinearLayout)——如果想使用layout weights,但是却不想填充整个LinearLayout的话,就可以用weightSum来定义总的weight大小。

android:duplicateParentState (View)——此方法可以使得子View可以复制父View的状态。比如如果一个ViewGroup是可点击的,那么可以用这个方法在它被点击的时候让它的子View都改变状态。

android:clipChildren (ViewGroup)——如果此属性设置为不可用,那么ViewGroup的子View在绘制的时候会超出它的范围,在做动画的时候需要用到。

android:fillViewport (ScrollView)——在这片文章中有详细介绍文章链接,可以解决在ScrollView中当内容不足的时候填不满屏幕的问题。

android:tileMode (BitmapDrawable)——可以指定图片使用重复填充的模式。

android:enterFadeDuration/android:exitFadeDuration (Drawables)——此属性在Drawable具有多种状态的时候,可以定义它展示前的淡入淡出效果。

android:scaleType (ImageView)——定义在ImageView中怎么缩放/剪裁图片,一般用的比较多的是“centerCrop”和“centerInside”。

<merge>——此标签可以在另一个布局文件中包含别的布局文件,而不用再新建一个ViewGroup,对于自定义ViewGroup的时候也需要用到;可以通过载入一个带有标签的布局文件来自动定义它的子部件。

AtomicFile——通过使用备份文件进行文件的原子化操作。这个知识点之前我也写过,不过最好还是有出一个官方的版本比较好。

Android开发贴士集合

时间: 2024-10-10 16:38:12

Android开发贴士集合的相关文章

Android开发文摘集合1

作者:张明云 原标题:Android 开发中,有哪些坑需要注意? 作者github主页:zmywly8866.github.io/ 在Android library中不能使用switch-case语句访问资源ID:在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案 不能在Activity没有完全显示时显示PopupWindow和Dialog:popupwindow - Problems creating a Popup Window in And

Android开发技术周报 Issue#21

教程 Android模块化编程之引用本地的aar 随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好.针对Android开发最常见的就是Android Library,在Gradle出现之前引用Android Library的方式也很繁琐,但是有了Gradle一切变得非常简单方便. 微信的jsbridge实现 android的webview api中有开放过一个addJavaScriptInterface函数

Android开发免费类库和工具集合

Android开发免费类库和工具集合 - OPEN 开发经验库 用于Android开发的免费类库和工具集合,按目录分类. Action Bars ActionBarSherlock Extended ActionBar FadingActionBar GlassActionBar v7 appcompat library 广告 AdMob Google Mobile Ads SDK InMobi mMedia mobileCore MoPub Tapjoy Analytics Google An

Android开发最佳实践---Futurice之见

原文链接:https://github.com/futurice/android-best-practices 本文是Futurice公司的Android开发人员总结的最佳实践,遵循这些准则可以避免重复制造轮子.如果你对iOS或者WindowsPhone开发感兴趣,那么也请看看iOS最佳实践和Windows客户端开发最佳实践. 第一版翻译自:http://blog.csdn.net/asce1885 Android开发技术日新月异, Github上也有较大更新, 故对原文有增删 CSDN的mar

[转]Android开发最佳实践

——欢迎转载,请注明出处 http://blog.csdn.net/asce1885 ,未经本人同意请勿用于商业用途,谢谢—— 原文链接:https://github.com/futurice/android-best-practices 本文是Futurice公司的Android开发人员总结的最佳实践,遵循这些准则可以避免重复制造轮子.如果你对iOS或者Windows Phone开发感兴趣,那么也请看看iOS最佳实践和Windows客户端开发最佳实践. 概要 使用Gradle和推荐的工程结构

Android开发之实现两个手机之间的通讯

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51685656 Hello,大家好,今天又来写博客了,项目终于搞完了最近又有时间写写博客了.在上上篇博客中我们学习了Android中网络通讯,并用Socket实现了Android客户端与服务器的通讯,那么这一篇将进一步来完善这一功能,就是要实现两个android手机端的通讯. 如有谬误,欢迎批评指正,如有疑问欢迎留言 通过本篇博客你将学到以下知识点 ①Socket的用法 ②如何实现

这些小工具让你的Android 开发更高效

在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vysor Vysor 是一个可以将手机的屏幕投影到电脑上,当然也可以操作,当我们做分享或者演示的时候,这个工具起到了作用. Vector Asset Android Studio 在1.4 支持了VectorAsset,所谓VectorAsset:它可以帮助你在Android 项目中添加Materia

Android开发中常用的ListView列表的优化方式ViewHolder

在Android开发中难免会遇到大量的数据加载到ListView中进行显示, 然后其中最重要的数据传递桥梁Adapter适配器是常用的,随着市场的需 求变化ListView'条目中的内容是越来越多这就需要程序员来自定义适配器, 而关键的就是适配器的优化问题,适配器没有优化好往往就会造成OOM (内存溢出)或者是滑动卡顿之类的问题,接下来我就给大家介绍一种常 用的Adapter优化方法 1 /** 2 * list View的适配器 3 */ 4 class Adapter extends Bas

Android开发艺术探索——第七章:Android动画深入分析

Android开发艺术探索--第七章:Android动画深入分析 Android的动画可以分成三种,view动画,帧动画,还有属性动画,其实帧动画也是属于view动画的一种,,只不过他和传统的平移之类的动画不太一样的是表现形式上有点不一样,view动画是通过对场景的不断图像交换而产生的动画效果,而帧动画就是播放一大段图片,很显然,图片多了会OOM,属性动画通过动态的改变对象的属性达到动画效果,也是api11的新特性,在低版本无法使用属性动画,但是我们依旧有一些兼容库,OK,我们还是继续来看下详细