自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (7)
  • 收藏
  • 关注

原创 记录:如何编写linux驱动,用module的方式

编写一个 Linux 的驱动,用 module 方式开发,一般来说,编写一个 Linux 的驱动,需要遵循以下步骤:

2023-11-05 10:54:54 110

原创 一个Binder的前生今世 (二):Binder进程和线程的创建

前篇文章[一个Binder的前生今世 (一):Service的创建](https://blog.csdn.net/arrowyi_gbd/article/details/132789169) 讲了一个Service是如何创建以及如何与客户端建立联系的。本篇主要介绍了Binder进程和线程是如何创建的,以及如果进入loop循环等到驱动(对端)指令,并处理的

2023-10-29 11:06:18 225

原创 一个Binder的前生今世 (一):Service的创建

目前介绍binder的文章很多,但是大部分都是分层来介绍的,从驱动再到Service manager等,这些文章对研究binder的机制给了很多的帮助和教学,但是这些大部分是从系统的角度去阐述binder机制的,作为应用开发者,希望能有一个从应用开发角度去理解 binder 和其机制的介绍文章,比如从binder的生命周期角度去了解等,遂产生了这篇文章异或笔记。然后调用Parcel把这个对象写入。我们接下来就来看看,我们服务端生成了一个Service的binder后,是如何通过Parcel传递出去的。

2023-09-17 10:04:40 160 2

原创 【Jetpack Architecture Components 之 Lifecycle】

在本系列文章中,我们准备分析Jetpack 架构组件。首先我们从最基础的组件开始: Lifecycle, 可以说Jetpack 大部分架构组件都是基于Lifecycle 建立的,此也为Jetpack 架构组件的基础

2023-07-29 13:05:18 82

原创 Pattern : Expectation miss record

在我们的日常维护线上项目中,分析log是我们的主要任务之一。时常,我们会遇到这样的场景:线上的项目出了问题,我们抓到了log, 我们通过log找到了出问题的地方,但是为什么这里会出问题我们还是不清楚,有时出问题的地方并不是第一现场,我们还得沿着时间点向上一步一步仔细地查找,有时可能问题的根因离现场很远,我们找了半天还是没有找到,有时也可能因为缺少响应的log,使我们的分析无法继续下,从而不得不自己线下复现问题,或者添加log发测试版本给客户,让客户帮重现。比如下面这个例子:如何上面的dialog没有如预期

2022-06-07 20:35:21 101

原创 DependencyTask 任务依赖框架

DependencyTask , 一个使用kotlin协程并发执行的任务依赖框架

2022-05-10 10:59:36 711

原创 DDD读书笔记

DDD读书笔记总体导览图分层模式关联EntityValue ObjectService总体导览图分层模式用户界面层(或表示层)负责向用户显示信息和解释用户指令。这里指的用户可以是另一个计算机系统, 不一定是使用用户界面的人应用层定义软件要完成的任务,并且指挥表达领域概念的对象来解决问题。这一层所负 责的工作对业务来说意义重大,也是与其他系统的应用层进行交互的必要渠道 。应用层要尽量简单,不包含业务规则或者知识,而只为下一层中的领域对象协调 任务,分配工作,使它们互相协

2021-11-18 18:39:37 299

原创 Kotlin 学习笔记 (Classes and Objects)

Classes and ObjectsNested and Inner ClassesNested classes:Inner classesAnnonymous inner classesEnum classesEnum ConstantsObject Expressions and DeclarationsNested and Inner ClassesNested classes:class Outer { private val bar: Int = 1 class Nested

2020-07-21 20:14:25 379

原创 wait_for_prop process in init.cpp

wait_for_prop process in init.cpp什么时候设置的wait_for_prop什么时候reset wait_for_prop本文接:Android system init process.什么时候设置的wait_for_prop看图:如上图,在builtins.cpp中建立的BuiltinFunctionMap 中,有wait_for_prop的comman...

2020-02-02 14:55:14 533

原创 Android system init process

Android system init processinit 进程处理过程这个系列文章目前仅仅是作为个人学习Android 系统的笔记,主要是以图为主记录Android 系统的一些流程,如果大家搜索到这里,能对大家提供一些帮助,深表荣幸。init 进程处理过程其中第一部分 ueventd_main 和 watchdogd_main参考大神分析:https://juejin.im/pos...

2020-02-01 21:28:49 219

原创 RxJava2 原理浅析

RxJava2 原理浅析背景分析总结背景最近在看Rxjava的相关资料, 上网搜索资料发现大部分的文章都是教授如何使用RxJava的,但是这样只知其然,不知其所以然,总是感觉学的不彻底,用着不踏实,所以就想找一些能揭示其原理的文章参考下。 But, 网上(至少是国内的网上)对于RxJava是如何实现响应式编程模式介绍文章还是比较难以找到得,不过还好,还是有大神介绍了一些原理性的文章。但是,这篇...

2019-05-28 14:43:55 544

原创 为什么android中parcelable的实现需要CREATOR

在查看parcelable的使用使用方法时有提到,实现parcelable的类必须有一个静态域CREATOR 实现creator<T>接口,但是并未说明为什么,代码查看在java FW层也查看不到其使用的地方,但是比较困惑,今天在重温java编程思想的时候,看到一个例子,豁然开朗,废话不多说,上代码:package designandpatternTest;/** * This ...

2018-03-06 12:12:11 3192

原创 Java 继承中的初始化循序

先看测试代码:/** * *//** * @author GBD_PC * */public class InheritInitTest { public static void main(String[] args) { Super superTest = new Super(); }}class Base{ static String sMsg =...

2018-02-27 19:20:08 160

原创 栈帧结构浅析记录

栈帧结构浅析记录

2014-05-21 09:42:48 487

原创 Java 中的初始化顺序的影响和“overloading”与“overwrite”

Java 中的初始化顺序的影响和“overloading”与“overwrite”首先测试代码:package com.gbd.test;abstract class Base{ Base() { System.out.print("base constructer and j = " + getj() + "\n"); } ...

2014-04-18 11:37:04 482

原创 比较不错的一系列android深入研究博客,整理在此以记之

1. 深入Android 【一】 —— 序及开篇   简单介绍 作者理解的一些android历史2. 深入Android 【二】 —— 架构和学习  简单介绍android的架构 和 开发环境3. 深入Android 【三】 —— 组件入门  介绍了android应用开发的四大组件4. 深入Android 【四】 —— 组件调用 介绍了android应用组件间如何调用,主要介绍inte

2014-02-12 09:51:11 498

原创 Exlipse中的java内存分析(MAT)

exlipse中用MAT分析内存1. 首先,需要在在Exlipse中安装MAT插件,插件安装好后,在Exlipse中打开Memory Analiyze窗口(Window->open perspective),然后打开Navigation Histroy View(Window->show View)2. 然后,进入DDMS,选择一个进程跟踪,在内存分析步骤起始的时候,点击dump HPRO

2013-12-03 17:12:27 828

原创 java 中的类访问权限与成员访问权限

java 中的类访问权限与成员访问权限问题提出在写代码的时候有个问题:包内定义了一个接口类,另外一个包要实现它,这里采用接口隔离与依赖倒置原则,将两个包的依赖关系倒置过来。但是,这里就遇到了一个问题,实现类采用工厂模式来实例化,所以实现类就不想暴露给包外,但是实现类还要实现public接口。所以这里有产生了一个疑问,如果类是default类型,成员函数是public类型,那么访问限制是

2013-11-28 08:59:59 976

原创 pthread学习笔记

pthread学习笔记互斥量1.主要设计因素1. 互斥量不是免费的,需要时间来家缩合解锁。锁住较少的互斥量的程序通常运行得更快。所以,互斥量应该尽量少,够用即可,每个互斥量保护的区域则应尽量大。2. 互斥量的本质是串行执行。如果很多线程需要频繁地加锁同一个互斥量,则线程的大部分时间就会在灯带,这对性能是有害的。如果互斥量保护的数据(或代码)包含彼此无关的片段,则可以将大的互斥量

2013-09-11 19:44:37 551

原创 c语言中位运算用法

1.与1异或,可以使特定位翻转,2.与0异或,保留其值3.交换两值,不使用临时变量。a=a^b;b=b^a;a=a^b;

2013-08-16 21:59:16 632

原创 一些逻辑题,有空看看 可以锻炼一下逻辑思维

1. 49个同学要过河,河边只有一条可乘7人的小木船,小船过一次河要用5分钟,这些同学全部过河一共因为要安排一个人回来,为此一次实际过6个,最后一次过7个,实际上是7次来回加最后一单趟时间为7*6+3=45分钟2. 10个黑球、6个白球、4个红球,至少从中取出多少个球才能保证其中有白球?抽屉原理,最坏的情况是10个黑球和4个红球都拿出来了,最后第 15次拿到的肯定

2013-08-16 19:00:14 746

原创 Android一些实用工具

Android一些实用工具本文目的本文记录一些工作中用到的android工具,以备留用。ADB命令工具1. 查看task中的activity堆栈:adb shelldumpsys activity activites

2013-07-25 16:53:22 356

原创 Android中的handler

首先先看一下android中的线程基本使用方式:1.      继承Thread方式:复写run()方法2.      实现Runnable方式 接口:传给Thread :new Thread(newplaybackRunnable()).start();以上两种方法殊归同途,都是在新线程中调用用户实现run方法(方式上还是有区别的,需要可以查看资料,在我的搜藏中也有)。 

2013-07-14 16:48:10 435

原创 杂感日记20130415

今日review一个有关文本编辑框最大长度限制的一个问题。 开发人员修改了两个文件,这两个都有关于字符串最大长度的限制。 开发人员还算细心,本来测试人员提出的问题只是关于一处的,他把相关的另一处地方也想到了,顺便进行了修改。 这里我目前想到了两个问题:开发人员虽然进行了相关地方的修改,但是这两处的修改几乎一模一样,他只是把一处代码又搬到另一处,修改了一下其中的局部变

2013-04-15 11:26:25 467

原创 关于C++覆盖与复写

关于c++的覆盖与复写,写了个测试程序,以明确一些概念。发此博客以记录。1.c++中的多态只是发生在指针或者引用上,对象赋值不存在多态。(见例子中的funcRecoverAssignTest())2.对象赋值亦会赋值基类变量。(同样见funcRecoverAssignTest())3.当不声明成员函数为多态时(virtual关键字),子类签名相同的成员函数形成覆盖。此时基类指针

2013-02-26 20:34:18 1679

原创 Active Object 中的 C++例子

Active Object 中的 C++例子下面是AcitveObject中的C++例子, 整理出来方面阅读: class MQ_Servant{public: void put_i(const Message &msg); Message get_i(void); bool empty_i() const; bool full_i() const

2013-02-20 14:58:19 540

原创 Webkit生成一个render节点的过程

Webkit如何生成一个render节点生成Element:首先通过解析一个HTML文件,解析出一个tag, 然后通过tag生成HTMLElemen节点,调用堆栈如下: 0# HEMLSelectElement (HTMLSelectElement.cpp)1# HTMLSelectElement::create (同上)2# selectConstr

2013-02-07 12:37:42 669

Effective.Java3rd.zip

Effective Java 3rd 中文翻译文档,已整理 pdf版, 完美书签目录 . 文章翻译来源地址:https://www.jianshu.com/c/ce8cf0e13b23

2020-07-20

OOP/OOD三件套

GOF23+重构+敏捷开发,面向对象经典三件套。

2013-11-11

tcpip+illustrated+volume

tcp/ip详解,英文版,chm格式,方便分章节阅读和学习

2013-11-11

HTTP.The.Definitive.Guide

经典HTTP教程,深入浅出,是HTTP入门的经典

2013-11-11

Posix线程(经典)

posix多线程相关的函数介绍,与POSIX多线程程序设计中文版一起看,相得益彰

2013-11-11

POSIX多线程程序设计中文版

本书比较详细的讲述了posix多线的知识,是了解多线程的一本好书

2013-11-11

vim键盘图示

vim键盘图:vim操作的详细键盘操作图。

2013-06-24

空空如也

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

TA关注的人

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