自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 工作中用到的adb命令

1、先找到adb路径,D:\AndroidSDK\sdk\platform-tools2、使用 adb installD:\AndroidSDK\sdk\platform-tools>adb devicesList of devices attachedHUYX9XYXLNQCNVNJ deviceD:\AndroidSDK\sdk\platform-tools>adb install D:\桌面\AssistantScreen-1160-test.ap...

2020-07-01 20:16:42 1106

原创 Java泛型

目录相关文章:一、概述二、举例三、特性四、泛型的使用1、泛型类2、泛型方法3、泛型接口4、通配符的体现5、泛型限定五、查阅集合的一些技巧:相关文章:Java泛型常见面试题很全面的一篇文章:Java 泛型,你了解类型擦除吗?深入偏难的一篇文章:泛型的理解及应用(一):泛型擦除java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一...

2019-05-22 11:17:16 196

转载 面试官:说说为什么自定义view的wrap_content会失效?

面试官:说说为什么自定义view的wrap_content会失效?_自定义view wrap_content_只有小松了的博客-CSDN博客

2023-05-15 21:59:31 283 1

原创 算法学习02-二分法

【代码】算法学习02。

2023-05-14 22:10:00 389

原创 算法学习01-选择、冒泡、插入排序

【代码】算法学习01-选择、冒泡、插入排序。

2023-05-14 21:59:31 224

原创 AMS、WMS核心原理全解析(xiangxue)

相关资料:https://www.bilibili.com/video/BV1SQ4y197Wi1、 Android系统整体启动流程简析2、zygote的启动流程3、system_server进程的创建4、ATM和AMS的启动流程5、Activity的启动流程6、Activity的生命周期和栈的管理...

2021-10-25 22:00:43 2426 1

转载 ANR 弹窗的显示原理

目录基础知识:实验:ANR 弹窗的显示原理思考一个面试题,一个 Service 运行在独立的进程里,在这个 Service 的 onCreate 方法里执行耗时操作会造成 ANR 吗?直接说结论:会,但是不会有 ANR 的弹窗。基础知识:ANR 的四种场景: Service TimeOut: service 未在规定时间执行完成:前台服务 20s,后台 200s BroadCastQueue TimeOut: 未在规定时间内未处理完广播:前台广播 10s ..

2021-10-10 16:57:08 1269

原创 Android异步任务与多线程

相关资料:https://www.bilibili.com/video/BV1m4411r73w?p=3https://www.bilibili.com/video/BV1m4411r73w?p=31、多线程的意义2、多线程的创建3、线程池的应用4、异步消息处理机制5、异步任务6、设计自己的图片轮播器...

2021-10-10 13:26:14 1141

转载 手写简易版 Retrofit框架

参考文章:手写简易版 Retrofithttps://www.jianshu.com/p/4a11ae8e80591、手写代码写代码之前要了解一个前提,就是 Retrofit 其实是通过封装 OKHttp 才拥有了网络访问能力的,实际执行网络请求的是 OKHttp。Retrofit 要做的是为网络请求接口生成动态代理对象,并在请求方法被调用时,在动态代理的 InvocationHandler 中解析注解,把要使用的网络请求方法和参数解析出来生成 OKHttp 的 Request 对象,最后由 O

2021-09-25 16:30:56 244

原创 Java基础清单

1、Java泛型Java基础学习系列一:Java泛型https://blog.csdn.net/songzi1228/article/details/117876017

2021-09-19 16:16:01 108

转载 LeetCode07:整数反转

题目描述:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:-2^31 <= x <= 2^31 -...

2021-09-06 22:56:00 100

原创 Java垃圾回收机制

前言Java与C++等语言最大的技术区别:自动化的垃圾回收机制(GC)栈:栈中的生命周期是跟随线程,所以一般不需要关注堆:堆中的对象是垃圾回收的重点方法区/元空间:这一块也会发生垃圾回收,不过这块的效率比较低,一般不是我们关注的重点堆又分为老年代和新生代。新生代又分为:Eden空间、From Survivor空间、To Survivor空间,空间大小比例为8:1:1。...

2021-09-05 17:09:09 91

原创 Java虚拟机相关面试题

1、Java虚拟机模型(JVM)1.1、简述一下Java虚拟机模型(JVM)。JVM:Java Virtual Machine,Java虚拟机。我们知道,Java是一个跨平台的语言,其中起主要作用的就是JVM,通俗地讲,JVM可以理解为一个翻译,把class文件翻译成机器码(010101),然后给Linux、Windows等操作系统使用。JVM主要包括三个部分:类加载过程、运行时数据区和执行引擎。class文件经过类加载过程被读入内存(运行时数据区),然后再交给执行引擎被翻译成机器码。我们主

2021-09-05 17:08:57 140

转载 JAVA内存模型(JMM)和JAVA虚拟机内存模型(JVM)

