Android快捷便利但不常被使用的原生工具类

Android SDK原生 API中,有一些常用的工具类,运用得当可以省事省力省时,何况还是Android官方提供的,现在收集整理一些出来。

DateUtils Android本身提供的日期时间工具类,里面有很多实用的工具集合。比如DateUtils.isToady()判断传入的日期时间是否为当天。getRelativeTimeSpanString
可以计算时间间隔比如“几天前”,“几个月前”,等等。

DateUtils.formatDateTime() 格式化时间日期格式。

Linkify.addLinks() 为一个TextView添加链接。

android.text.format.DateFormat 
DateFormat.format("yyyy-MM-dd HH:mm:ss", System.currentTimeMillis()); 
DateFormat.format("yy/MM/dd", Calendar.getInstance());
DateFormat.format("yyyy", new Date(2016,11,17));

HandlerThread 用以实现常见的Thread+Handler模型实现的复合型类。

Fragment的setUserVisibleHint 在这个方法里面可以实现Fragment的懒加载,比如:
@Override  
public void setUserVisibleHint(boolean isVisibleToUser) {   
       if (isVisibleToUser) {  
             //加载
        } else {  
             //不加载
        }  
}  
这在ViewPager结合Fragment的代码中实现懒加载很有用。因为Android官方默认当创建第一个Fragment时回创建第二个Fragment以确保用户平滑滑动,第二个View已经被创建,这在某些时候会带来一定的加载开销。

android:animateLayoutChanges="true" 使布局中的某些子view的消失和增加具有动画平滑过渡效果。

Formatter.formatFileSize() 处理文件大小格式化工具。把文件大小转换为KB,MB,GB这样的字符串。

getParent().requestDisallowInterceptTouchEvent(true) 屏蔽父view对事件的拦截处理。

PhoneNumberUtils.formatNumber () 格式化电话号码。

ActivityManager.clearApplicationUserData() 清理用户产生的数据。恢复的干净的初始阶段。

Application.registerActivityLifecycleCallbacks 注册activity的生命周期方法回调。

android:weightSum 控制根布局总的权重和。

Context.getCacheDir() 获取系统默认的缓存路径。

AutoScrollHelper 在滚动View中长按边缘滚动工具类。

ViewStub初始化阶段不加载任何View,然而随后以加载开发者给定布局文件。在懒加载 模式的View初始化过程中适合占位。

UrlQuerySanitizer 对一个URL链接进行检查和数据提取、解析等。

ThumbnailUtils 处理缩略图。

FragmentManager.enableDebugLogging () 开启Fragment的debug日志记录。

LocalBroadcastManager 本地广播。更安全的本地广播机制,类似于EventBus的简化版。

PackageManager.checkSignatures () 检查包签名。

ValueAnimator.reverse() 取消正在执行的动画。

Environment.getExternalStoragePublicDirectory() 外部存储器公共存储文件夹。

AlphabetIndexer 字母索引类。

SortedList 排序列表。

SurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT) 设置SurfaceView透明。

ArgbEvaluator.evaluate(float fraction, Object startValue, ObjectendValue) 颜色渐变,常见于导航栏、标题栏的颜色。

android:duplicateParentState="true"  子View跟随其Parent的状态,如按击等。比如某个按钮很小,想要扩大其点击区域,通常会再给其包裹一层布局,将点击事件写到Parent上,这时候如果希望被包裹按钮的点击效果对应的Selector继续生效,就这么做。

Messenger 对AIDL的简化操作。

onTrimMemory 内存紧张时候Android系统回调此方法,可以在里面进行内存回收。

TimingLogger,SDK自带打印时间戳工具。可以分析某个方法执行的时间。用以性能分析。
官方文档说明使用方法:
A utility class to help log timings splits throughout a method call. Typical usage is:
TimingLogger timings = new TimingLogger(TAG, "methodA"); 
// ... do some work A ... timings.addSplit("work A");
// ... do some work B ... timings.addSplit("work B");
// ... do some work C ... timings.addSplit("work C"); timings.dumpToLog(); 

The dumpToLog call would add the following to the log:
D/TAG ( 3459): methodA: begin 
D/TAG ( 3459): methodA: 9 ms, work A 
D/TAG ( 3459): methodA: 1 ms, work B 
D/TAG ( 3459): methodA: 6 ms, work C 
D/TAG ( 3459): methodA: end, 16 ms

