- 博客(84)
- 收藏
- 关注
原创 完美解决android软键盘挡住输入框方法
https://cloud.tencent.com/developer/article/17417565种方法完美解决android软键盘挡住输入框方法详解
2021-02-18 21:03:20
638
转载 View坐标
原文链接:转载 <h2 id="1、位置"><a href="#1、位置" class="headerlink" title="1、位置"></a>1、位置</h2><h3 id="1-1-坐标系"><a href="#1-1-坐标系" class="headerlink" title="1.1 坐标系"></a>1.1 坐标系</h3><p>下面是 Android 中的 View 坐标系的
2021-01-14 16:09:44
282
1
原创 word2003页码和页眉坑
1.页眉设置奇偶不同后,添加页码后,偶数页码不出来解决方式:为偶数页单独添加页面。若偶数页的页脚没有,应先添加页脚,然后在添加页码2.如何让目录和正文的页码分开?解决方式:1.在要编码的上一页添加分隔符-下一页,添加页码时,取消选中的“链接到上一节”3.如何将首页或者论文的前几页和目录分开,不让加页码?解决方式:同问题2一样,添加分节符,取消选中的链接到上一节的。4.如何添加页码解决方式:首先应添加页脚,然后在添加页码。5.页眉如何引用章标题奇偶不同的页眉:奇数页眉:固定的可直接
2020-12-15 12:02:31
237
1
原创 重写equals需重写hashcode以及String为什么设计为final的思考
/** * hashmap的key有没有存放自定义对象。 * 存放了,那么必然要重写equals方法,也就必然重写hashcode方法 * * 这也就是为什么String要进行重写equals和hashcode? * 并且String设计为final? * 因为String做为key比较的是内容,那么当你修改后,必然会导致key不同,也就会出现同一个对象但却得不到Value */public class EqualsHashcode { private String name;
2020-10-11 09:55:32
215
原创 如何终止正在运行的gradlew
当执行./gradlew installDebug后,却想要终止这个过程解决:另开一个terminal,执行 ./gradlew --stop
2020-08-24 12:45:55
1167
原创 View获取宽高的方式及View.post为什么可以拿到View的宽高
1. view.post(Runnable)public boolean post(Runnable action) { final AttachInfo attachInfo = mAttachInfo; //dispatchAttachedToWindow里赋值mAttachInfo,将view添加到window中 if (attachInfo != null) { return attachInfo.mHandler.post(
2020-07-27 18:49:27
341
原创 RecyclerView item的部分View刷新实现
对于一个item中有一个TextView和ImageView,加入我们只想刷新TextView,那么如何实现item的部分View刷新呢?答案如下:RecyclerView.ViewHolder viewHolder = mRecyclerView.findViewHolderForAdapterPosition(i); if (viewHolder != null && viewHolder instanceof ItemHolder) {
2020-07-26 13:16:27
990
原创 java线程池源码解析
1.从提交Runnable开始2. 具体流程(简化代码)public void execute(Runnable command) { addWorker(command);} private boolean addWorker(Runnable firstTask, boolean core) { w = new Worker(firstTask); //Worker中的Thread对象,真正执行工作的线程 final Thread t = w.thread;
2020-07-15 00:22:03
153
原创 RecyclerView使用Glide加载图片导致错位问题总结
问题产生原因 根本原因: 因为有ViewHolder的重用机制,每一个item在移出屏幕后都会被重新使用以节省资源,避免滑动卡顿。 场景A: 1.第一次进入页面,RecyclerView载入,不做任何触摸操作 2.Adapter经过onCreateViewHolder()创建当前显示给用户的N个ViewHolder对象,并且在onBind时启动了N条线程加载图片 3.N张图片全部加载完毕,并且显示到对应的ImageView上 4.控制屏幕向下滑动,前K个item离开屏幕可视区域,后K个item进入屏幕可.
2020-07-12 13:10:48
1209
转载 RecycleView性能优化及高级使用
最近研究应用流畅度专题时,发现RecyclerView里边的坑真多,有很多可以优化的点,在理解优化点之前,最好对RecyclerView的缓存机制有一些了解,比如得知道CacheView和RecycledViewPool的区别和联系,RecyclerView的绘制流程有一定了解,再来谈RecyclerView的性能提升。缓存机制可以看看...
2020-07-12 12:36:43
884
原创 安卓XML解析获取后台json返回的html标签数据
//本例只是获取第一个数据,当然你可以存放在list中获取所有的数据。public static String getTagFirst(String html){ XmlPullParser xmlPullParser = Xml.newPullParser(); try { InputStream inputStream = new ByteArrayInputStream(html.getBytes("utf-8"));
2020-07-11 19:40:27
389
原创 java中集合和数组的相互转换
leetcode时,经常遇到集合和数组的相互转换,总结下1.数组转集合int[] nums=[1,23,4,5,6,4,7];Array arrs=nums.asList();//封装为集合Arrays.asList(1,2);2.集合转数组List list = new ArrayList();list.add(“str1”);list.add(“str2”);int size = list.size();String[] arr = (String[])list.toArray(n
2020-07-10 14:49:35
192
原创 java对象内存布局介绍
对象的组成根据java虚拟机规范里面的描述:java对象分为三部分:对象头(Object Header), 实例数据(instance data),对齐填充(padding)。如图:数组与对象类似,只是对象头部分多了数组长度Length的存储长度为4字节。对象头(Object Header):从图片上得知对象头分为两部分:Mark Word 与 Class Pointer(类型指针)。Mark Word存储了对象的hashCode、GC信息、锁信息三部分,Class Pointer存储了指向“类
2020-07-10 10:25:23
247
原创 service的ANR异常源码分析
1.概念首先,ANR(Application Not responding)是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。ANR由消息处理机制保证,Android在系统层实现了一套精密的机制来发现ANR,核心原理是消息调度和超时处理。2.表现当发生ANR时,会收集一些系统状态,譬如CPU/IO使用情况、进程函数调用栈,并且报告用户有进程无响应了(ANR对话框)。发生ANR时会调用AppNotRespo
2020-07-09 23:56:22
707
原创 tcp相关知识
连接进程是通过一系列状态表示的,这些状态有:LISTEN,SYN-SENT,SYN-RECEIVED,ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSE-WAIT,CLOSING,LAST-ACK,TIME-WAIT和 CLOSED。CLOSED表示没有连接。各个状态的意义如下:LISTEN - 侦听来自远方TCP端口的连接请求;SYN-SENT - 在发送连接请求后等待匹配的连接请求;SYN-RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认;EST
2020-07-07 11:06:45
167
原创 Http和https有关知识点
1.htpp和https区别?http 是超文本传输协议,信息是明文传输。http 的连接很简单,是无状态的HTTPS 协议是由 HTTP+ SSL 构建的可进行加密传输、身份认证的网络协议。https 需要到 ca 申请证书,一般证书都是收费的。 SSL/TSL 的常见开源实现是 OpenSSLhttp 和 https 使用的是不同的连接方式,用的端口也不一样,前者是 80,后者是 443。2. http1.0和http1.1区别HTTP1.1 也是当前使用最为广泛的 HTTP 协议。1、缓存
2020-07-06 21:45:51
676
原创 View的生命周期
View的关键生命周期–> 构造View()–> onFinishInflate()–> onAttachedToWindow()–> onMeasure()–> onSizeChanged()–> onLayout()–> onDraw()–> onWindowFocusChanged()–> onDetackedFromWindow()(1) 在Activity onCreate方法中初始化了View 的时候, 调用了View 的
2020-07-03 19:57:37
243
原创 app启动速度优化及Trace文件分析
启动速度优化1.查看启动时间。log查看:Displayed2.通过 adb shell am start -W 包名/activity路径3.启动速度优化:1.开线程异步执行2.懒加载4.具体优化:查看方法耗时时间在Application和SplashActivity中进行通过Debug.startMethodTracing(“trace文件路径”)Debug.stoptMethodTracing()通过android studio来分析trace文件1.将trace文件用a
2020-07-03 15:38:03
497
原创 安卓使用aidl进行进程间通信,使用自定义对象
1.server端Aidl文件创建定义AIDLBean文件// Person.aidlpackage com.aiyuba.serverclient;// Declare any non-default types here with import statementsimport com.aiyuba.serverclient.Person;parcelable Person...
2020-04-22 16:19:19
291
原创 mac查看android源码:Sublime Text
详情:https://jingyan.baidu.com/article/48206aeafba820216ad6b3f5.htmlmac下也自带一个Ctags,使用Sublime Text安装的Ctag不行,采用一下方式安装到ctags官网 [1] 下载源码,解压后$ ./configure$ make$ sudo make install配置"command": “/usr...
2020-04-19 00:33:42
259
原创 自定义安卓拖拽动画排序ViewGroup
本代码通过OnDragListener实现安卓的拖拽。OnDragListenerAPI 11 加⼊入的⼯工具类,⽤用于拖拽操作。使⽤用场景:⽤用户的「拖起 -> 放下」操作,重在内容的移动。可以附加拖拽数据 不不需要写⾃自定义 View,使⽤用 startDrag() / startDragAndDrop() ⼿手动开启拖拽拖拽的原理理是创造出⼀一个图像在屏幕的最上层,⽤用户的⼿手...
2020-04-15 14:57:37
704
原创 安卓平滑曲线的实现:三次贝塞尔曲线
参考链接https://www.jianshu.com/p/c4601bab860a理论知识:坐标计算令A0和B3连线的斜率 k = (B3Y - A0Y) / (B3X - A0X)常数 b = A3Y - k * A3X则A2的X坐标 A2X = A3X - (A3X - A0X) * rateA2的Y坐标 A2Y = k * A2X + bB1的X坐标 B1X = A3X...
2020-04-14 18:33:57
1068
原创 仿微信朋友圈的可支持多点触摸的弹性滑动Scrollview
弹性滑动scrollview,支持多点触摸的接力型下拉滑动,动画回弹。package com.aiyuba.uiview;import android.animation.ValueAnimator;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet...
2020-04-14 10:53:28
196
原创 点击箭头隐藏折叠view
自定义ViewGroup,对设置layoutParam的bottomMargin不太理解package com.aiyuba.animateview;import android.animation.Animator;import android.animation.ValueAnimator;import android.content.Context;import android....
2020-04-13 17:34:09
298
原创 安卓手写TagLayout
手写taglayout,自定义ViewGroup1.重写onMeasure,掉用每个子view的measure方法,并将子view的位置保存下来,以便在onLayout中使用2.重写onLayout,摆放每个子view的位置package com.aiyuba.uiview;import android.content.Context;import android.graphics.R...
2020-04-08 17:50:05
198
原创 flutter run提示Operation not permitted
错误 ProcessException: Operation not permitted Command: /Users/macbook/Developer/rembon/customer/android/gradlew -vmac电脑运行flutter项目提示Operation not permitted,解决方法,在terminal直接运行:xattr -d com.apple.quaran...
2020-03-24 14:50:40
2638
原创 flutter运行项目挂在 "Resolving dependencies
直接跑项目挂在Resolving dependencies,然后也没错误提示1.尝试修改了安卓下面的gradle版本,即gradlew。然后运行在termial运行./android/gradlew 错误还是无法得到解决2.terminal运行 flutter run 提示错误,如下于是按照提示在安卓的local.property文件下添加flutter.versionName=1.0....
2020-03-17 15:49:55
560
转载 ADB命令使用大全
此文章内容整合自网络,欢迎转载。我相信做Android开发的朋友都用过ADB命令,但是也只是限于安装应用push文件和设备重启相关,...
2019-12-30 23:07:59
659
转载 JAVA:IO流之节点流与处理流
1. 流的分类按数据流的方向不同:输入流,输出流。按处理数据单位不同:字节流,字符流。 (1) 字节流:数据流中最小的数据单元...
2019-12-16 17:04:49
141
转载 sqlite3 not found的解决办法
原文转载 http://ramosli.iteye.com/blog/1966202 写的太好了,怕自己忘记,就转载到自己博客。如果...
2019-12-12 11:57:08
1738
转载 adb shell下查看sqlite数据库
adb shell下查看sqlite数据库 有时需要查看应用的本地数据库是否改变,一般可以使用SqliteStudio来查看(需要把xx.db文件导出来).现在记录一下如何在adb shell 下面查看sqlite 数据库的内容.Android 把数据都存在在/data/data/下面.如果我们需要查看那个应用的数据库内容,就进入到这个应用的包名的目录.然后进入里...
2019-12-11 20:49:11
397
转载 静态内部类的加载时机
参考文章:【https://www.cnblogs.com/maohuidong/p/7843807.html】前言: 在看单例模式的时候,在网上找帖子看见其中有一种(IoDH) 实现单例的方式,其中用到了静态内部类,文章中有写到当jvm加载外部类的时候,并没有加载静态内部内这和之前自己想的不一样,特意在网上找了一些帖子总结一下。一、学习前千的疑问: 稍微了解Java虚拟机内...
2019-12-10 10:46:45
220
原创 安卓TimeZone,Locale
1.Calender设置时区Date date = new Date(1359641834000L);System.out.println(date);Calendar calendar = Calendar.getInstance();calendar.setTimeZone(TimeZone.getTimeZone("GMT")); //或者可以 Calendar calendar...
2019-12-09 15:13:31
711
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人