1、JAVA内存模型(JMM)1.1、操作系统内存模型解决的问题在现代计算机硬件体系中,CPU的数据处理速度远比从内存条读写数据的速度要快,为了更好地利用CPU的运算能力,每个CPU都配备了寄存器和CPU缓存来提高IO吞吐,降低CPU等待数据的耗时。既然是高速缓存,其高成本就导致存储空间必然有限,也就不会将全量数据都装载,因此只会将CPU当下计算所需的数据副本拷贝到高速缓存中。虽然提高了CPU读写数据的IO吞吐,也带来的数据不一致问题。对于数据不一致问题,不同的操作系统有不同的系统级指令的

2021-09-05 10:52:58 306

转载 Android系统启动流程(四)Launcher启动过程与系统启动流程

前言此前的文章我们学习了init进程、Zygote进程和SyetemServer进程的启动过程,这一篇文章我们就来学习Android系统启动流程的最后一步:Launcher的启动流程,并结合本系列的前三篇文章的内容来讲解Android系统启动流程。建议读这篇文章前要通读本系列的前三篇文章,否则你可能不会理解我在讲什么。1.Launcher概述Android系统启动的最后一步是启动一个Home应用程序,这个应用程序用来显示系统中已经安装的应用程序,这个Home应用程序就叫做Launcher。应

2021-09-02 22:46:04 1062

原创 MVVM演进二

目录1、MVP1.1、model1.1.1、Board.java1.1.2、Cell.java1.1.3、GameState.java1.1.4、Player.java1.2、presenter1.3、view1.3.1、Activity1.3.2、布局1.3.3、menu文件1.3.4、View2、MVVM2.1、model2.2、Activity2.3、ViewModel1、MVP1.1、model1.1.1、Board.jav

2021-09-02 22:37:17 130

原创 MVVM演进一

