自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的安卓之路

安卓工程师一枚,想从下往上搞懂linux、framework、应用层

  • 博客(78)
  • 收藏
  • 关注

原创 Linux UART驱动框架及分析

Linux UART驱动框架及分析(基于imx6ull)

2023-06-25 09:09:29 154

原创 leetcode 222. 完全二叉树的节点个数 分析

2023-05-29 21:09:43 174

原创 uboot移植视频笔记

麦子学院uboot移植视频源码和笔记

2023-05-05 14:37:56 209

原创 leetcode 142 环形链表II 证明

2023-04-08 17:08:08 91

原创 socket网络编程课件

linux 系统、网络编程

2022-11-24 11:06:07 224

原创 01 运算符重载

剑指offer:01 运算符重载

2022-10-22 22:49:28 180

原创 字符串定义及初始化的几种方式

字符串数组初始化的区别

2022-10-21 22:48:46 4369

原创 Linux驱动怎么查找头文件

写linux驱动的时候,总会包含很多头文件,那么是怎么知道需要包含哪些头文件呢?要知道如果使用man,是查找不到的。

2022-10-21 11:45:51 218

原创 C++拷贝构造函数的形参为什么一定要是引用

C++拷贝构造函数传引用和传值的区别

2022-10-18 00:58:34 538 1

原创 从零手写“仿Linux“操作系统

手写一个类似linux的操作系统。主要实现了内存管理、线程、进程、文件系统、shell、进程间通信,是用来学习linux操作系统的不错选择,自从我做完这么一个系统再去看《linux内核设计的艺术》感觉没那么吃力

2022-10-17 10:27:45 1237

原创 C++重写拷贝构造函数和赋值运算符

那么需要重写拷贝构造函数和赋值运算符。如果类的某个成员属性是保存在堆中的话。

2022-10-12 11:31:37 651

原创 电脑ping不通Ubuntu

我启动192.168.26.128这台虚拟机的时候,电脑是可以通过终端连接到虚拟机的;当我关了这台之后,想连接到192.168.83.129这台却失败了。虚拟机的网络适配器模式仍然是NAT模式。打开网络和共享中心-->更改适配器设置-->VMnet8-->修改IPV4的网段和你要启动的虚拟机一致即可。我电脑上装了两个虚拟机,它们的ip地址的网段是不一样的。

2022-09-24 22:28:07 1304

原创 Vscode markdown 添加、粘贴、导入图片

网上查了很多资料,很多都说建个assets文件夹,放入图片,可是我复制了图片死活粘贴不进Vscode,可以这样做:首先我这里面是没有图片的,如果你在Vscode里面粘贴图片是粘贴不了的:打开这个docs文件夹,将图片拷贝进去:再看Vscode中的文件夹,可以看到拷贝进来的图片:markdown中使用:...

2022-05-28 23:44:13 9003 2

原创 JAVA中是值传递还是引用传递?

Java 到底是值传递还是引用传递? - 知乎 https://www.zhihu.com/question/31203609Java引用和C++引用的区别 - Gavin.Lin - 博客园 https://www.cnblogs.com/csuer/p/4620845.html

2021-12-20 17:14:18 1135

原创 静态内部类不持有外部类的引用

1、新建一个类A2、MainActivity中分别进行三种测试:直接新建个对象、新建个静态匿名对象、定义个静态类再新建个对象3、查看字节码总结:可见如果想让类的对象不持有外部类的引用,有两个方法:1 新建个static内部类继承原来的类,再创建这个静态类的实例,如测试三; 2 直接新建个实例,但是在前面加static关键字如测试二。这个在解决handler的内存泄漏会用得上...

2021-12-20 13:31:56 819

原创 AndroidStudio编译AIDL文件

AndroidStudio如何编译AIDL文件生成class文件

2021-12-11 16:52:46 2438

