Skip to content

Commit af616a8

Browse files
committed
添加 README.md
1 parent 77105ce commit af616a8

File tree

1 file changed

+351
-15
lines changed

1 file changed

+351
-15
lines changed

README.md

Lines changed: 351 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,353 @@
1-
#### Library
2-
2016.4.7
3-
- 添加打印Log [第三方](https://github.com/ZhaoKaiQiang/KLog)
4-
- 在Application onCreate()中定义, 可控制Log是否输出, 默认true
5-
```java
6-
@Override
7-
public void onCreate() {
8-
//...
9-
KLog.init(BuildConfig.DEBUG);
10-
//...
11-
// 使用
12-
KLog.a();
13-
KLog.e();
14-
//...
15-
}
1+
# 使用方式
2+
* 这个library还在功能迭代中,功能不尽完善...
3+
```gradle
4+
compile 'com.code19.library:library:0.0.7'
165
```
6+
# 常用工具类
7+
- 每一个Android开发者在日常开发中都会积累一些自己的代码片段
8+
- 目的:
9+
* 1.将常用功能模块做成工具类
10+
* 2.封装Android系统api,简化api的使用
11+
* 3.收集一些高效的正确的代码片段避免下次踩坑
12+
* 4.尽量少依赖第三方
13+
- 能力一般,水平有限,难免有Bug,如果有任何问题,请<a href="https://github.com/h4de5ing/AndroidCommon/issues">反馈</a>
14+
- 如果你有更好的代码,请提交<a href="https://github.com/h4de5ing/AndroidCommon/pulls">Pull request</a>
15+
16+
* 感谢各位的star,你们的支持是我继续的动力,好了,本着多一点真诚,少一点套路的原则,完善一下文档
17+
* 为了让更多人用上这个库,现在推出Eclipse <a href="https://github.com/h4de5ing/AndroidCommon/blob/master/">lib下载</a>
18+
19+
```
20+
调用方法如此简单:
21+
调用结果 = 类名.方法名( 参数 )
22+
AppUtils.getAppName(MainActivity.this,com.code19.androidcommon);
23+
```
24+
25+
## library Module中的类:
26+
27+
- AppUtils.java 应用工具类
28+
* getAppName 获取应用名称
29+
* getAppIcon 获取应用图标
30+
* getAppDate 获取应用更新日期
31+
* getAppSize 获取应用大小
32+
* getAppApk 获取应用apk文件
33+
* getAppVersionName 获取应用版本名称
34+
* getAppVersionCode 获取应用版本号
35+
* getAppInstaller 获取应用的安装市场
36+
* getAppPackageName 获取应用包名
37+
* hasPermission 是否有权限
38+
* isInstalled 应用是否安装
39+
* installApk 安装应用
40+
* uninstallApk 卸载应用
41+
* isSystemApp 是否是系统应用
42+
* isServiceRunning 服务是否在运行
43+
* stopRunningService 停止服务
44+
* getNumCores 获取Cpu内核数
45+
* killProcesses 结束进程
46+
* runScript 运行脚本
47+
* getRootPermission 获得root权限
48+
49+
- BitmapUtils.java Bitmap工具类
50+
* decodeFile 解析文件为bitmap
51+
* getImageThumbnail 获取图片缩略图
52+
53+
- CacheUtils.java 缓存工具类
54+
* setCache 设置缓存
55+
* getCache 获取缓存
56+
57+
- CipherUtils.java 密码工具类
58+
* encode(String input) 获取字符串md5值
59+
* encode(InputStream in) 获取输入流的md5值
60+
* base64Encode Base64加密
61+
* base64Decode Base64解密
62+
* XorEncode 异或加密
63+
* XorDecode 异或解密
64+
65+
- CoordinateTransformUtil.java GPS坐标转换工具
66+
* 百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换的工具
67+
* bd09towgs84 百度坐标系(BD-09)转WGS坐标(百度坐标纬度,百度坐标经度),WGS84坐标数组
68+
* wgs84tobd09 WGS坐标转百度坐标系(BD-09)(WGS84坐标系的经度,WGS84坐标系的纬度),百度坐标数组
69+
* gcj02tobd09 火星坐标系(GCJ-02)转百度坐标系(BD-09)(火星坐标经度,火星坐标纬度),百度坐标数组
70+
* bd09togcj02 百度坐标系(BD-09)转火星坐标系(GCJ-02)(百度坐标纬度,百度坐标经度),火星坐标数组
71+
* wgs84togcj02 WGS84转GCJ02(火星坐标系)(WGS84坐标系的经度,WGS84坐标系的纬度),火星坐标数组
72+
* gcj02towgs84 GCJ02(火星坐标系)转GPS84(火星坐标系的经度,火星坐标系纬度),WGS84坐标数组
73+
* transformlat 纬度转换
74+
* transformlng 经度转换
75+
* out_of_china 判断是否在国内,不在国内不做偏移
76+
77+
- DateUtil.java 日期工具类
78+
* formatDataTime 格式化日期时间
79+
* formatDate 格式化日期
80+
* formatTime 格式化时间
81+
* formatDateCustom 自定义格式的格式化日期时间
82+
* string2Date 将时间字符串转换成Date
83+
* getTime 获取系统时间
84+
* subtractDate 计算两个时间差
85+
* getDateAfter 得到几天后的时间
86+
* getWeekOfMonth 获取当前时间为本月的第几周
87+
* getDayOfWeek 获取当前时间为本周的第几天
88+
89+
- DensityUtil.java 屏幕工具类
90+
* dip2px dp转像素
91+
* px2dip 像素转dp
92+
* px2sp 像素转sp
93+
* sp2px sp转像素
94+
* getScreenW 获取屏幕宽度
95+
* getScreenH 获取屏幕高度
96+
* getScreenRealSize 获取屏幕的真实高度
97+
* getStatusBarH 获取状态栏高度
98+
* getNavigationBarrH 获取导航栏高度
99+
100+
- DeviceUtils.java 设备信息工具
101+
* getAndroidID 获取AndroidID
102+
* getIMEI 获取设备IMEI码
103+
* getIMSI 获取设备IMSI码
104+
* getWifiMacAddr 获取MAC地址
105+
* getIP 获取网络IP地址(优先获取wifi地址)
106+
* getWifiIP 获取WIFI连接下的ip地址
107+
* getGPRSIP 获取GPRS连接下的ip地址
108+
* getSerial 获取设备序列号
109+
* getSIMSerial 获取SIM序列号
110+
* getPhoneNumber 获取手机号码(未获取成功)
111+
* getMNC 获取网络运营商 46000,46002,46007 中国移动,46001 中国联通,46003 中国电信
112+
* getCarrier 获取网络运营商:中国电信,中国移动,中国联通
113+
* getModel 获取硬件型号
114+
* getBuildBrand 获取编译厂商
115+
* getBuildHost 获取编译服务器主机
116+
* getBuildTags 获取描述Build的标签
117+
* getBuildTime 获取系统编译时间
118+
* getBuildUser 获取系统编译作者
119+
* getBuildVersionRelease 获取编译系统版本(5.1)
120+
* getBuildVersionCodename 获取开发代号
121+
* getBuildVersionIncremental 获取源码控制版本号
122+
* getBuildVersionSDK 获取编译的SDK
123+
* getBuildID 获取修订版本列表(LMY47D)
124+
* getSupportedABIS CPU指令集
125+
* getManufacturer 获取硬件制造厂商
126+
* getBootloader 获取系统启动程序版本号
127+
* getScreenDisplayID
128+
* getDisplayVersion 获取系统版本号
129+
* getLanguage 获取语言
130+
* getCountry 获取国家
131+
* getOSVersion 获取系统版本:5.1.1
132+
* getGSFID 获取GSF序列号
133+
* getBluetoothMAC 获取蓝牙地址
134+
* getPsuedoUniqueID Android设备物理唯一标识符
135+
* getFingerprint 构建标识,包括brand,name,device,version.release,id,version.incremental,type,tags这些信息
136+
* getHardware 获取硬件信息
137+
* getProduct 获取产品信息
138+
* getDevice 获取设备信息
139+
* getBoard 获取主板信息
140+
* getRadioVersion 获取基带版本(无线电固件版本 Api14以上)
141+
* getUA 获取的浏览器指纹(User-Agent)
142+
* getDensity 获取得屏幕密度
143+
* getGoogleAccounts 获取google账号
144+
145+
146+
- FileUtils.java 文件工具类
147+
* closeIO 关闭IO流
148+
* isFileExist 文件是否存在
149+
* writeFile 将字符串写入到文件
150+
* readFile 从文件中读取字符串
151+
* copyFileFast 快速复制
152+
* shareFile 分享文件
153+
* zip zip压缩
154+
* unzip zip解压
155+
* formatFileSize 格式化文件大小
156+
* Stream2File 将输入流写入到文件
157+
* createFolder 创建文件夹
158+
* createFolder 创建文件夹(支持覆盖已存在的同名文件夹)
159+
* getFolderName 获取文件夹名称
160+
* deleteFile 删除目录下的文件
161+
* openImage 打开图片
162+
* openVideo 打开视频
163+
* openURL 打开URL
164+
165+
- ImageUtils.java 图片工具类
166+
* calculateInSampleSize 计算图片的压缩比率
167+
* getPictureDegree 获取图片的角度
168+
* rotaingImageView 旋转图片
169+
* decodeScaleImage 加载图片并压缩
170+
* getRoundedCornerBitmap 获取圆角图片
171+
//* decodeUriAsBitmap 解析URL流为图片
172+
* bitmap2File bitmap存为文件
173+
* compressImage 质量压缩
174+
* compressFixBitmap 固定大小压缩
175+
176+
- JsonUtils.java Json工具类(需要依赖Gson 2.0以上)
177+
* toJson 对象转json
178+
* fromJson json转对象
179+
* mapToJson Map转为JSONObject
180+
* collection2Json 集合转换为JSONArray
181+
* object2Json Object对象转换为JSONArray
182+
* string2JSONObject json字符串生成JSONObject对象
183+
184+
- L.java 日志工具
185+
* init 初始化日志开关和TAG(默认日志为开,TAG为"ghost")
186+
* v VERBOSE
187+
* d DEBUG
188+
* i INFO
189+
* w WARN
190+
* e ERROR
191+
* a ASSERT
192+
* json 输出json
193+
* xml 输出xml
194+
195+
196+
- NetUtils.java 网络工具
197+
* getNetworkType 获取网络类型
198+
* getNetworkTypeName 获取网络名称
199+
* isConnected 检查网络状态
200+
* isNetworkAvailable 网络可用性
201+
* isWiFi 是否wifi
202+
* openNetSetting 打开网络设置界面
203+
* setWifiEnabled 设置wifi状态
204+
* getWifiScanResults 获取wifi列表
205+
* getScanResultsByBSSID 过滤扫描结果
206+
* getWifiConnectionInfo 获取wifi连接信息
207+
208+
- SPUtils.java SharedPreferences工具
209+
* setSP 存储SharedPreferences值
210+
* getSp 获取SharedPreferences值
211+
* cleanAllSP 清除所有的SP值
212+
213+
- StringUtils.java 字符串工具
214+
* getChsAscii 汉字转成ASCII码
215+
* convert 单字解析
216+
* getSelling 词组解析
217+
* parseEmpty 将null转化为""
218+
* isEmpty 是否是空字符串
219+
* chineseLength 中文长度
220+
* strLength 字符串长度
221+
* subStringLength 获取指定长度的字符所在位置
222+
* isChinese 是否是中文
223+
* isContainChinese 是否包含中文
224+
* strFormat2 不足2位前面补0
225+
* convert2Int 类型安全转换
226+
* decimalFormat 指定小数输出
227+
228+
- SystemUtils.java 系统工具
229+
* sendSMS 调用系统发送短信
230+
* forwardToDial 跳转到拨号
231+
* callPhone 直接呼叫号码
232+
* sendMail 发邮件
233+
* hideKeyBoard 隐藏系统键盘
234+
* isBackground 判断当前应用程序是否后台运行
235+
* isSleeping 判断手机是否处理睡眠
236+
* installApk 安装apk
237+
* isRooted 是否root
238+
* isRunningOnEmulator 当前设备是否是模拟器
239+
* getAppVersionName 获取当前应用程序的版本名称
240+
* getAppVersionCode 获取当前应用程序的版本号
241+
* goHome 返回Home
242+
* getSign 获取应用签名
243+
* hexdigest 32位签名
244+
* getDeviceUsableMemory 获取设备可用空间
245+
* gc 清理后台进程和服务
246+
* createDeskShortCut 创建桌面快捷方式
247+
* createShortcut 创建快捷方式
248+
* shareText 分享文本
249+
* shareFile 分享文件(此方法是调用FileUtils.shareFile中的方式)
250+
* getShareTargets 获取可接受分享的应用
251+
* getCurrentLanguage 获取当前系统的语言
252+
* getLanguage 获取当前系统的语言
253+
* isGpsEnabled GPS是否打开
254+
* showSoftInputMethod 显示软键盘
255+
* closeSoftInputMethod 关闭软键盘
256+
* showSoftInput 显示软键盘
257+
* closeSoftInput 关闭软键盘
258+
259+
- VerificationUtils.java 验证工具类
260+
* matcherRealName 判断姓名格式
261+
```
262+
真实姓名可以是汉字,也可以是字母,但是不能两者都有,也不能包含任何符号和数字
263+
1.如果是英文名,可以允许英文名字中出现空格
264+
2.英文名的空格可以是多个,但是不能连续出现多个
265+
3.汉字不能出现空格
266+
```
267+
* matcherPhoneNum 判断手机号格式 (匹配11数字,并且13-19开头)
268+
* matcherAccount 判断账号格式 (4-20位字符)
269+
* matcherPassword 判断密码格式 (6-12位字母或数字)
270+
* matcherPassword2 判断密码格式 (6-12位字母或数字,必须同时包含字母和数字)
271+
* matcherEmail 判断邮箱格式
272+
* matcherIP 判断IP地址
273+
* matcherUrl 判断URL (http,https,ftp)
274+
* matcherVehicleNumber 判断中国民用车辆号牌
275+
* matcherIdentityCard 判断身份证号码格式
276+
* isNumeric 是否数值型
277+
* testRegex 是否匹配正则
278+
* checkPostcode 匹配中国邮政编码
279+
280+
- ViewUtils.java View工具
281+
* removeSelfFromParent
282+
* requestLayoutParent
283+
* isTouchInView
284+
* bigImage
285+
* setTVUnderLine 给TextView设置下划线
286+
* showPopupWindow
287+
* dismissPopup
288+
* captureView 截图
289+
* createViewBitmap 截图
290+
* convertViewToBitmap 截图
291+
* getActivityBitmap 获取Activity的截图
292+
* getStatusBarHeight 获取状态栏高度
293+
* getToolbarHeight 获取工具栏高度
294+
* getNavigationBarHeight 获取导航栏高度
295+
* measureView 测量view
296+
* getViewWidth 获取view的宽度
297+
* getViewHeight 获取view的高度
298+
299+
300+
301+
```shell
302+
303+
/**
304+
* 身份证校验
305+
* <p>
306+
* 根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。
307+
* 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
308+
* 地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。
309+
* 出生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。
310+
* 顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。
311+
* 校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
312+
* 出生日期计算方法。
313+
* 15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19或18,这样就包含了所有1800-1999年出生的人;
314+
* 2000年后出生的肯定都是18位的了没有这个烦恼,至于1800年前出生的,那啥那时应该还没身份证号这个东东,⊙﹏⊙b汗...
315+
* 下面是正则表达式:
316+
* 出生日期1800-2099 /(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])/
317+
* 身份证正则表达式 /^[1-9]\d{5}((1[89]|20)\d{2})(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dx]$/i
318+
* 15位校验规则 6位地址编码+6位出生日期+3位顺序号
319+
* 18位校验规则 6位地址编码+8位出生日期+3位顺序号+1位校验位
320+
* 校验位规则 公式:∑(ai×Wi)(mod 11)……………………………………(1)
321+
* 公式(1)中:
322+
* i----表示号码字符从由至左包括校验码在内的位置序号;
323+
* ai----表示第i位置上的号码字符值;
324+
* Wi----示第i位置上的加权因子,其数值依据公式Wi=2^(n-1)(mod 11)计算得出。
325+
* i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
326+
* Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
327+
* </P>
328+
*
329+
* @author Yoojia.Chen (yoojia.chen@gmail.com)
330+
* @version version 2015-05-21
331+
* @since 2.0
332+
*/
333+
```
334+
335+
# 这个库参考了众多网络的中的代码,在此对这些无私奉献的人致以最诚挚的感谢。
336+
337+
License
338+
----
339+
340+
Copyright (C) 2016 android@19code.com
341+
342+
Licensed under the Apache License, Version 2.0 (the "License");
343+
you may not use this file except in compliance with the License.
344+
You may obtain a copy of the License at
345+
346+
http://www.apache.org/licenses/LICENSE-2.0
347+
348+
Unless required by applicable law or agreed to in writing, software
349+
distributed under the License is distributed on an "AS IS" BASIS,
350+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
351+
See the License for the specific language governing permissions and
352+
limitations under the License.
17353

0 commit comments

Comments
 (0)