1、一个类打天下;1.1、activitypublic class JinziqiActivity extends AppCompatActivity { private static String TAG = JinziqiActivity.class.getName(); public enum Player {X, O} public class Cell { private Player value; public Playe

2021-09-02 22:26:13 143

转载 Android系统启动流程(三)解析SyetemServer进程启动过程

前言上一篇我们学习了Zygote进程,并且知道Zygote进程启动了SyetemServer进程,那么这一篇我们就来学习Android7.0版本的SyetemServer进程的启动过程。1.Zygote启动SyetemServer进程在上一篇文章中我们讲到在ZygoteInit.java的startSystemServer函数中启动了SyetemServer进程,如下所示。frameworks/base/core/java/com/android/internal/os/ZygoteInit

2021-08-27 21:45:25 347

转载 Android系统启动流程(二)解析Zygote进程启动过程

目录前言1.Zygote简介2.AppRuntime分析3.Zygote的Java框架层4.Zygote进程总结前言上一篇文章我们分析了init进程的启动过程,启动过程中主要做了三件事,其中一件就是创建了Zygote进程,那么Zygote进程是什么,它做了哪些事呢?这篇文章会给你这些问题的答案。1.Zygote简介在Android系统中,DVM(Dalvik虚拟机)、应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程来创建的,我们也

2021-08-27 21:38:36 618

原创 数组算法题2:三数之和(LeetCode15)

给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.length <= 300...

2021-08-25 22:11:36 179

原创 面试题面试题

面试官:你了解 Android 系统启动流程吗?A:当按电源键触发开机,首先会从 ROM 中预定义的地方加载引导程序 BootLoader 到 RAM 中,并执行 BootLoader 程序启动 Linux Kernel, 然后启动用户级别的第一个进程: init 进程。init 进程会解析init.rc 脚本做一些初始化工作,包括挂载文件系统、创建工作目录以及启动系统服务进程等,其中系统服务进程包括 Zygote、service manager、media 等。在 Zygote 中会进一步去启动 sy

2021-08-15 09:41:21 304

转载 Android系统启动流程(一)解析init进程启动过程

前言作为“Android框架层”这个大系列中的第一个系列,我们首先要了解的是Android系统启动流程,在这个流程中会涉及到很多重要的知识点,这个系列我们就来一一讲解它们,这一篇我们就来学习init进程。1、init简介init进程是Android系统中用户空间的第一个进程,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创建zygote(孵化器)和属性服务等。init进程是由多个源文件共同组成的,这些文件位于源码目录system/core/init。本文将基于Android7.0源码来分

2021-08-14 12:58:02 1167

原创 代码样例代码样例代码样例

1、依赖implementation "com.amap.api:3dmap:latest.integration"implementation "com.amap.api:location:latest.integration"2、bean2.1、CaptureImage/** * on 2020/2/25 * Description: 跟 RddImage 相似的实体类,用于 接口 ${RequestCenter postRddImageList } */public c

2021-08-12 22:56:08 183

原创 AIDL入门学习二

AIDL入门学习二

2021-08-08 15:39:08 808

原创 AIDL入门学习一

0、相关资料视频:文章:Android AIDL使用详解1、概述AIDL 意思即 Android Interface Definition Language,翻译过来就是Android接口定义语言,是用于定义服务器和客户端通信接口的一种描述语言,可以拿来生成用于IPC的代码。从某种意义上说AIDL其实是一个模板,因为在使用过程中,实际起作用的并不是AIDL文件,而是据此而生成的一个IInterface的实例代码,AIDL其实是为了避免我们重复编写代码而出现的一个模板。设计AIDL这门语言

2021-08-08 10:46:41 922

原创 其他文章汇总

1、https://tensorflow.google.cn/lite/guide/android2、examples/lite/examples/image_classification/android/3、一步步做一个数字手势识别APP4、将TensorFlow训练好的模型迁移到Android APP上(TensorFlowLite)5、tensorflow-android 官方demo源码分析6、TensorFlow Lite学习笔记2:生成TFLite模型文件7、tensor

2021-08-06 21:23:17 305

转载 Android arm64-v8a、armeabi-v7a、armeabi、x86详解

各版本分析如下:• mips / mips64: 极少用于手机可以忽略(谷歌最新的文档已经不支持了)• x86 / x86_64: x86 架构的手机都会包含由 Intel 提供的称为 Houdini 的指令集动态转码工具,实现 对 arm .so 的兼容,再考虑 x86 1% 以下的市场占有率,x86 相关的两个 .so 也是可以忽略的• armeabi: ARM v5 这是相当老旧的一个版本,缺少对浮点数计算的硬件支持,在需要大量计算时有性能瓶颈• armeabi-v7a: ARM v7• a

2021-08-06 21:10:03 2947

原创 RxJava再学习系列一

0、相关资料https://www.jianshu.com/p/cd3557b1a474https://www.cnblogs.com/lyysz/p/6344507.html1、代码实战1.1、依赖// 依赖RxAndroid 2X 的依赖库// 增加RxJava 2X 的依赖库implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'implementation 'io.reactivex.rxjava2:rxjava:2.1

2021-07-10 14:27:19 126 2

原创 Glide使用(android:usesCleartextTraffic)

相关文章:AndroidX中Glide包冲突问题上面链接先解决一个冲突问题。1、依赖// glide implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'2、activitypublic class MainActivity extends AppCompatActivity {

2021-07-10 12:11:40 271

原创 AndroidX中Glide包冲突问题

新建了一个测试项目,准备使用Glide测试一些东西,但是却报错。Execution failed for task ':app:checkDebugDuplicateClasses'.> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable > Duplicate class android.support.v4.app.INotifi..

2021-07-10 11:40:43 1392 1

原创 static修饰符学习汇总

1、学习资源1相关视频:https://www.bilibili.com/video/av52528232/1.1、举例:售票/** * 售票厅类 */public class Shop { // 显示构造器 public Shop(String name) { this.name = name; } // 成员属性 public String name; public int tickets = 100; //

2021-07-03 18:18:43 111 1

原创 Java基础学习系列三:动态代理

安卓进阶学习系列四:动态代理

2021-07-03 10:19:47 85

原创 注解代码练习

注解代码练习

2021-06-19 09:46:44 159

原创 Java基础学习系列二:注解和反射

注解与反射

2021-06-14 10:30:44 1144 1

原创 Java基础学习系列一:Java泛型

安卓进阶学习系列一:Java泛型

2021-06-13 14:09:36 1121 1

转载 JVM经典书籍

##JVM系列学习JVM的相关资料《深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)》基于最新JDK1.7,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行全面而深入的分析,深刻揭示JVM的工作原理。以实践为导向,通过大量与实际生产环境相结合的案例展示了解决各种常见JVM问题的技巧和实践《揭秘Java虚拟机:JVM设计原理与实现》《揭秘Java虚拟机:JVM设计原理与实现》从源码角度解读HotSpot的内部实现机制,主要包含三大部分——JV.

2021-05-23 18:31:06 827

转载 Java垃圾回收-可达性分析算法

相关文章:JAVA垃圾回收-可达性分析算法可达性算法、Java引用 详解在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那么很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。不失一般性,如果一个对象没有任何引用与之关联,则说明该对象基本不太可能在其他地方被使用到,那么这个对象就成为可被回收的对象了。这种方式成为引用计数法。这种方式的特点是实现简单,而且效率较高,但是它无法解决循环引用的问题,因此在Java中并没有采用这种方式(Pyt.

2021-05-23 18:20:23 203

原创 Java内存模型(JMM)【垃圾回收相关】

Java内存模型(JMM)【垃圾回收相关】

2021-05-22 23:00:32 542 8

原创 Java虚拟机 平行系列二

基于咕泡学院Jack老师视频相关视频:https://ke.qq.com/course/466802?taid=3966307809042290主要内容:1、什么是运行时数据区;2、运行时数据区为什么要这么划分;3、方法的执行和Java虚拟机栈详解;4、垃圾回收机制和垃圾回收算法;...

2021-05-20 22:03:07 204 1

原创 Java内存模型(JMM)【多线程相关】

Java内存模型(JMM)

2021-05-16 17:01:04 100

空空如也

空空如也

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

TA关注的人

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