自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android scroller学习总结

当然也可以以view内容作为滑动的参考对象,画布不动,内容往左、上滑为正(因为scrollTo和scrollBy的参数正负和以view内容做参考对象一致,所以以view内容为参考对象比较容易记忆)(3)在computeScroll()方法中,先调用Scroller类中的computeScrollOffset()方法,里面根据当前消耗时间进行轨迹坐标的计算,然后取得计算出的当前滑动的偏移坐标,调用View的scrollTo()方法进行滑动控制,最后也需要调用invalidate();

2023-06-02 12:47:28 796

原创 Android studio项目文件夹不显示,无法搜索文件

Android studio问题解决记录

2023-05-29 14:44:52 1031

原创 Android Jetpack应用指南--阅读笔记

Jetpack指南阅读笔记

2023-05-24 19:32:59 1023

原创 Glide

Glide分析

2023-05-19 17:16:07 521

原创 解决Jenkins打包时报gradlew permission reject问题

Jenkins

2023-03-01 17:49:59 173

原创 Android paging学习

paging学习笔记

2022-10-10 20:30:59 1796

原创 Android gradle配置文件

gradle配置

2022-08-18 14:15:23 698

原创 java.lang.IndexOutOfBoundsExceptionInconsistency detected. Invalid view holder adapter position问题处理

