
android
Myj_Coder
秉承开源,我为人人,人人为我
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
完美解决android软键盘挡住输入框方法
https://cloud.tencent.com/developer/article/17417565种方法完美解决android软键盘挡住输入框方法详解原创 2021-02-18 21:03:20 · 653 阅读 · 0 评论 -
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 · 310 阅读 · 1 评论 -
如何终止正在运行的gradlew
当执行./gradlew installDebug后,却想要终止这个过程解决:另开一个terminal,执行 ./gradlew --stop原创 2020-08-24 12:45:55 · 1233 阅读 · 0 评论 -
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 · 354 阅读 · 0 评论 -
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 · 1004 阅读 · 0 评论 -
RecycleView的缓存机制
1.Scrape View2.Recycle View原创 2020-07-26 13:10:45 · 358 阅读 · 0 评论 -
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 · 1246 阅读 · 0 评论 -
RecycleView性能优化及高级使用
最近研究应用流畅度专题时,发现RecyclerView里边的坑真多,有很多可以优化的点,在理解优化点之前,最好对RecyclerView的缓存机制有一些了解,比如得知道CacheView和RecycledViewPool的区别和联系,RecyclerView的绘制流程有一定了解,再来谈RecyclerView的性能提升。缓存机制可以看看...转载 2020-07-12 12:36:43 · 915 阅读 · 0 评论 -
安卓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 · 396 阅读 · 0 评论 -
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 · 735 阅读 · 0 评论 -
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 · 186 阅读 · 0 评论 -
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 · 694 阅读 · 0 评论 -
apk包体积优化
微信AndResGuard设置支持语言 resConfigs “zh”,“en”原创 2020-07-06 09:25:03 · 205 阅读 · 0 评论 -
View的生命周期
View的关键生命周期–> 构造View()–> onFinishInflate()–> onAttachedToWindow()–> onMeasure()–> onSizeChanged()–> onLayout()–> onDraw()–> onWindowFocusChanged()–> onDetackedFromWindow()(1) 在Activity onCreate方法中初始化了View 的时候, 调用了View 的原创 2020-07-03 19:57:37 · 255 阅读 · 0 评论 -
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 · 519 阅读 · 0 评论 -
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 · 281 阅读 · 0 评论 -
自定义安卓拖拽动画排序ViewGroup
本代码通过OnDragListener实现安卓的拖拽。OnDragListenerAPI 11 加⼊入的⼯工具类,⽤用于拖拽操作。使⽤用场景:⽤用户的「拖起 -> 放下」操作,重在内容的移动。可以附加拖拽数据 不不需要写⾃自定义 View,使⽤用 startDrag() / startDragAndDrop() ⼿手动开启拖拽拖拽的原理理是创造出⼀一个图像在屏幕的最上层,⽤用户的⼿手...原创 2020-04-15 14:57:37 · 732 阅读 · 0 评论 -
安卓平滑曲线的实现:三次贝塞尔曲线
参考链接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 · 1105 阅读 · 0 评论 -
仿微信朋友圈的可支持多点触摸的弹性滑动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 · 211 阅读 · 0 评论 -
点击箭头隐藏折叠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 · 308 阅读 · 0 评论 -
安卓手写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 · 211 阅读 · 0 评论 -
Rxjava2学习
南尘博客链接背压原创 2020-01-10 19:25:24 · 112 阅读 · 0 评论 -
ADB命令使用大全
此文章内容整合自网络,欢迎转载。我相信做Android开发的朋友都用过ADB命令,但是也只是限于安装应用push文件和设备重启相关,...转载 2019-12-30 23:07:59 · 685 阅读 · 0 评论 -
JAVA:IO流之节点流与处理流
1. 流的分类按数据流的方向不同:输入流,输出流。按处理数据单位不同:字节流,字符流。 (1) 字节流:数据流中最小的数据单元...转载 2019-12-16 17:04:49 · 151 阅读 · 0 评论 -
adb shell下查看sqlite数据库
adb shell下查看sqlite数据库 有时需要查看应用的本地数据库是否改变,一般可以使用SqliteStudio来查看(需要把xx.db文件导出来).现在记录一下如何在adb shell 下面查看sqlite 数据库的内容.Android 把数据都存在在/data/data/下面.如果我们需要查看那个应用的数据库内容,就进入到这个应用的包名的目录.然后进入里...转载 2019-12-11 20:49:11 · 414 阅读 · 0 评论 -
安卓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 · 742 阅读 · 0 评论 -
Android关于获取日期时间知识点整理
项目开发过程中,获取时间日期以及一些转换呢,老忘记来着,总得花时间去查找资料,于是乎,现在终于要来整理整理下这方面的知识点了,用于巩固自己的记忆!时间戳(timestamp)指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,以秒为单位。【有时候一个项目从服务器那边返回的时间数据就是时间戳的格式,所以先弄清时间戳的定义。】...转载 2019-12-09 13:56:13 · 367 阅读 · 0 评论 -
sqlite并发操作有关异常处理
目录1. database is locked的原因(1)多线程访问造成的数据库锁定(2)执行事务操作未正常关闭(3)sqlite自身问题2. 解决办法(1)办法1解决问题1:避免重复打开数据库解决问题2:如果当前执行的是许多sql语句,要用到事务怎么办?解决问题3:如果在多线程下执行que...转载 2019-12-08 15:54:22 · 1388 阅读 · 2 评论 -
sqlite事务介绍
应用程序初始化时需要批量的向sqlite中插入大量数据,单独的使用for+Insert方法导致应用响应缓慢,因为 sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。我的应用初始5000条记录也就是要5000次读写磁盘操作。而且不能保证所有数据都能同时插入。(有可能部分插入成功,另外一部分失败,后续还得删除。太麻烦)解决方法:添加事务处理,把5000条插入作为...原创 2019-12-08 15:22:44 · 191 阅读 · 0 评论 -
Realm数据库
引用RealmRealm要替换sqlite(呵呵),有一套自己的数据库引擎,什么是数据库引擎?原创 2019-12-07 19:24:19 · 145 阅读 · 0 评论 -
安卓文件目录
一.getCacheDir、getCacheDir getCacheDir()方法用于获取/data/data//cache目录 getFilesDir()方法用于获取/data/data//files目录二.getExternalFilesDir、getExternalCacheDir 应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。大部...转载 2019-12-04 22:01:39 · 194 阅读 · 0 评论 -
安卓定时任务ScheduledExecutorService
/** * 每天晚上8点执行一次 * 每天定时安排任务进行执行 */public static void executeEightAtNightPerDay() { ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); long oneDay = 24 * 60 * 60 * 1000; lo...原创 2019-12-04 19:35:15 · 343 阅读 · 0 评论 -
Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
Socket通信原创 2019-11-29 15:25:33 · 181 阅读 · 0 评论 -
ContentProvier ContentResolver ContentObserver使用
ContentProvider使用原创 2019-11-29 14:55:04 · 163 阅读 · 0 评论 -
源码阅读之Activity启动与App启动流程 - Android 9.0
100斤2019年02月20日阅读 1186关注源码阅读之Activity启动与App启动流程 - Android 9.0前言为了面试与被面试阅读了Activity的启动流程,整理了这篇文章。之前一直好奇为什么Android面试经常问Activity启动流程,因为在工作中没有相关的实践。阅读完源码以后才发现,Activity启动流程中包含了许多知识,例如Activity的启动模式如何处理、插件...转载 2019-11-21 10:33:10 · 218 阅读 · 0 评论 -
gradle文件和task介绍
1. gradle文件介绍dependencies { classpath 'com.android.tools.build:gradle:3.0.0' }//等同于 dependencies( { classpath 'com.android.tools.build:gradle:3.0.0' })1.dep...原创 2019-11-20 14:29:59 · 530 阅读 · 0 评论 -
从AMS角度来看Activity启动流程(基于Android26)
详情见大佬链接原创 2019-11-20 00:03:34 · 131 阅读 · 0 评论 -
Activity 从启动到布局绘制的流程分析
这篇文章主要是配合源码简单的介绍一下,程序的加载过程,Activity 中布局的加载过程,能够大体的了解整个过程。不过过度的追究细节,因为里面任何一个细节可能都够你研究一段时间的!先了解掌握大体过程,再慢慢来!开始启动我们都知道,Activity 是有生命周期的,onCreate()、onStart() 、onResume 等等那么这些方法是如何调用的呢?它不会平白无故的自己调用。其实当我们开...转载 2019-11-19 00:29:08 · 217 阅读 · 0 评论 -
自定义taglayout,记二撸自定义view
自定义标签布局效果如下:package com.iyuba.pratice.view;import android.content.Context;import android.graphics.Rect;import android.graphics.RectF;import android.util.AttributeSet;import android.view.View;...原创 2019-11-18 18:37:21 · 195 阅读 · 0 评论 -
Android原生H5混合开发之JsBridge
/ 前言 /电商或者内容类APP中,H5通常都会占据一席之地,Native跟H5通信会必不可少,比如某些场景H5通知native去分享,native通知H5局部刷新等,Android本身也提供这样的接口,比如addJavascriptInterface、loadUrl(“javascript:…”),而需要支持的能力也要是双工的。H5通知Native(可能需要处理回调)Native通...转载 2019-11-14 09:34:38 · 380 阅读 · 0 评论