自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

原创 完美解决android软键盘挡住输入框方法

https://cloud.tencent.com/developer/article/17417565种方法完美解决android软键盘挡住输入框方法详解

2021-02-18 21:03:20 521

转载 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 217 1

原创 word2003页码和页眉坑

1.页眉设置奇偶不同后,添加页码后,偶数页码不出来解决方式:为偶数页单独添加页面。若偶数页的页脚没有,应先添加页脚,然后在添加页码2.如何让目录和正文的页码分开?解决方式:1.在要编码的上一页添加分隔符-下一页,添加页码时,取消选中的“链接到上一节”3.如何将首页或者论文的前几页和目录分开,不让加页码?解决方式:同问题2一样,添加分节符,取消选中的链接到上一节的。4.如何添加页码解决方式:首先应添加页脚,然后在添加页码。5.页眉如何引用章标题奇偶不同的页眉:奇数页眉:固定的可直接

2020-12-15 12:02:31 193 1

原创 word批量添加题注,全局更新图编号,并生成表目录

适用于office word1.添加题注2.批量图片添加题注更新编号3.图片目录

2020-11-20 13:26:37 5268

原创 重写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 153

原创 git commit --amend

1.修改提交的c22.使用cherry-pick修改提交的c2

2020-09-18 12:39:06 97

原创 如何终止正在运行的gradlew

当执行./gradlew installDebug后,却想要终止这个过程解决:另开一个terminal,执行 ./gradlew --stop

2020-08-24 12:45:55 935

原创 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 269

原创 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 877

原创 RecycleView的缓存机制

1.Scrape View2.Recycle View

2020-07-26 13:10:45 303

原创 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 95

原创 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 1013

转载 RecycleView性能优化及高级使用

最近研究应用流畅度专题时,发现RecyclerView里边的坑真多,有很多可以优化的点,在理解优化点之前,最好对RecyclerView的缓存机制有一些了解,比如得知道CacheView和RecycledViewPool的区别和联系,RecyclerView的绘制流程有一定了解,再来谈RecyclerView的性能提升。缓存机制可以看看...

2020-07-12 12:36:43 718

原创 安卓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 330

原创 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 146

原创 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 179

原创 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 621

原创 程序员画图工具

processondraw.io

2020-07-09 09:24:31 242

原创 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 110

原创 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 563

原创 apk包体积优化

微信AndResGuard设置支持语言 resConfigs “zh”,“en”

2020-07-06 09:25:03 144

原创 View的生命周期

View的关键生命周期–> 构造View()–> onFinishInflate()–> onAttachedToWindow()–> onMeasure()–> onSizeChanged()–> onLayout()–> onDraw()–> onWindowFocusChanged()–> onDetackedFromWindow()(1) 在Activity onCreate方法中初始化了View 的时候, 调用了View 的

2020-07-03 19:57:37 182

原创 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 421

原创 安卓使用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 232

原创 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 220

原创 自定义安卓拖拽动画排序ViewGroup

本代码通过OnDragListener实现安卓的拖拽。OnDragListenerAPI 11 加⼊入的⼯工具类,⽤用于拖拽操作。使⽤用场景:⽤用户的「拖起 -> 放下」操作,重在内容的移动。可以附加拖拽数据 不不需要写⾃自定义 View,使⽤用 startDrag() / startDragAndDrop() ⼿手动开启拖拽拖拽的原理理是创造出⼀一个图像在屏幕的最上层,⽤用户的⼿手...

2020-04-15 14:57:37 590

原创 安卓平滑曲线的实现:三次贝塞尔曲线

参考链接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 934

原创 仿微信朋友圈的可支持多点触摸的弹性滑动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 154

原创 点击箭头隐藏折叠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 245

原创 安卓手写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 170

原创 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 2489

原创 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 410

原创 Rxjava2学习

南尘博客链接背压

2020-01-10 19:25:24 78

原创 数据结构和算法思维图

2019-12-31 13:34:03 110

转载 ADB命令使用大全

此文章内容整合自网络,欢迎转载。我相信做Android开发的朋友都用过ADB命令,但是也只是限于安装应用push文件和设备重启相关,...

2019-12-30 23:07:59 584

转载 JAVA:IO流之节点流与处理流

1. 流的分类按数据流的方向不同:输入流,输出流。按处理数据单位不同:字节流,字符流。 (1) 字节流:数据流中最小的数据单元...

2019-12-16 17:04:49 104

转载 sqlite3 not found的解决办法

原文转载 http://ramosli.iteye.com/blog/1966202 写的太好了,怕自己忘记,就转载到自己博客。如果...

2019-12-12 11:57:08 1530

转载 adb shell下查看sqlite数据库

adb shell下查看sqlite数据库 有时需要查看应用的本地数据库是否改变,一般可以使用SqliteStudio来查看(需要把xx.db文件导出来).现在记录一下如何在adb shell 下面查看sqlite 数据库的内容.Android 把数据都存在在/data/data/下面.如果我们需要查看那个应用的数据库内容,就进入到这个应用的包名的目录.然后进入里...

2019-12-11 20:49:11 311

转载 静态内部类的加载时机

参考文章:【https://www.cnblogs.com/maohuidong/p/7843807.html】前言:  在看单例模式的时候,在网上找帖子看见其中有一种(IoDH) 实现单例的方式,其中用到了静态内部类,文章中有写到当jvm加载外部类的时候,并没有加载静态内部内这和之前自己想的不一样,特意在网上找了一些帖子总结一下。一、学习前千的疑问:  稍微了解Java虚拟机内...

2019-12-10 10:46:45 158

原创 安卓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 639

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除