Inconsistency detected. Invalid view holder adapter positionb{9cd1115 position=0 id=-1

2022-08-18 13:54:52 1243

原创 马甲包接入过程记录

马甲包接入

2022-08-01 20:18:13 3814

原创 工作中遇到一个bug的解决过程

bug处理过程

2022-07-12 20:06:48 511

原创 关于在Android 11系统手机上请求READ_PHONE_STATE权限的问题

Android 11系统申请READ_PHONE_STATE权限

2022-06-03 20:56:04 14959 5

原创 java锁

#### 锁的分类:公平锁、非公平锁,独占锁、共享锁,可重入锁,悲观锁、乐观锁#### 公平锁:ReentrantLock(boolean fair),设置fair为true,即可得到一个公平锁,会按照线程请求锁的先后顺序获的锁,采用先进先出的队列实现#### 非公平锁:ReentrantLock(boolean fair),设置fair为false,或调用默认构造函数ReentrantLock(),即可得到一个非公平锁,非公平锁在吞入量上会优于公平锁,一个锁释放在另一个请求时,有可能另

2022-03-26 09:54:44 394

原创 关于aar的一些总结

1.aar不仅可以打包代码,还可以打包资源文件(jar只能打包代码)2.aar本身是一个zip文件,可以手动改后缀名为zip然后解压打开,里面有classes.jar包、res文件、AndroidManifest文件(其中jar包里面是class文件,所以引入aar可以提升编译速度)附录一些命令行命令:打包多个Java文件到一个指定文件夹中:javac -d 指定文件夹 java文件1 java文件2jar包清单文件内容:Mainfest-Version:版本号 Main-Class:程序入

2022-02-12 11:36:49 2756

原创 Android线程池源码阅读记录

今天面试被问到线程池如何复用线程的?当场就懵掉了...于是面试完毕就赶紧打开源码看了看,在此记录下:我们都知道线程池的用法,一般就是先new一个ThreadPoolExecutor对象,再调用execute(Runnable runnable)传入我们的Runnable,剩下的交给线程池处理就行了,于是这次我就从ThreadPoolExecutor的execute方法看起:public void execute(Runnable command) { if (command ==

2021-12-22 22:48:30 1555

原创 tcp和udp

tcp为啥是可靠的?tcp可靠就可靠在接收方会按照顺序发送数据包给接收方(如序列号为seq=1),而接收方会在每次接收到发送方发来的数据包后对接收方发送一个确认包进行确认(如ack=2),以表明自己收到了正确有序的包,这样发送方就可以接着发送下一个数据包了(seq=2),通过这种机制,发送方就可以保证自己发送的有序数据可以被接收方按照顺序接收到,且数据包的内容是完整的(通过校验和比较),从而确保了通信的可靠tcp为啥要三次挥手?三次挥手是为了确保发送方和接收方都确认了发送的起始序列号,这样就可以

2021-12-22 21:15:27 815

原创 网络各层协议及作用

TCP/IP协议:物理层、数据链路层、网络层、传输层、应用层物理层:指传递电信号的物理介质,如电缆、光缆等,可对0、1电信号进行传输数据链路层:定义电信号的分组规则,如称一组电信号为一帧,一帧有head和data两部分,head占18字节,包含发送方和接收方的MAC地址,即接入internet的设备地址,data记录传输的数据,一帧有最大长度限制,超过最长长度后需要分片传输,即新开一帧。根据这种分组规则产生的数据包,我们称为以太网数据包,如果发送方和接收方在同一个子网络中,那发送方就可以通过广播发送

2021-12-19 00:16:18 2635

原创 Android序列化

1.定义序列化:将对象的状态信息转换成可存储、传输的字节流,这些字节流可以保存到磁盘上,也可以通过网络进行传输,在以后某个时刻恢复原来的对象2.序列化的方式 Serializable java提供的一个序列化接口,使用方便,序列化后的字节流可以持久存储,但底层通过反射来实现,中间会产生大量对象,效率低 Parcelable Android自己实现的序列化接口,通过将类状态信息分解为基本类型信息在内存中进行存取,效率高,底层通过c++实现,由于android系统各个版本可能实现Pa

2021-11-27 14:35:50 2500

原创 解决Could not determine artifacts for XXXX: Skipped due to earlier error

去Users/xxx/.gradle/gradle.properties中删除掉代理转载于:解决Could not determine artifacts for XXXX: Skipped due to earlier error - 简书

2021-11-23 12:32:29 7060 1

原创 序列化问题

1、为什么要进行序列化因为序列化可以将对象的属性保存在文件、数据库、网络流中进行传输,在某一时刻利用这些保存的信息来进行对象的恢复2、序列化有哪几种方式,有什么不同,优劣序列化可以通过Serializable接口和Parcelable接口来实现,其中Serializable是java提供的接口,底层通过反射实现对序列化对象属性的保存,而Parcelable是Android提供的接口,原理是将序列化对象转换成基本数据类型进行保存,适合在内存中使用,如activity间的信息传输,效率比Serial

2021-11-21 17:14:28 2260

原创 关于集合的一些总结

1、java中集合有三大类型:分别是Set、Queue、List,都是继承于Collection接口,其中set中元素是无序的,不允许null,List是有序的,允许null。关于Queue有一个ArrayDeque子类,其中封装了栈和队列的相关操作,当使用栈时,可以用push方法和pop方法;当使用队列时,可使用offer方法和pop方法,这些集合中的操作都是线程不安全的,如果想要线程安全,可以使用Collection.SynchronizeXxx进行包装,另外Collection还提供了很多的API,可

2021-11-20 20:17:13 476

原创 关于数据类型、位运算、数据结构的一些总结和思考

1、首先要说的是java的8大数据类型:整数类型 byte(1个字节) short(2个字节) int(4个字节) long(8个字节) 字符类型 char(2个字节) 浮点类型 float(4个字节) double(8个字节) 布尔类型 boolean(单个出现4个字节,当作int类型;在boolean数组中被当作byte,占1个字节) String类型具体所占字节,要根据其内容决定,一般英文字母或符号算一个字节,汉字算3个字节(utf-8编码)

2021-11-20 14:34:24 1093

原创 关于图片本身大小、格式、内存、压缩相关知识

首先感谢这篇博客,给了我很大启发:Android中一张图片占据的内存大小如何计算下面总结我的一些思考和收获:1、图片都有尺寸,这里尺寸用的是图片属性的分辨率表示:1600*1600,代表宽和高均有1600个像素点,而一个像素点ARGB四个通道,每个通道共有256个值,在计算机存储中占8位,即1个字节,那么这张图片实际大小就是1600*1600*4/1024/1024=9.76MB,但你点开图片发现它的大小却只有几十K,这是怎么回事呢?其实是对原图片进行了压缩,不同格式的图片代表对原图片压缩的策略不同

2021-11-19 22:54:42 2745

原创 简单说说设计模式之代理模式

样例代码public class DaiLi { public DaiLi() { /** * 步骤4:使用代理 * 需要使用哪个就代理哪个 * 使用代理可以满足软件开发的开闭原则,即对功能扩展开放,对修改关闭 */ //DaiLiClass.getInstance().init(new Facade1()); //DaiLiClass.getInstance().init(ne

2020-06-13 13:19:08 204

原创 设计模式之单例模式

样例代码public class DanLi implements Serializable { private DanLi(){} //饿汉模式:不能懒加载,会造成内存开销,线程安全 private static DanLi instance1=new DanLi(); public static DanLi getInstance1(){ return instance1; } private static DanLi instanc

2020-06-13 12:00:12 168

原创 JVM探索

前言JVM就是java虚拟机的意思,为什么要了解它?因为了解它能够对java代码的运行过程有一个清晰的认识,能够帮助你在遇到问题时知道产生问题的根本原因,以及怎样去解决问题。JVM的组成JVM组成大致如图上所示,程序运行的过程大致是JVM先通过classloader将编译过的.class文件加载进内存里,放入不同的地方,如线程共享区的堆主要存放各种类对象,方法区则存放常量、类变量和静态变量...

2020-04-18 21:43:57 209

原创 执行gradlew命令提示找不到

我的是在MacBook设备的Android studio的终端里执行gradlew命令,提示我找不到该命令。看了一下网友提供的解决方案,使用./gradlew替换gradlew命令结果还是不行,提示no such file or directory,后来有查询了一些资料,最终解决了这个问题,解决步骤如下:命令行里运行命令:gradle wrapper再运行‘./gradlew’命令即可...

2020-02-26 13:27:19 8133 5

原创 kotlin实现五子棋单机小游戏

最近学了点kotlin的相关知识,顺手写了一个简单的五子棋单机游戏,分享给大家吧!有兴趣的可以看看五子棋界面package wjc.kotlintestimport android.content.Contextimport android.graphics.Canvasimport android.graphics.Colorimport android.graphics.Pain...

2019-12-11 19:50:18 1079 3

原创 关于构建服务器和后端接口的过程

1.Windows系统下查看是否安装了mysql输入services.msc打开服务窗口,查看是否有mysql服务2.mysql下载安装、配置和使用3.忘记初始密码时:在mysql安装的目录下删除data文件夹以管理员身份运行命令行输入:mysqld --initialize --console回车输入:net start mysql回车输入:mysql -u root -p回车...

2019-11-12 23:57:57 1112

原创 解决EditText弹出键盘出现的黑屏闪现问题

//解决点击EditText弹出收起键盘时出现的黑屏闪现现象(EditText)editText.getRootView().setBackgroundColor(Color.WHITE);

2019-11-08 10:13:30 1121

原创 Android动画-1

Android动画目录Android视图动画Android属性动画Android布局动画Interpolators(插值器)1.Android视图动画介绍视图动画使用简单,效果丰富,它提供了AlphaAnimation、RotateAnimation、TranslateAnimation、ScaleAnimation四种动画方式,并提供了AnimationSet动画集合,混...

2019-10-24 18:58:53 297

原创 mac关于环境变量的相关知识

export语法{}为占位符:${PATH}和$PATH等效“:“相当于window环境变量中的”;”,是分隔符的意思。PATH=XXX:$PATH相当于PATH+=XXX:$PATH或PATH+=$PATH:XXX"="前后不能有空格export PATH:使PATH环境变量生效,其他变量如JAVA_HOME同理export -p:显示所有的环境变量配置环境变量使用open ...

2019-09-25 10:35:41 430

原创 自定义view

自定义view优秀讲解3.1.2 自定义 View 布局阶段在 View 的布局阶段会执行两个方法(在布局阶段,View 的父 View 会通过调用 View 的 layout() 方法将 View 的实际尺寸(父 View 根据 View 的期望尺寸确定的 View 的实际尺寸)传给 View,View 需要在 layout() 方法中将自己的实际尺寸保存(通过调用 View 的 setF...

2019-09-11 14:29:34 365

原创 Android中事件分发

1.自定义ViewGroup、View首先自定义一个父容器CustomRelativeLayout,和一个子view:CustomView,并重写父容器的dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent,重写子View的dispatchTouchEvent、onTouchEvent,以及MainActivity的onTouchEvent,...

2019-09-10 16:29:09 147

原创 Execution failed for task ':app:processDebugManifest'.

关于Androidx和Android support库共存问题解决:Error:Execution failed for task ‘:app:processDebugManifest’.Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreCo...

2019-08-17 20:14:24 6950

原创 android自定义view用path画一个长方形

这次主要是练习一下Android的自定义view和path的相关使用,所以做了一个简单的demo:自定义一个view,并用path在上面画一个可以动态改变圆角大小的长方形。自定义相关属性自定义view首先需要在values文件夹下建一个attrs文件,并在其中定义view的相关属性,如下:<resources> <declare-styleable name="Cu...

2019-08-09 16:42:21 2105

原创 Android用path画直线显示不出来

1.当用path画一条直线时,需指定Paint的Style为STROKE(描边),否则Paint会使用默认Style-FILL(填充),这种样式用path是画不出直线的2.用paint划长方形时,当需要分别画填充和描边两种样式的长方形时,要分别显式指定样式...

2019-08-09 10:12:37 1768

原创 unable to find valid certification path to requested target

1.解决方法:取消勾选charles的macOS Proxy,然后重启电脑

2019-08-05 15:33:21 213

原创 Charles安装记录

1.下载破解版zip:下载地址2.将 Charles.app 拖至 应用程序文件夹3.复制 charles.jar 至 /Applications/Charles.app/Contents/Java/,mac上方法如下:打开终端输入:cd /Applications/输入:cd Charles.app/输入:cd Contents/输入:open Java这样即可打开Java文件夹...

2019-08-02 20:10:09 263

原创 怎么写毕业论文

作为一个经历过写论文过程的人,深深地明白要写好一篇论文需要付出多大的努力,经历多少的绝望,才能最终在一切尘埃落定后,如释重负。今天我来记录下我写论文的过程和心得,希望能够帮到大家。1.论文应该什么时候开始写呢?其它专业我不是很清楚,但是计算机专业的,比如我,是从定稿的前一个月才开始认真写程序,大约两周完成整个程序。然后剩下的两周主要是用来写论文,论文时间两周不多不少,前提是每天基本都呆在图书馆...

2019-06-11 18:01:07 1069

原创 BRAVH学习笔记---1

这篇博客是我学习BRAVH框架的记录,学习的内容大致也是遵循BRAVH官方指南:官方指南1.添加依赖在app模块下的build里添加:implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'implementation 'com.android.support:recyclerview-v7:26+'...

2019-05-05 16:17:14 941 3

空空如也

空空如也

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

TA关注的人

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