自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

谢国荣的博客

我必须坚持、认真、用心的写好每一篇博客

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

原创 Android socket跨进程通信

总结起来就是怕父进程binder线程有锁,然后子进程的主线程一直在等其子线程(从父进程拷贝过来的子进程)的资源,但是其实父进程的子进程并没有被拷贝过来,造成死锁,所以fork不允许存在多线程。而非常巧的是Binder通讯偏偏就是多线程,所以干脆父进程(Zgote)这个时候就不使用binder线程。

2023-06-05 11:35:36 44

原创 Android tcp相关知识点

tcp

2023-01-09 09:27:37 149

原创 HTTP2与HTTP1.1的区别

HTTP2与HTTP1.1的区别

2023-01-09 08:25:21 408

原创 2021年终总结

2021年年终总结

2021-12-31 22:24:57 207

原创 Android 多条if-else条件语句简化之策略模式

Android 多条if-else条件语句简化之策略模式一、遇到的问题在项目实际开发中,有时会遇到根据类型去做不同的处理,这时就会用到if-else条件语句进行判断并进行逻辑处理。从功能的设计上来说,使用if--else进行逻辑判断也没有什么不妥,但是从架构设计来说,这种方式其实是非常不优雅的,因为如果需要添加更多的出行方式,就必须去修改原有的代码,这会直接导致代码块臃肿、扩展性差以及后期维护困难,更违反了设计模式中的”开放-封闭”原则。那么应该如何去改进它呢?答案是:策略模式!二、策略模式简介

2021-01-27 09:54:19 1306 1

原创 Android git --amend、reset、revert、rebase又通通全部学了一遍

Android git --amend、reset、revert、rebase又通通全部学了一遍非常有用,希望自己以后是战无不胜、无敌的状态

2021-01-24 22:44:36 299 2

原创 Android git 修改已经提交的注释

Android git 修改已经提交的注释转载:https://www.cnblogs.com/damoblog/p/13288695.html

2021-01-24 21:58:40 218

原创 Android git rebase和git cherry-pick的使用

Android git rebase和git cherry-pick的使用一、git rebase

2021-01-21 00:33:51 348 1

原创 Android面试提纲

Android面试提纲

2021-01-14 22:42:00 94

原创 Android EventBus的详解

Android EventBus的详解一、

2021-01-04 18:30:51 94

原创 2020年年终总结

今天是2020年的最后一天,按照惯例,来写下自己在2020年的工作和生活上的方方面面的感悟。这里提一下,2019年的年终总结没有写在博客上,是因为那时,元旦节当天,公司还叫我加班,为了项目的进展,当时加班到了很晚,而且当时身心疲惫,太心累了,没有写。2020年,总体上感觉还行,工作生活也还算顺利,不过还是有很多目标没有完成,比较遗憾。自己的进步程度,还是太少。工作这么多年来,自己会经常关注一些志同道合的优秀的人,而Android开发者郭霖就是其中的一位,我会关注他技术动向,关注他对方方面面的看法,我发现

2020-12-31 07:39:50 118 1

原创 Android MQTT的使用

Android MQTT的使用

2020-12-30 20:20:32 427

原创 Android tcp和udp的区别

Android tcp和udp的区别UDP协议在数据包中加入端口信息,这就需要新的协议。最简单的实现叫做 UDP 协议,它的格式几乎就是在数据前面,加上端口号。UDP 数据包,也是由"标头"和"数据"两部分组成。"标头"部分主要定义了发出端口和接收端口,"数据"部分就是具体的内容。UDP 数据包非常简单,"标头"部分一共只有8个字节,总长度不超过 65,535 字节,正好放进一个 IP 数据包。TCP协议UDP 协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方

2020-12-30 20:17:39 451

原创 Android GreenDao的使用

Android GreenDao的原理和使用

2020-10-21 21:17:13 172

原创 Android 下载的文件进行MD5校验

