自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Binder 驱动及数据结构

binder 驱动相关的代码在目录下。

2023-12-28 14:37:03 397

原创 Binder线程池

在这种情况下,如果Server只有一个线程处理响应,就会导致客户端的请求可能需要排队而导致响应过慢的现象发生。解决这个问题的方法就是引入多线程。【多个客户端不同线程去请求,服务端需要使用多线程机制,binder线程池,创建多个线程去回复多个客户端的请求】binder线程有主线程和非主线程之分,主线程是启动的时候才会有的,每个binder线程池只有一个。,binder线程池的默认大小是16,1个主线程和15个非主线程。

2023-12-28 14:27:23 775

原创 ServiceManager启动

当binder_fd 有消息时,则调用。

2023-12-28 14:26:30 283

原创 Makefile的一些问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、关闭回显$(hide)与@二、退出命令三、shell中的分号一、关闭回显$(hide)与@Makefile的规则:target... : prerequisites ... <tab> commandtarget: 编译目标prerequisites: 目标的依赖command: 使用makefile shell语句混合编写的命令,最终的command命令只包含shell语句,makefile语句在

2021-06-30 20:43:51 738

原创 Git分布式版本控制系统

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Git简介一、Git提交代码原理二、基本命令1.git init2.git add3.git commit4.git status5.git log6.git reset7.git rebase9.git pull10.git push11.git cherry-pick12.git branch13.git merge总结Git简介Git是分布式版本控制系统,优于svn等集中式版本控制系统的是强大的分支管理,可对不同的fea

2021-06-22 15:04:04 186

原创 设计模式--(6)代理模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言实例1.场景2.代码3.类图小结前言代理模式(proxy)为其他对象提供一种代理以控制对这个对象的访问,而访问代理的方法最终调用到真实对象的方法。实例1.场景小六代替吕秀才向郭芙蓉求婚2.代码// 追求方法接口interface IGiveGift{ void GiveDolls(); void GiveFlowers(); void GiveChocolate();}// 追求者实现接口cla

2021-05-25 21:26:10 80

原创 设计模式系列--(3)单一职责

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录实例场景优点实例场景俄罗斯方块游戏需考虑:游戏逻辑:方块的下落、旋转、碰撞判断、移动等游戏逻辑;界面:方块绘出、擦除等窗体类的变化;优点如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。对类进行职责分离,做到单一职责,这样,代码才是真正的易维护,易扩展、易复用、灵活多样。...

2021-05-25 19:54:46 61

原创 设计模式系列--(2)策略模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录实例一、知识点二、代码实现1.引入库2.读入数据总结实例场景:商场收银软件,营业员根据客户所购买商品的单价和数量,向客户收费。一、知识点策略模式: 它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。简单工厂模式是用工厂来生成算法对象,即封装算法,而算法本身只是一种策略,最重要的是这些算法是随时都可能互相替换的,这就是变化点,而封装变化点是面向对象的一种很重要的思维方式

2021-05-06 19:15:02 92

原创 设计模式学习系列--(1)简单工厂模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、原则二、实例1.引入库2.读入数据总结一、原则代码编写的要求:可维护可复用可扩展灵活性面向对象的优点:通过封装(模块化,可复用)、继承(可拓展)、多态(灵活性)把程序的耦合度降低。Ctrl+C 和 Ctrl+V容易导致代码中存在大量的重复冗余代码,维护的时候,可能就是一场灾难,编程有一定原则,就是用尽可能的办法去避免重复。二、实例场景:用C++、Java、C#、VB.NET任意一种面向对象语言实现一个

2021-04-27 20:47:22 124 2

原创 C/C++头文件include规则

C++头文件include规则编译原理基础知识头文件的作用一般头文件的include方法Android.bp方式编译代码头文件include方法编译原理基础知识计算机不能直接识别和执行用高级语言写的指令,必须用编译程序(也称编译器)把C源程序翻译成二进制形式的目标程序,然后再将该目标程序与系统的函数库以及其他目标程序连接起来,形成可执行的目标程序。编译器的工作过程,一般说来编译器会做以下几个过程:1.预处理阶段:负责将源程序聚合在一起,将那些称为宏的缩写形式转换为源语言的语句;其中包括查找.h文件,

2021-04-14 19:48:22 8320

原创 python学习之 《编写高质量代码---改善Python程序的91个建议》之建议38 使用Counter进行计数统计

计数:统计某一项出现的次数其实不同的数据结构本身带有相应的计数函数API,比如dataframe.values_count()38.1基本用法Counter类是自python2.7起增加的,属于字典类的子类,是一个容器对象,主要用来统计散列对象,支持集合操作+ - & |,其中&和|分别返回两个Counter对象各元素的最小值和最大值38.2 elements()可以使用elements()方法来获取Counter中的key值38.3 most_commin()

2020-08-06 19:42:03 148

原创 python学习之 《编写高质量代码---改善Python程序的91个建议》之建议38 使用copy模块深拷贝对象

浅拷贝:构造一个新的复合对象,并将从原对象中发现的引用插入该对象中,浅拷贝的实现方式有多种,如工厂函数,切片操作,copy模块中的copy操作等;深拷贝:也构造一个新的复合对象,但是遇到引用会继续递归拷贝其所指向的具体内容,也就是说它会针对引用所指向的对象继续执行拷贝,因此产生的对象不受其他引用对象操作的影响,深拷贝的实现需要依赖copy模块的deepcopy()操作。class AA ab = copy.copy(a)修改b中成员变量print(a)会发现a中也修改了,a=b.

2020-08-06 19:21:36 91

原创 python学习之 《编写高质量代码---改善Python程序的91个建议》之建议37 按需选择sort() 或者sorted()

37.1 定义sorted(iterable[,cmp[,key[,reverse]]])//可迭代对象,返回排序的列表,原列表不变, 2.4以后引入s.sort([cmp[,key[,reverse]]])//不需要复制原有列表,直接修改原有列表,返回None,消耗内存小cmp参数python3上已经移除,key = cmpkey表示要进行排序的元素sorted(L, key = lambda x, y: (x,y))sorted可以对不同的数据结构进行排序从而满足不同的需求3

2020-08-06 19:04:20 115

原创 python学习之 《编写高质量代码---改善Python程序的91个建议》之建议36 字符串的基本用法

建议36:字符串的基本用法36.1 编程,注重数值和字符串的处理;36.2 多行字符串编写python遇到未闭合的小括号时,会自动将多行代码拼接为一行,且把相邻的两个字符串字面量拼接在一起36.3 判断一个字符串是不是普通字符串,应该使用isinstance(s, basestring),因为basestring是str和unicode的基类,包含了普通字符串和unicode类型;字符串可以通过前面加u的方式,转换为unicode类型36.4 字符串性质判定isalnum(.

2020-08-05 19:15:42 97

原创 Python安装问题以及pip工具安装使用问题

流程:下载python–>傻瓜式安装—>添加python环境变量---->在CMD(快捷键win+r)中找到easy_install.exe的目录---->输入easy_install.exe pip---->添加pip环境变量–OK(1)添加python环境变量:例如我的python路径为:C:\Program Files\python\;,即在path中添加此...

2019-11-14 21:21:22 259

空空如也

空空如也

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

TA关注的人

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