Android快捷便利但不常被使用的原生工具类的更多相关文章

  1. 我的Android进阶之旅------>Android关于dp(dip)、sp转px的工具类

    下面是一个工具类,提供了dp.sp.px之间相互转化的方法. import android.content.Context; /** * dp.sp 转换为 px 的工具类<br> * & ...

  2. Android代码优化----Application节点的模板写法及UI工具类

    一. MyApplication类的编写: 新建一个类MyApplication,继承自Application.代码如下: MyApplication.java: package com.smyhva ...

  3. 从零开始学android开发-通过WebService进行网络编程,使用工具类轻松实现

    相信大家在平常的开发中,对网络的操作用到HTTP协议比较多,通过我们使用Get或者Post的方法调用一个数据接口,然后服务器给我们返回JSON格式的数据,我们解析JSON数据然后展现给用户,相信很多人 ...

  4. Android之2D图形(圆、直线、点)工具类 (持续更新)

    public class Circle { private PointF centerPoint; private float radius; public PointF getCenterPoint ...

  5. Android工具类整合

    Android-JSONUtil工具类 常用的Json工具类,包含Json转换成实体.实体转json字符串.list集合转换成json.数组转换成json public class JSONUtil ...

  6. 转--Android中调用webservice的工具类

    最近学习WebService,感觉利用这个借口开发网站的Android客户端方便及了,用到一个工具类,这里铭记一下. public static final String WebServiceName ...

  7. Android 开发工具类 35_PatchUtils

    增量更新工具类[https://github.com/cundong/SmartAppUpdates] import java.io.File; import android.app.Activity ...

  8. android 文件读写工具类

    将可以序列化的对象通过base64编码后进行保存 但是感觉多数情况下,不需要采用这个功能,直接保存原始的json字符串,取出来之后再进行解析即可 package com.wotlab.home.mon ...

  9. Android 开源控件与常用开发框架开发工具类

    Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 bui ...

随机推荐

  1. c++链表归并排序的迭代版本

    之前用js写了个归并排序非递归版,而这一次,c++封装链表的时候也遇到了一个归并排序的接口.邓老师实现了递归版本的归并排序,但是递归的调用函数栈的累积是很占内存空间的.于是乎,那试试在链表结构上实现以 ...

  2. Gcc的编译流程分为了四个步骤:

    http://blog.csdn.net/xiaohouye/article/details/52084770(转) Gcc的编译流程分为了四个步骤: 1.预处理,生成预编译文件(.文件): Gcc ...

  3. [问题2014S02] 复旦高等代数II(13级)每周一题(第二教学周)

    问题2014S02  设实系数多项式 \begin{eqnarray*}f(x) &=& a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0, \\ g(x) ...

  4. 首师大附中科创教育平台 我的刷题记录 0325 50212228海岛帝国:LYF的太空运输站

    今天给大家献上“D”级题:50212228海岛帝国:LYF的太空运输站!!   试题编号:0325     50212228海岛帝国:LYF的太空运输站 难度级别:D: 运行时间限制:40ms: 运行 ...

  5. 20 个值得一试的JavaScript 框架

      投递人 itwriter 发布于 2011-09-26 17:46 评论(3) 有1956人阅读 原文链接 [收藏] « » 本文介绍 20 个值得一试的 JavaScript 框架,如果你认为答 ...

  6. 统计单词个数及词频(C++实现)

    #include<iostream> #include<fstream> #include<string> using namespace std; struct ...

  7. MySQL修改表一次添加多个列(字段)和索引

    MySQL修改表一次添加多个列(字段) ALTER TABLE table_name ADD func varchar(50), ADD gene varchar(50), ADD genedetai ...

  8. LTE Module User Documentation(翻译9)——Using the EPC with emulation mode

    LTE用户文档 (如有不当的地方,欢迎指正!) 15 Using the EPC with emulation mode(使用仿真方式的 EPC)     在上一节中,我们使用点对点链路连接基站和服务 ...

  9. 前端开发流程之(线上)绝对地址(图片+css+js)

    重要提醒:前端写完-----发邮件通知项目组 1:写好的前段资源包上传到SVN上之后,相关的图片.CSS.js文件要换成线上地址给后台开发. 2:图片-----压缩(https://tinypng.c ...

  10. Linux线程的实现 & LinuxThread vs. NPTL & 用户级内核级线程 & 线程与信号处理

    另,线程的资源占用可见:http://www.cnblogs.com/charlesblc/p/6242111.html 进程 & 线程的很多知识可以看这里:http://www.cnblog ...