Android
小猪佩奇...
这个作者很懒,什么都没留下…
展开
-
Android监听wifi连接广播重复
wifi连接时会收到两次连续的广播导致程序执行多次,此时可以单例模式创建一个类,在这个类中新增一个变量来判断,当接收到第一次时修改变量值,等第一次执行完后再恢复变量值。//单例模式创建WifiUtils.classpublic class WifiUtils { private static WifiUtils utils = null; public int rece...原创 2019-12-05 16:18:35 · 691 阅读 · 0 评论 -
WIFI开发相关问题
1.wifiManager.getScanResults()返回空或0 添加权限<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE...原创 2019-11-28 15:28:59 · 257 阅读 · 0 评论 -
Android productFlavors打包不同app时 app_name冲突问题
1.如果项目中没有aar,那么直接在AndroidManifest.xml Application节点下添加tools:replace="android:label"进行替换即可。2.如果项目中有引用aar文件,即使我们添加了tools:replace="android:label",app_name也会显示aar文件的app_name,此时在build.gradle中productFl...原创 2019-08-16 12:02:06 · 1602 阅读 · 0 评论 -
Tinker热修复集成总结
一. 在 app build.gradle同级目录下新建 tinkerpatch.gradle。具体内容: apply plugin: 'tinkerpatch-support'import java.util.regex.Matcherimport java.util.regex.Pattern/*** TODO: 请按自己的需求修改为适应自己工程的参数*/def bakP...原创 2019-08-19 11:33:07 · 172 阅读 · 0 评论 -
红黑树笔记
二叉排序树在某些情况下层级过深,所以在查找的时候效率不好。二叉平衡树在二叉排序树的基础上进行了优化,两边的平衡因子最大不能超过1,在查找的时候效率比较好,但是在删除节点的时候就会非常糟糕,因为每次删除节点可能会伴随着整棵树的移动(如:左平衡操作,右平衡操作,平衡因子修改)。红黑树在二叉平衡树的基础上又进行了改进,它的左右子树的层次最多不超过一倍,删除节点时只需要找到此节点的后继节点,把后继...原创 2018-12-25 10:14:38 · 113 阅读 · 0 评论 -
AVL树(平衡二叉树)
概念:是一种二叉排序树,又称平衡二叉树,其中每一个节点的左子树和右子树的高度相差至多等于1。平衡因子:树上节点的左子树的深度减去右子树的深度的值。树上所有节点中,如果有一个节点的平衡因子的绝对值大于1 ,树就失去了平衡。最小不平衡子树:距离插入节点最近的,且平衡因子的绝对值大于1的节点为根的子树。左转,右转:当树失去平衡后,我们可以通过节点的旋转来使其达到平衡。 例:有一棵...原创 2018-12-19 17:07:36 · 387 阅读 · 0 评论 -
树的存储结构
树的概念树是由多个结点组成,每个结点所包含子节点的个数称为结点的度,度为0的结点称为树的叶子结点,度不为0的结点称为分支结点。一起看下图:上图中d,e,f为叶子结点,a,b下面分别有两个结点,那么a,b的度为2,c下面有一个结点,c的度为1,d,e,f的度为0.。整棵树的度为所有结点中度最大的那个数。上图中数的度就为2,整棵树有三层,所以树的层次和深度分别为3。 一,树...原创 2018-12-06 15:39:01 · 219 阅读 · 0 评论 -
Android低功耗蓝牙 不回调onServicesDiscovered问题
搞了一个下午,搜来搜去还是没有解决问题。后来仔细想想gatt.discoverServices()是用来发现服务,之所以没有执行onServicesDiscovered是说明没有发现相关服务。那问题肯定就出在了gatt.discoverServices()。后来我尝试多执行几次gatt.discoverServices()。竟然可以回调了,而当只调用一次gatt.discoverSer...原创 2018-12-05 17:10:51 · 5857 阅读 · 7 评论 -
Android 插件换肤
市场上很多app支持换肤效果,并且还可以从网上下载皮肤包进行加载换肤,接下来就来聊一聊它的实现原理。思路:首先我们需要知道哪些控件需要实现换肤,有两种方法第一种:自己整理,通过findViewById一个个实例化出需要执行换肤的控件,在拿到颜色值,或图片后一个个去替换。第二种:在布局文件初始化的时候通过属性判断去找出需要换肤的控件。很明显第一种比较麻烦,而且不易维护。那么今天就...原创 2018-12-05 16:59:56 · 245 阅读 · 0 评论 -
关于Arraylist和LinkedList
一,Arraylist 在我们开发中经常用到,今天就来研究一下它的实现原理,由源码可以看出,其实它内部维护了一个数组 /** * Shared empty array instance used for empty instances. */ private static final Object[] EMPTY_ELEMENTDATA = {}; 所以,它的增加,删除...原创 2018-11-30 15:19:11 · 191 阅读 · 0 评论 -
JAVA排序算法
一 , 冒泡排序 思路:数组中每两个元素相互比较,如果前者比后者大就更换位置,这样在一轮循环之后就会有一个最大值被排到数组末尾, 最后一个位置的值就被确定了,下次循环把 i --。 public static void bubbleSort(int[] array){ for(int i=array.length-1;i&g...原创 2018-11-27 09:56:55 · 147 阅读 · 0 评论 -
SwipeRefreshLayout刷新时屏蔽点击事件
由于工作需求,需要在SwipeRefreshLayout刷新时屏蔽点击事件。 直接从事件分发下手,自定义MySwipeRefreshLayout继承自SwipeRefreshLayout重写dispatchTouchEvent方法。public class MySwipeRefreshLayout extends SwipeRefreshLayout { publi...原创 2018-11-26 16:49:09 · 1416 阅读 · 0 评论 -
Android低功耗蓝牙开发问题总结
1.app收不到蓝牙返回的数据。 需要把写的特征值的通知权限设置为truebluetoothGatt.setCharacteristicNotification(characteristicF2, true);2.断开蓝牙连接。 有时候会发现调用disconnect断开蓝牙连接时无法搜索到此设备,当连接断开后要调closeGatt释放资源,不用调disconnect,也 ...原创 2018-11-24 17:45:14 · 471 阅读 · 1 评论 -
Android 增量更新demo
增量更新:通过bsdiff.exe工具将oldapk和newapk进行比较并生成一个差分包patch,用户需要更新时只需要下载差分包到本地通过 native方法将oldapk和差分包patch进行合并,生成newapk。 所需资源下载: https://download.csdn.net/download/qq_2...原创 2018-11-24 17:16:53 · 323 阅读 · 0 评论 -
Android同一个项目编译出不同的版本
一套代码编译出不同的apk,那就需要动态配置一些数据。1.打开app中build.gradle添加如下代码android { defaultConfig { ... //版本名后面添加一句话,意思就是flavor dimension 它的维度就是该版本号,这样维度就是都是统一的了 //不加这行代码编译会出问题 flavorDimensions "...原创 2018-11-13 09:05:15 · 971 阅读 · 0 评论 -
Java与javascript交互
网上案例很多,一直记不住,所以写下来作为笔记。//1. 首先webview需要设置支持javascriptWebSettings setting = webView.getSettings();//设置支持javascriptsetting.setJavaScriptEnabled(true);//2. 在 WebView 中绑定 Java 对象jsData = new ...原创 2018-11-01 16:54:50 · 769 阅读 · 0 评论 -
android 融云对话列表和会话界面不刷新问题
会话列表一直不刷新我的解决办法:RongIMClient.setOnReceiveMessageListene会覆盖kit库中的监听,导致无法收到消息,所以要使用 RongIM.setOnReceiveMessageListener原创 2018-11-01 17:01:34 · 2549 阅读 · 0 评论 -
Intellij idea破解办法
最开始的时候intellij用得是社区版,因为博主没有钱去买专业版。。。但是后来发现社区版的功能确实弱了很多,比如流弊闪闪的Diagrams功能就没有…比如社区版不支持web项目,想起个tomcat跑个web项目都没法搞。于是,博主重新下载了个专业版的intellij,果然各项功能用得飞起,起个web项目再也不用担心没有tomcat server了。专业版的intellij可以免费试用30天。...转载 2018-11-01 17:02:43 · 291 阅读 · 0 评论