- 博客(52)
- 收藏
- 关注
原创 Android 代码模式的理解
是一种在编程中非常有用的设计模式,它允许你在运行时创建一个代理对象来代替原始对象,以便在方法调用前后执行额外的逻辑。
2024-12-20 19:20:04
312
原创 Android 对Socket的理解
socket也被称为“套接字”,它是一种网络通信的方式,他的网络通信实现也是基于TCP/IP的。他提供了一些接口让外部实现TCP/IP封装和数据的传输。socket通信的主要特点有数据丢失率低,使用简单且易于移植。
2024-11-30 18:04:12
131
原创 Android socket跨进程通信
总结起来就是怕父进程binder线程有锁,然后子进程的主线程一直在等其子线程(从父进程拷贝过来的子进程)的资源,但是其实父进程的子进程并没有被拷贝过来,造成死锁,所以fork不允许存在多线程。而非常巧的是Binder通讯偏偏就是多线程,所以干脆父进程(Zgote)这个时候就不使用binder线程。
2023-06-05 11:35:36
122
原创 Android 多条if-else条件语句简化之策略模式
Android 多条if-else条件语句简化之策略模式一、遇到的问题在项目实际开发中,有时会遇到根据类型去做不同的处理,这时就会用到if-else条件语句进行判断并进行逻辑处理。从功能的设计上来说,使用if--else进行逻辑判断也没有什么不妥,但是从架构设计来说,这种方式其实是非常不优雅的,因为如果需要添加更多的出行方式,就必须去修改原有的代码,这会直接导致代码块臃肿、扩展性差以及后期维护困难,更违反了设计模式中的”开放-封闭”原则。那么应该如何去改进它呢?答案是:策略模式!二、策略模式简介
2021-01-27 09:54:19
1460
1
原创 Android git --amend、reset、revert、rebase又通通全部学了一遍
Android git --amend、reset、revert、rebase又通通全部学了一遍非常有用,希望自己以后是战无不胜、无敌的状态
2021-01-24 22:44:36
372
2
原创 Android git 修改已经提交的注释
Android git 修改已经提交的注释转载:https://www.cnblogs.com/damoblog/p/13288695.html
2021-01-24 21:58:40
286
原创 Android git rebase和git cherry-pick的使用
Android git rebase和git cherry-pick的使用一、git rebase
2021-01-21 00:33:51
454
1
原创 2020年年终总结
今天是2020年的最后一天,按照惯例,来写下自己在2020年的工作和生活上的方方面面的感悟。这里提一下,2019年的年终总结没有写在博客上,是因为那时,元旦节当天,公司还叫我加班,为了项目的进展,当时加班到了很晚,而且当时身心疲惫,太心累了,没有写。2020年,总体上感觉还行,工作生活也还算顺利,不过还是有很多目标没有完成,比较遗憾。自己的进步程度,还是太少。工作这么多年来,自己会经常关注一些志同道合的优秀的人,而Android开发者郭霖就是其中的一位,我会关注他技术动向,关注他对方方面面的看法,我发现
2020-12-31 07:39:50
163
1
原创 Android tcp和udp的区别
Android tcp和udp的区别UDP协议在数据包中加入端口信息,这就需要新的协议。最简单的实现叫做 UDP 协议,它的格式几乎就是在数据前面,加上端口号。UDP 数据包,也是由"标头"和"数据"两部分组成。"标头"部分主要定义了发出端口和接收端口,"数据"部分就是具体的内容。UDP 数据包非常简单,"标头"部分一共只有8个字节,总长度不超过 65,535 字节,正好放进一个 IP 数据包。TCP协议UDP 协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方
2020-12-30 20:17:39
524
原创 Android 下载的文件进行MD5校验
Android 下载的文件进行MD5校验Android app下载的文件,为什么要进行MD5验证,请问什么是MD5,为什么要验证,用什么工具验证呢?MD5是message-digest algorithm 5(信息-摘要算法)的bai缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变。因此,我们可以通过对比同一文
2020-10-11 22:57:29
2866
原创 Android 使用okhttp实现webSocket
Android 使用okhttp实现webSocket一、什么是webSocket1、ws是一个协议,归属于IETF2、HTTP是运行在TCP协议传输层上的应用协议,而ws是通过HTTP协议协商如何连接,然后独立运行在TCP协议传输层上的应用协议。3、ws是一个持久化的协议,相对于HTTP这种非持久的协议来说。4、ws约定了一个通信的规范,通过一个握手的机制,客户端和服务器之间能建立一个类似tcp的连接,从而方便它们之间的通信二、为什么需要 WebSocket初次接触 WebSocket 的人
2020-10-11 17:04:04
1690
原创 Android 对Mac地址对认识和获取
Android 对Mac地址对认识和获取一、认识1、网卡和Mac地址网卡是一块计算机硬件,设计这个网卡,是用来允许我们使用的每一台计算机,都可以在计算机网络上进行通讯。由于网卡拥有MAC地址,因此属于OSI模型的第2层。它使得用户可以通过电缆或无线相互连接。每一个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中。在网络上的每一个计算机都必须拥有一个独一无二的MAC地址。没有任何两块被生产出来的网卡拥有同样的地址。这是因为电气电子工程师协会(IEEE)负责为网络接口控制
2020-10-11 16:28:42
699
原创 Android Framework层开发
转载:https://blog.youkuaiyun.com/qq_25804863/article/details/102851515
2020-09-22 08:47:24
1186
原创 Android各版本特性总结
Android各版本特性总结(从最新的开始)Android R 11.01、更好地支持瀑布屏,即无边框的全面屏2、提供了适用于不同运营商的各种5G图标显示解决方案Android Q 10.01、适配折叠屏2、全屏手势导航3、应用使用黑色主题Android P 9.01、刘海屏的支持2、Android 备份加密Android O 8.01、画中画模式2、TextView 字体自动适配Android N 7.01、通知栏快捷回复2、对VR的支持...
2020-09-22 08:33:32
1012
原创 Android 关于OkHttp的面试题
Android 关于OkHttp的面试题一、简述一下OkHttpOkHttp是一个非常优秀的网络请求框架,已被谷歌加入到Android的源码中。目前比较流行的Retrofit也是默认使用OkHttp的。1、支持http2,对一台机器的所有请求共享同一个socket2、内置连接池,支持连接复用,减少延迟3、支持透明的gzip压缩响应体GZIP是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量开GZIP有什么好
2020-09-21 09:08:02
2411
1
原创 Android 集合类HashMap、SparseArray 、ArrayMap的使用特点和使用场景
Android 数据结构HashMap、SparseArray 、ArrayMap的使用特点和使用场景一、
2020-09-20 18:19:49
518
原创 Android 性能调优工具Profile的使用
Android 性能调优工具Profile的使用参考链接https://www.jianshu.com/p/e75680772375
2020-09-19 14:50:47
475
原创 Android 进程的几种状态
Android中的进程简介(可见进程,前台进程,后台进程等)我最近在看一些Android进程方面的知识,发现自己在这方面有些欠缺。所以在查阅完资料后特意在此做一下笔记,巩固这方面的知识。Android中有多种进程,我列出下面几种:前台进程,可见进程,服务进程,后台进程,空进程。它们的定义特点分别如下:前台进程这个进程是最重要的,是最后被销毁的。前台进程是目前正在屏幕上显示的进程和一些系统进程,也就是和用户正在交互的进程。例如,我正在使用qq跟别人聊天,在我的Android手机上这个进程就应该是前台进
2020-09-19 10:20:02
951
原创 Android系统启动流程、应用启动流程、Activity启动流程
Android系统启动流程、应用启动流程、Activity启动流程一、Android系统的启动流程1、开机,系统加电,执行BootLoader。BootLoader负责初始化软件运行需要的最小硬件环境,最后加载内核到内存2、内核加载进内存后,首先进入内核引导阶段,在引导阶段的最后,调用start_kernel进入内核启动阶段。start_kernel最终启动用户空间的init程序3、init程序负责解析init.rc配置文件,开启系统守护进程。两个最重要的守护进程是zygote进程和ServiceM
2020-09-16 16:42:09
770
原创 Mac环境下,Git的配置和GitHub的使用详解
因为自己用的是MacBook Pro,所以该博文主要是在Mac环境下进行操作后编写。用Windows的小伙伴也可以参考,大同小异。一、Mac电脑安装Git1、首先在终端,进入用户根目录(桌面目录),通过命令Git查看电脑是否已经安装。输入命令:git(1)如果安装过,会出现如下信息:(2)否则未安装过,通过homebrew安装Git。未安装homebrew,需安装home...
2019-04-01 11:19:32
658
原创 2018年终总结-对未来的又一次展望
今天是2018年的最后一个工作日。即使今年我一篇技术博客也没有写,但是年终总结必须要写的。 今年我很惭愧,因为一篇技术博客也没有写。今年我对自己有点失望,因为我学的东西太少。今年我有点沮丧,因为我还是没有坚持自己的规划,我老是半途而费。 今年虽然不是很如意,但是也有收获。至少有份工作,挣的钱能养活自己;保持每一周都去锻炼身体;梦想还没有丢失,学习...
2018-12-29 20:44:53
671
原创 2017年终总结-一个关乎我职业生涯的年份
今天是2017年的最后一天,还有几分钟就到2018年了,那时是决定一定要写年终总结的,但是个人的自制能力太低,决定了我的层次,但我还是不会放弃让自己变得更好的。今年还是不错的,Android开发能力有了很大提高。遗憾的是自己的很多目标都没有完成,自己的愿景也没达到,希望2018年一切顺利,一切安好。2018年,加油!
2017-12-31 23:53:58
262
原创 经验总结-RecyclerView列表中获取每个item中已经选择的CheckBox值
最近在做一个公司的项目—平板广告机,相当于一个超大手机里面打开一个App。需求中有一个功能是从服务器获取广告机可能出现的问题数据,Android开发人员用列表显示,这些数据是给公司的检修人员看的。需求:点击页面上的一个按钮,弹出一个包含列表的页面,列表的每一项中只含有一个CheckBox控件,如果选中相应的CheckBox控件,那么当检修人员点击提交按钮时,会把每个选中的CheckBo
2017-11-26 21:22:34
6810
1
原创 经验总结-谈谈我对LayoutInflater中inflate方法的认识
我为什么要写这篇博文呢,就是自己太以为是了,总认为LayoutInflater这个类不重要
2017-11-25 14:26:39
206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人