- 博客(29)
- 收藏
- 关注
原创 String-format的奇怪用法
关于%ns(n为数字)的用法 先来看以下代码String.format("A=%1s,B=%2s,C=%3s,D=%2s,E=%2s,F=%4s","A","B","C","DD","EEE","FFF"); 对于上述代码,如果我们打印出来这个拼后的字符串,那么会看到如下格式的字符串。A=A,B= B,C= C,D=DD,E=EEE,F= FFF 我们惊奇的发现,里边有的地方有空格,有的地方却没有空格,那么这是为什么呢? 首先对于format,定义是为了规范格式化字
2021-01-25 10:21:41 1447
原创 Android 获取手机WIFI和蜂巢网络的IP以及掩码
获取手机的IP分为获取WIFI无线的IP和数据网络的IP,其中获取WiFi的IP其实就是路由IP,手机数据网络IP则为运营商基站IP,这个可能会随着你的移动而不停改变。同时获取所有信息 Android 中提供了方法让我们可以获取到当前所有网段的IP以及和IP相关的掩码信息。以下是获取wifi和数据网络ip等相关信息的方法,其中INetAddressInfo为我自己定义的一个类用于接收信息。 public static ArrayList<INetAddressInfo> ge
2020-05-23 07:54:57 1692
原创 获取手机蜂巢网络信号强度(包括5G,WIFi)
手机信号强度首先分为两部分,一个是WiFi信号强度,一个是蜂巢网络(数据流量)信号强度。 信号强度会返回一个dbm单位的数据,这个数据就代表了当前环境下手机的信号如何。具体信号强度等级请参考下方表格。WiFi范围等级0 -(-55)信号很强(-55) - (-100)信号一般信号强度,都是dbm为负值则正确,否则数据异常,越接近0信号越好 这些等级可以根据我们自己的需求来定义,信号范围是(-100) - 0,我们可以确定自己需要输出几个等级,从
2020-05-19 19:01:56 6077 10
原创 状态模式的使用场景
状态模式的使用场景 类似于策略模式,都是为了解决多个if…else存在的复杂问题,他的结构图和策略模式的一模一样,但是解决的问题不一样。 在android中可以用来解决嵌套dialog的显示,比如有一堆弹窗,A,B,C … 他们会按照顺序进行显示,可能我们常做的是先显示一个,用户点击了确定,再判断点击事件显示第二个,以此类推,这样的话嵌套耦合度太高,之后如果增加了新的需求,或者维护...
2020-04-17 19:34:58 3498
原创 策略模式的使用场景
策略模式的使用场景 当程序中出现一堆连在一起的if…else语句,例如:public void t(){ ... if(a){ ... }else if(b){ ... }else if(c){ ... }else{ ... } ...} ...
2020-04-17 19:01:38 7059
原创 http和https
http/https都是基于tcp/ip上的一种应用层传输协议。组成 http由URL,header和body组成。URL 其中URL包含目标地址和请求方法,请求参数header header包含一些配置参数,其中都是使用键值对传递,每一对之间需要换行。 传递格式为:Content-Encoding: gzip\r\nbody ...
2019-11-28 13:42:17 174
原创 解决某些系统UI使用handler偶尔不显示问题
当我们使用handler进行UI的异步显示的时候,在某些手机上,当进行大量UI操作时候,由于UI大量信息在队列中,可能导致UI刷新不及时,从而导致一些异常。 比如我们想要在异步线程中显示一个dialog,常规做法可能是直接使用如下方法。new Handler(content.getMainLooper()).post(new Runnable() { @Override...
2019-08-28 17:29:11 312
原创 ArrayList(线程不安全,源码)
ArrayList线程不安全不安全事例代码 public static void main(String[] args) { final ArrayList<Integer> arrayList = new ArrayList<>(); for(int i=0;i<10000;i++){ final int ...
2019-08-01 10:14:37 142
原创 Android shape
shape理解 shape就是对view背景进行修改调整的一个属性文件,可以任意更改view的形状,颜色等。它作为一个drawable文件,放在项目的res/drawable目录下,使用时候,需要放在view的background属性下。属性corners 定义四个角属性解释android:radius=“dimension”全部的圆角半径a...
2019-04-25 11:12:06 109
原创 解决页面中EditText软键盘自动弹出问题
Android系统对EditText这个控件有监听功能,如果某个Activity中含有该控件,就会自动弹出软键盘让你输入,这个看似人性化的方案有 时候并不被用户喜欢的,所以在有些情况下要禁用该功能。这几天做的应用也有这个问题,所以就查了,网上大部分都是如下方法:<activity android:name=".MainActivity" androi...
2019-04-22 16:51:59 965
原创 AsyncTask源码分析
前言 AsyncTask是一种异步处理线程的类,他可以在后台处理一些耗时的操作,它相当于Thread线程和handler的合体,为我们更新UI,执行耗时操作,提供方便。分析源码https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/os/AsyncTask.java...
2019-04-19 15:21:59 111
原创 Http工具类
Android中和服务器进行通讯工具类,包含post,get两种方式,以及json,form两种数据格式选择。public class HttpUtil { private static final int CONNECT_TIMEOUT_TIME = 15000; private static final int READ_TIMEOUT_TIME = 19000;...
2019-01-15 16:12:38 303 1
原创 Android混淆打包
混淆打包脚本task deleteOldJar(type: Delete) { // 删除无用的旧包 delete 'build/outputs/jar/TEST1.jar' delete '../autobuild/output/TEST2.jar'}task exportJar(type: Jar,dependsOn: [deleteOldJar,build]) { /...
2018-12-07 18:37:34 181
原创 字符串
Stringappend() 使用append()方法和StringBuilder对象来拼接字符串比使用”+”来拼接字符串效率要高,因为这样不会生成一堆需要回收的垃圾。StringBuilder s = new StringBuilder();s.append("a");return s.toString();length() 字符串中的字符个数。charAt...
2018-07-30 18:03:11 136
原创 Arrays
Arrays java.util.Arrays;转换数组为字符串 Method : Arrays.toString() 将数组转换为字符串,以符号”[“开头,”]”结尾。int a = {1,2,3};print(Arrays.toString(a));// [1,2,3]插入数据 Method : Arrays.fill();...
2018-07-27 11:14:48 302
原创 线程并发工具类
import java.util.concurrent.*;CountDownLatch简介 用来同步线程任务,指定线程执行完毕后,再来执行接下来的任务。使用CountDownLatch countDownLatch = new CountDownLatch(3);//此处的数字3代表执行的任务组数new Thread(new Runnable...
2018-07-27 10:31:41 129
原创 Tcpdump的使用
Tcpdump的使用在GPS的日常工作中,经常会使用到tcpdump工具来进行手机中一些通讯信息包的抓取。配置tcpdump首先需要下载好tcpdump,然后将相对应的工具配置到手机中。adb rootadb remountadb push tcpdump data/local/tcpdumpadb shellsuchmod 6755 data/local/tcpd
2018-02-05 14:12:55 152
原创 用矩阵乘法优化的线性齐次递推公式求值
用矩阵乘法优化的线性齐次递推公式求值对斐波那契数列, (fn,fn−1)⋅(1110)=(fn+1,fn)这样的话我们可以在常数时间内求出这个通项的下一项。而如果要求第n项,就相当于对这个矩阵进行幂运算。 有没有想到些什么?没错,见幂就开始快速幂。复杂度logn,比线性求不知道高到哪里去了。 那么能不能进一步推广?当然可以。 如果f(n)=a1f(n−1)+a2
2017-12-28 18:04:23 276
转载 Android中Parcelable接口用法
1. Parcelable接口Interface for classes whose instances can be written to and restored from a Parcel。 Classes implementing the Parcelable interface must also have a static field called CREATOR, which i
2017-12-13 10:13:26 216
转载 烧录手机image镜像
实验环境是Ubuntu14.04。采用手机nexus 5,编译安卓6.0.1源码并烧录安卓。 源码编译没有一蹴而就,建议使用一台linux机器开启ssh后,通过远程的方式利用闲暇时间编译并查看结果。下载源码下载源码时,建议使用科大的镜像源。先找好适合你手机的源码版本:然后采用repo的方式,repo init -u git://mirrors.ustc.edu.cn/a
2017-12-12 16:33:13 1678
原创 工作中常用的Repo和Git的一些操作[随时更新]
工作中常用的Repo和Git的一些操作[随时更新]本文记录一些常用的repo 和 git操作。对于repo下载代码,使用的时候直接复制粘贴代码更改关键位置就可以,并不做详细介绍。对于git 有些时候记不起某些操作指令回头看下本文即可,对指令也并不做详细介绍。
2017-12-07 11:06:27 401
转载 Intent中的四个重要属性——Action、Data、Category、Extras
Intent中的四个重要属性——Action、Data、Category、Extras Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。诸如此类,都可以通过设置Intent属性来完成。 Intent主要有以下四个重要属性,它们
2017-12-04 14:05:49 265
原创 Class requires API level 7 (current min is 1)----Android
Class requires API level 7 (current min is 1)在Android中,有的时候各种操作后会报错,出现错误码为Class requires API level 7 (current min is 1)的错误。
2017-11-24 18:05:11 1280
原创 NFC相关学习------第一篇
NFC的基础知识 在现如今的生活中,NFC已经遍布了我们生活的很多方面,我们的很多工具以及生活方式都离不开NFC。比如最常用的公交卡,现在逐渐流行的手机刷公交卡、各种接触式的卡片均使用了NFC的技术。还有一些接触式的工具,比如手机贴近一张卡片便可以自动链接上WiFi、手机闪付等等。因为NFC的有效距离最远为4CM,其安全性高,又方便。由于其成本不高,而安全性却
2017-11-23 16:45:47 1056 2
原创 关于contentProvider和ContentResolver的个人理解
Android ContentProvider和ContentResolve一、前言 在Android平台中,各个Android 应用中可能需要互相传递数据。而ContentProvider类的作用就是...
2017-11-18 12:09:23 2832 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人