Android 下载的文件进行MD5校验Android app下载的文件,为什么要进行MD5验证,请问什么是MD5,为什么要验证,用什么工具验证呢?MD5是message-digest algorithm 5(信息-摘要算法)的bai缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变。因此,我们可以通过对比同一文

2020-10-11 22:57:29 2681

原创 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 1414

原创 Android 对Mac地址对认识和获取

Android 对Mac地址对认识和获取一、认识1、网卡和Mac地址网卡是一块计算机硬件,设计这个网卡,是用来允许我们使用的每一台计算机,都可以在计算机网络上进行通讯。由于网卡拥有MAC地址,因此属于OSI模型的第2层。它使得用户可以通过电缆或无线相互连接。每一个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中。在网络上的每一个计算机都必须拥有一个独一无二的MAC地址。没有任何两块被生产出来的网卡拥有同样的地址。这是因为电气电子工程师协会(IEEE)负责为网络接口控制

2020-10-11 16:28:42 656

原创 Android VideoView详解和简单使用

Android VideoView详解和简单使用

2020-10-08 23:33:11 764

原创 Android 屏幕适配

Android 屏幕适配

2020-10-07 23:53:04 214

原创 Android apk打包的原理和流程

Android apk打包的原理和流程

2020-10-07 23:52:06 352

原创 Android 动态布局的实现

Android 动态布局的实现1、页面实现动态布局

2020-09-29 23:17:25 253

原创 Android OTA升级

Android OTA升级

2020-09-29 23:15:38 159

原创 Android Framework层开发

转载:https://blog.csdn.net/qq_25804863/article/details/102851515

2020-09-22 08:47:24 1060

原创 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 827

原创 Android SurfaceView源码分析

Android SurfaceView源码分析

2020-09-21 23:52:49 1104

原创 Android AMS、WMS、PMS相关面试题

Android AMS、WMS、PMS相关面试题一、AMS

2020-09-21 23:33:11 4948 2

原创 Android 关于OkHttp的面试题

Android 关于OkHttp的面试题一、简述一下OkHttpOkHttp是一个非常优秀的网络请求框架,已被谷歌加入到Android的源码中。目前比较流行的Retrofit也是默认使用OkHttp的。1、支持http2,对一台机器的所有请求共享同一个socket2、内置连接池,支持连接复用,减少延迟3、支持透明的gzip压缩响应体GZIP是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量开GZIP有什么好

2020-09-21 09:08:02 2245

原创 Android 集合类HashMap、SparseArray 、ArrayMap的使用特点和使用场景

Android 数据结构HashMap、SparseArray 、ArrayMap的使用特点和使用场景一、

2020-09-20 18:19:49 418

原创 Android 性能调优工具Profile的使用

Android 性能调优工具Profile的使用参考链接https://www.jianshu.com/p/e75680772375

2020-09-19 14:50:47 383

原创 Android 进程的几种状态

Android中的进程简介(可见进程,前台进程,后台进程等)我最近在看一些Android进程方面的知识,发现自己在这方面有些欠缺。所以在查阅完资料后特意在此做一下笔记,巩固这方面的知识。Android中有多种进程,我列出下面几种:前台进程,可见进程,服务进程,后台进程,空进程。它们的定义特点分别如下:前台进程这个进程是最重要的,是最后被销毁的。前台进程是目前正在屏幕上显示的进程和一些系统进程,也就是和用户正在交互的进程。例如,我正在使用qq跟别人聊天,在我的Android手机上这个进程就应该是前台进

2020-09-19 10:20:02 865

原创 Android APP的性能优化

本篇文章主要是总结自己在工作中,对APP性能优化的经验总结

2020-09-18 22:38:01 418

原创 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 598

原创 Mac环境下,Git的配置和GitHub的使用详解