原创 接口和抽象类的匿名实现类

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Handler handler = new Handler(.

2021-12-05 21:04:04 143

原创 抽象类实现某个接口

/** * created by wlx on 2021/11/26 */public interface Itest { public void eat(); public void play();}一、情景一抽象类没有实现接口的方法public abstract class Test implements Itest{}子类需实现接口的全部方法,否则报错public class Testapp extends Test{ @Overri...

2021-11-26 10:23:48 2696

原创 执行gradle命令报错:* Where: Settings file ‘xxx\settings.gradle‘ line: 1

降低Gradle的版本,我之前采用7.0以上的,现在改为如下:可能还会报一个错:Cannot resolve external dependency com.google.android.material:material:1.3.0 because no repositorie在整个project的build.gradle添加如下:...

2021-11-20 21:09:39 3624

原创 Gradle download:kotlin-compiler-embeddable下载慢

1、进入Maven仓库地址2、进行下面的操作3、先让AndroidStudio下载一会,然后取消,这样它在磁盘中会生成一个文件夹,4、结果应该是这样的5、再重新打开AndroidStudio同步一下即可...

2021-10-28 17:05:11 5221 2

原创 Eclipse 安装tomcat服务器

一、安装基本的tomcat服务器二、添加自己的访问路径

2021-10-06 18:12:32 189

原创 Looper.java中的一些思考

public class Test { public static void main(String[] args) { Looper.prepare(); Looper ceo=Looper.getCeo(); System.out.println("主线程"+ceo); System.out.println("主线程"+ceo.threadlocal); new Thread(new Runnable() { .

2021-09-30 20:03:24 693

原创 2021-09-23 道阻且长,行则将至

2021年之前的我还是处于迷茫的时期,有时候不是不努力,只是真的不知道该往哪个方向去走,如今在学着别人四年前的东西,有一种说不出的感觉,想想如果当时在学校能够知道自己以后想做什么,大学好好学技术,也许我会过得更充实,更快乐些,想想出来工作那么久了,现在一事无成,一无所有,应该没人比我惨的了吧。 但这些都已经过去了,我只能接受现实,现在唯一能做的就是收拾下悲惨的过往,重新出发,有了方向,剩下的只有坚持。纵然现在很累,但还不是歇息的时候,纵然前面道险山高,吾亦...

2021-09-23 20:26:13 111

原创 安卓AOP,使用AspectJ报错

Caused by: org.gradle.tooling.BuildException: Unable to read jar file E:\android_project\sysytem_framework\Permission_AOP\app\build\intermediates\transforms\ajx\debug\29.jar原因:Around的方法不能是private的,改成public即可

2021-09-20 22:38:09 309

原创 Fragment的一些总结

一、Fragment的创建二、Fragment的删除三、Fragment的替换四、Fragment的和Activity的通信五、Fragment和Fragment的通信六、超级易错点

2021-09-14 00:41:46 280

原创 自定义View:仿抖音直播点赞效果

仿抖音点赞效果,一句代码可给任意控件添加点赞效果

2021-09-13 19:47:45 719

原创 一篇永远搞定LayoutInflater源码

由现象到源码分析LayoutInflater参数的差异造成的问题

2021-09-10 00:28:48 169

原创 自定义View: 九宫格图形解锁(Kotlin版)

效果:代码:package com.example.kotlin_testimport android.content.Contextimport android.graphics.Canvasimport android.graphics.Colorimport android.graphics.Paintimport android.util.AttributeSetimport android.view.MotionEventimport android.view..

2021-09-08 11:10:47 318

原创 Java反射的使用

定义:加载完类之后,在堆内存的方法区中就产生一个Class类型的对象(注意和关键字class的区别,class是我们平时定义类用的,Class可以说是表示类的类),一个类只有一个Class对象,这个对象就包含有类的结构信息,我们就可以通过这个对象获得类的结构信息。这个对象就像一面镜子,我们可以通过这个镜子看到类的结构,所以,我们形象的称之为:反射 作用:反射在调用类的私有方法、私有属性,获取注解方面的用处很大 举例:import java.lang....

2021-07-26 15:59:27 159

原创 静态代码块、非静态代码块和构造函数的执行顺序

例子1:public class test1 { public static void main(String[] args) throws ClassNotFoundException { } public test1() { System.out.println("test1构造函数"); } static { System.out.println("test1静态代码块"); } {

2021-07-26 10:43:08 435

原创 面向对象六大原则

1、单一职责原则 缩写:SRP(Single Respinsibility Principle) 定义:就一个类而言,应该只有一个引起它变化的原因 简而言之,完全不同的功能不应该放在一个类中实现,一个类中应该是相关性很高的函数(或者数据)的封装 举例: 一个图片加载类,里面既有内存缓存(注意和sd卡存取是有区别的)的存取,也有图片的下载,显示功能。根据单一职责原则,可以另外定义一个类实现缓存的存取,而不是放在...

2021-07-25 16:04:08 114 1

原创 回调的原理

什么是回调?先举个例子再总结,不然说得挺抽象的首先要知道C++里面是多继承的,这样就会形成多对多的关系,十分复杂。所以Java里面只支持单继承,一个类只能继承一个父类。但是这样有个缺点,如果子类想实现其它类的方法,那怎么办?所以接口就登场了,子类可以实现多个接口确保实现各种想要的方法。 接口,也就是interface可以理解成角色,先具体的例子理解回调的原理:package com.example.javaproject;/** * 第一步...

2021-07-25 02:06:39 619

原创 Android Studio运行java程序的方法

1、File-->new-->new module-->Java Library2、配置信息,finish3、得到4、点击Edit Configurations5、点击Application ,选择+号,选择Application6、接着配置,配置好后点击apply7、测试8、结果9、配置模块下的build.gradle10、运行OK...

2021-07-24 15:48:36 4241 1

原创 final static private的区别

1、final关键字举例1:举例2:举例3:2、static和final的区别3、final和private的区别

2021-07-24 12:25:19 406

原创 LruCache、HashMap和LinkedHashMap的使用

学习链接,看完基本能搞定HashMap源码、LinkedHasMap源码和LruCache的原理:彻底解析Android缓存机制——LruCacheHashMap全B站最细致源码分析课程LinkedHashMap讲解及如果运用在LruCache1、LinkedHashMap继承自HashMap。HashMap取出来是无序的;有序的话用LinkedHashMap,而且LinkedHashMap可以遵循LRU算法,能把最近不常使用的元素删除,可按活跃度排序,如:HashMap:.

2021-07-24 11:58:22 271 2

原创 安卓进阶八:Activity的启动过程

目录一、Activity的分类二、Activity的启动方式三、根Activity的启动过程四、子Activity的在根Activity相同进程中的启动过程五、子Activity在新进程中的启动过程一、Activity分类 Activity可分为根Activity和子Activity两种 根Activity是以快捷图标显示在Launcher中,它的启动过程就代表了一个应用程序的启动过程 子Activity由根Activity或...

2021-07-15 00:40:50 204

原创 安卓进阶七:图解binder(4)-Client获取Server接口

这是学习罗升阳《安卓系统源代码情景分析》的笔记和总结 图1 是Client获取Server接口的详细代码 图2是代码的架构,流程,方便整体把握图1图2

2021-07-12 15:28:21 167

原创 安卓进阶七:图解binder(3)-Server启动及被ServiceManager唤醒之后

这是学习罗升阳《安卓系统源代码情景分析》的笔记和总结。 图1 Server启动过程及被ServiceManager唤醒后详细代码 图2 代码的架构和流程的总结,方便整体把握图1图2...

2021-07-11 22:36:27 123

原创 安卓进阶七:图解binder(2)-ServiceManager启动过程

这是学习罗升阳大佬的《安卓系统源代码情景分析》的笔记和总结。 图1 ServiceManager如何成为守护进程的详细代码 图2ServiceManager被Server唤醒后的详细代码 图3 ServiceManager的代码结构、流程的总结,方便整体把握图1图2图3...

2021-07-11 21:52:53 145

原创 安卓进阶七:图解binder(1)-内存映射

2021-07-11 10:36:10 160

空空如也

空空如也

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

TA关注的人

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