因为自己用的是MacBook Pro,所以该博文主要是在Mac环境下进行操作后编写。用Windows的小伙伴也可以参考,大同小异。一、Mac电脑安装Git1、首先在终端,进入用户根目录(桌面目录),通过命令Git查看电脑是否已经安装。输入命令:git(1)如果安装过,会出现如下信息:(2)否则未安装过,通过homebrew安装Git。未安装homebrew,需安装home...

2019-04-01 11:19:32 391

原创 2018年终总结-对未来的又一次展望

        今天是2018年的最后一个工作日。即使今年我一篇技术博客也没有写,但是年终总结必须要写的。        今年我很惭愧,因为一篇技术博客也没有写。今年我对自己有点失望,因为我学的东西太少。今年我有点沮丧,因为我还是没有坚持自己的规划,我老是半途而费。        今年虽然不是很如意,但是也有收获。至少有份工作,挣的钱能养活自己;保持每一周都去锻炼身体;梦想还没有丢失,学习...

2018-12-29 20:44:53 606

原创 2017年终总结-一个关乎我职业生涯的年份

今天是2017年的最后一天,还有几分钟就到2018年了,那时是决定一定要写年终总结的,但是个人的自制能力太低,决定了我的层次,但我还是不会放弃让自己变得更好的。今年还是不错的,Android开发能力有了很大提高。遗憾的是自己的很多目标都没有完成,自己的愿景也没达到,希望2018年一切顺利,一切安好。2018年,加油!

2017-12-31 23:53:58 243

原创 经验总结-RecyclerView列表中获取每个item中已经选择的CheckBox值

最近在做一个公司的项目—平板广告机,相当于一个超大手机里面打开一个App。需求中有一个功能是从服务器获取广告机可能出现的问题数据,Android开发人员用列表显示,这些数据是给公司的检修人员看的。需求:点击页面上的一个按钮,弹出一个包含列表的页面,列表的每一项中只含有一个CheckBox控件,如果选中相应的CheckBox控件,那么当检修人员点击提交按钮时,会把每个选中的CheckBo

2017-11-26 21:22:34 6373 1

原创 经验总结-谈谈我对LayoutInflater中inflate方法的认识

我为什么要写这篇博文呢,就是自己太以为是了,总认为LayoutInflater这个类不重要

2017-11-25 14:26:39 190

原创 经验总结-完整介绍Android Studio中Git的使用之从GitHub上clone代码到本地(六)

当我们刚到公司入职时,如果自己参与的项目已经开始,那么我们是要获取到一份项目代码放到本地进行开发的,比如公司代码放在在GitHub上进行托管。那么我们就要从GitHub上clone代码到本地了,详述如下: 一、首先是你已经按照Git系列要求或是你自己的经验已经配置好了Git。二、然后进行clone1.使用Git clone项目到本地中是很简单的,在Android Studio中也是

2017-11-13 00:40:56 6106

原创 经验总结-完整介绍Android Studio中Git的使用之.gitignore和README文件的说明(五)

我在Git系列二创建仓库时有提到这两个文件,但是没有说明,就是留到现在说的。为什么要用这两个文件呢?首先是.gitignore,当我们在团队开发中,自己有更改的代码,然后要push到远程仓库,但是我们只想push自己修改过的代码,而其它没有修改过,不进行push,而是忽略掉,那就要用到这个.gitignore了。对于README,我们可以用来显示一些说明的图片。下面是一些操作小参考: 1.

2017-11-13 00:18:32 677

原创 经验总结-完整介绍Android Studio中Git的使用之GitHub更新代码到本地(四)

Git系列三已经介绍完上传代码,那当GitHub上增加了其它开发人员的代码,我们要更新到自己的本地仓库上(或者说更新到自己的本地项目上)怎么做呢?其实很简单呢:当我们要更新代码时,就要执行Git的pull操作,pull我们可以理解为update,就是更新代码的意思,update更新的姿势是这样的这只是pull的一种方式,你也可以项目右键去寻找pull的方式。本篇博客

2017-11-13 00:01:02 2142

空空如也

空空如也

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

TA关注的人

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