自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (9)
  • 收藏
  • 关注

原创 Linux进程通信-有名管道

有名管道博文https://www.cnblogs.com/fangshenghui/archive/2004/01/13/4039805.html编程步骤:步骤进程1进程2使用函数1建立管道文件mfifo2打开管道打开管道open3读写数据读写数据write/read4关闭管道关闭管道close5删除管道删除管道unlink使用实例进程1:写管道 const char *fifo_name = "/tmp

2020-09-14 00:28:55 166

原创 Linux进程通信-无名管道

无名管道只能是亲缘关系的进程间通信博文https://www.cnblogs.com/fangshenghui/archive/2004/01/13/4039833.html编程步骤:步骤进程1进程2使用函数1建立管道文件pipe2读写数据读写数据write/read3关闭管道关闭管道close使用实例 //建立管道 int fds[2]; pipe(fds); int pid = fork();

2020-09-14 00:28:15 166

原创 Linux进程通信-共享内存

共享内存博文https://www.cnblogs.com/fangshenghui/p/4039720.html编程步骤步骤进程1进程2使用函数1使用约定的文件创建key使用约定的文件创建keyftok2使用key创建共享内存使用key获取到共享内存的idshmget3挂载共享内存挂载共享内存shmat4使用内存使用内存5卸载共享内存卸载共享内存shmdt6释放共享内存shmctl使用实例进程1:读

2020-09-14 00:26:18 147 1

原创 Linux进程通信-消息队列

无名管道只能是亲缘关系的进程间通信参考博文https://www.cnblogs.com/fangshenghui/archive/2004/01/13/4039833.html编程步骤:步骤进程1进程2使用函数1建立管道文件pipe2读写数据读写数据write/read3关闭管道关闭管道close使用实例 //建立管道 int fds[2]; pipe(fds); int pid = fork();

2020-09-14 00:24:22 136

原创 Android HAL硬件抽象层与硬件系统架构

背景    近几年是互联网高速发展的几年,孕育出了如谷歌、阿里巴巴等许多超级互联网公司,随着互联网的发展已经触到了天花板,一个比互联网更大的市场即将打开,那就是物联网(Internet of Things)。IOT就是将现实世界中的物体连到互联网上,使得物与物、人与物可以很方便的互相沟通,将是下一个规模更大网络发展机遇的风口,是一个高科技公司抢占技术高地和风口,谷歌近日发布了第一代物联网平台操作...

2019-07-21 14:22:16 2568

原创 设计模式与架构之美--Retrofit的那点事

前言Retrofit 是一个 RESTful风格的 HTTP 网络请求封装框架,通过Retrofit使用,复杂的网络请求可以通过几行代码就实现,大大提高了开发人员的开发调试效率。除了使用方便外,Retrofit最值得称道的地方是集设计模式于一身的特点以及高可扩展性的设计架构思想,更值得我们去探究和学习。在看过很多Android源码库,Okhttp,EventBus,ButterKnift,Lit...

2019-07-21 14:16:48 530

原创 EventBus 的源码解析分析的四个要点

关于EventBus 的源码解析网上有很多优秀的文章https://www.jianshu.com/p/83e44261e095我们这里只需要总结归纳出,可以串联起整个EventBus的设计原理 4个表 和 4种处理方式 4个表 keyvalue用途Event事件类型classEvent class继承类集合事件继承发送使用Event事件类型Subsc...

2019-05-19 10:37:59 132

原创 IntentService 源码分析

一般使用1.自定义一个耗时的IntentServicepublic class MyIntentService extends IntentService { /** * Creates an IntentService. Invoked by your subclass's constructor. * @param name Used to name...

2019-05-12 19:26:20 243

原创 SparseArray 源码分析

主要方法分析put方法/***放一个元素到集合*/public void put(int key, E value) { int i = binarySearch(mKeys, 0, mSize, key); // 返回的大于0 那么找到有效的值 将原有的值替换掉 // 否则, 如果i < size 那么 赋值 ...

2019-04-14 19:37:23 201

原创 Android底层驱动移植--gslx680电容触摸屏驱动

一、具体操作配置1.添加GSLX68X到内核的Kconfig配置路径:xxx/kernel/drivers/input/touchscreen/Kconfig 2.编写Makefile文件路径:xxx/kernel/drivers/input/touchscreen/Makefile 3.在触摸屏驱动目录xxx/kernel/drivers/input/touchscreen/文件夹下,添加一下

2019-03-24 19:30:06 10020 2

原创 Android启动源码分析

1.首先进入的是initinit是Linux系统中用户空间的第一个进程(pid=1), Kernel启动后会调用 Init.c的main()方法.路径:/system/core/init/Init.cint main(int argc, char **argv){ 。。。 //挂载一些基本的文件系统 mkdir("/dev", 0755); mkdir("...

2019-03-17 18:13:33 572 1

原创 AsyncTask源码分析

前言AsyncTask在Android编程中是一种常用的异步编程方式,那么AsyncTask到底是什么呢?下面我们从基本使用到源码分析对AsyncTask作一个全面的了解。一般使用通常我们对AsyncTask的使用是//1.实现抽象类AsyncTaskClass MyAsyncTask extends AsyncTask{ @Override protected Obje...

2019-03-03 18:37:04 120

原创 字节码操纵框架ASM

引言在我们实际的开发过程中,很多场景需要AOP的编程思想,在开发者无感知地侵入式的插如自己的业务逻辑,比如我最近做的一个埋点统计的一些场景,在开发者无感知情况下,将生命周期上报执行逻辑代码植入到我们现有的APP的某些页面的Class里面,将用户事件的逻辑代码植入到对应的事件响应方法里面。这里我们就引出了字节码操作框架ASM,通过ASM修改编译过程生成的java字节码,植入埋点上报的业务逻辑方法,...

2019-02-23 22:49:48 732

原创 AMS启动的上半段,从Activty的startActivty启动Activity过程

Activity#startActivity//从Activity的startActivity方法为起点分析//Activity#startActivity方法public void startActivity(Intent intent, @Nullable Bundle options){ if (options != null) { startActivityForResult...

2018-12-11 00:40:39 253 1

原创 AMS启动的下半段,AMS 到 Zygote fork进程到ActivityThread

AMS 到 Zygote fork进程前半段ActivityStackSupervisor#startSpecificActivityLockedvoid startSpecificActivityLocked(ActivityRecord r, boolean andResume, boolean checkConfig){ // Is this activity's applica...

2018-12-02 10:29:38 1246 2

原创 OkHttp 源码分析

基本使用 //1. 创建OkHttpClient实例 OkHttpClient client = new OkHttpClient .Builder() .cache(new Cache(new File("cache"), 24 * 1024 * 1024)) ...

2018-12-01 11:28:00 126

原创 EventBus 源码分析

基本使用//注册EventBusEventBus.getDefault().register(this);//发送事件EventBus.getDefault().post(new FirstEvent("nihao--&gt;"));//接受事件回调方法@Subscribepublic void onMainEvent(FirstEvent eventBean){ Toast.m...

2018-11-27 23:52:27 102

原创 Volley源码分析

基本的使用步骤 // 1, 获取到请求队列 RequestQueue requestQueue = Volley.newRequestQueue(this); // 2, 创建一个Request StringRequest stringRequest = new StringRequest(&amp;quot;&amp;quot;, new com.android.vo...

2018-11-25 17:52:40 319 2

原创 AndFix源码分析

基本使用//创建一个PatchManager实例patchManager = new PatchManager(context);//初始化patchManager.init(appversion);//current version//加载补丁patchManager.loadPatch();// 手动加载补丁//patchManager.addPatch(path);//pat...

2018-11-25 17:51:41 472

原创 SharedPreferences 源码分析

使用用例 //获得SharedPreferences的实例 sp_name是文件名 SharedPreferences sp = getSharedPreferences(&quot;sp_name&quot;, Context.MODE_PRIVATE); //获得Editor 实例 SharedPreferences.Editor editor = sp.edit(); /...

2018-11-19 10:12:10 153

原创 Android RIL 移植 SIM900

移植步骤1.RIL串口接口fd = open (s_device_path, O_RDWR); /*if ( fd &amp;gt;= 0 &amp;amp;&amp;amp; !memcmp( s_device_path, &quot;/dev/ttyS&quot;, 9 ) ) { //* disable echo on serial ports ...

2018-11-11 23:04:27 1313

转载 FragmentPagerAdapter与FragmentStatePagerAdapter区别

FragmentPagerAdapter与FragmentStatePagerAdapter区别前言在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Frag...

2018-10-21 22:24:17 1697

原创 Java 多线程相关的使用

线程的创建1.继承Thread类,重写run方法; 2.实现Runnable接口 重写run方法;区别 使用Runnable接口的更适合面向对象的思想,可以使线程类继承其他父类。多个线程处理一个Runnable等问题。join/wait/notifyjoin 调用此方法的线程在调用之前执行完毕 ....thread1..... thread1.join() ....

2018-07-08 23:46:07 232

原创 JVM 总概

JVM虚拟机结构图 - 程序计数器每个线程有单独的程序计数器,程序计数器的指针永远指向下一条要执行的指令 线程私有方法区类的类型信息,常量池 线程共享Java堆内存通过new关键字创建的对象实例,都保存在Java堆里面,这一块内存区域是GC回收的主要地方。而创建的对象的类型信息取方法区去取。 线程共享Java栈内存Java栈总是跟线程关联在一起,每当创建一...

2018-07-08 23:14:20 192

原创 SharePref 一种自动生成SharePreference方法工具

SharePref 一种自动生成SharePreference方法工具Github 地址:Github 地址前言在Android编程中,轻量级的存储一般用SharePreference 来实现简单数据的存储,比如第一次启动App标记,上次广告的显示时间戳,本地用户名记录等等,一般通过SharePreference来存储,一般通过key-value形式来标记存储每个字段,但是有个问题,随...

2018-06-04 14:20:07 327

原创 数据结构总概

1.数组优点 插入快缺点 查找慢,删除慢,大小固定2.有序数组优点 比无序的数组查找快缺点 插入慢,删除慢,大小固定二分查找 通过比较大小来判断左右两边的方向再查找,查找的对象一半一半的减少。3.栈优点 提供后进先出的存取方式缺点 存取其他项很慢利用:字符串倒序 算术表达式解析z4.队列优点 提供先...

2018-05-12 23:50:14 199

原创 Modbus 史上最全实例资料汇总

1.前言   Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错

2017-10-14 10:28:03 30726 12

原创 linux libmodbus的移植

1.前言Modbus是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。2.移植步骤第一,进入libmodbus目录下,在交叉编译器是最好加上–prefix参数,叫相关的库直接集中起来,方便拷贝到开发板相应的目录中去; 嵌入式开发板:#./configure --build=i686 --

2017-10-13 22:48:12 9683 4

原创 linux线程和进程

1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位;进程是资源分配的最小单位;线程是进程的一个实体,行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.是CPU调度和分派的基本单位,它是比进程更小的能独立运,线程是程序

2017-10-12 18:12:10 435

原创 Android 异步消息机制 Handler Message Looper机制详解

1.前言Handler Message是android中比较常用的异步消息机制,通常我们对UI更新,对异步操作运算,很多时候都采用Handler来实现,现在我们探讨一下Handler,Message以及Looper的消息机制。2.一般使用方法通常我们使用Handler的一般流程是: 创建Handler对象,并在handleMessage实现消息接受的具体实现;private final stati

2017-10-12 11:32:05 706

转载 Java反射机制

转自:http://www.cnblogs.com/lzq198754/p/5780331.html反射机制是什么反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。反射机制能做什么反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行

2017-05-22 23:24:07 228

原创 开发环境搭建--Ubunut下ADT 安装

简明介绍ADT即Android Development Tools,安卓开发工具,以前老版本的开发工具即是eclipse和SDK分开着,新版本的ADT已经集成在一起了,除此之外,还集成有CDT,这样免去了另外安装软件的痛苦。但是最近由于Google公司的发展在大中华区受阻后,Android开发套件Android SDK Manager里面的Android各个版本的API更新比较困难,这里我们建议采用

2017-05-18 15:25:20 371

原创 开发环境搭建--Ubunut下NDK安装

简明介绍Android的NDK(Native Development Kit)开发工具集是Android为了更方便Android程序开发者通过JNI的机制达到Java和本地C/C++代码相互沟通的强有力武器。通过Android NDK,Android程序开发者可以很方便地实现Java和本地C/C++代码的相互调用,充分发挥本地硬件的特性和C/C++代码的高效性Java 本地开发套件,这个是底层开发必

2017-05-18 15:17:04 535

原创 开发环境搭建--Ubunut下JDK安装

简明介绍:jdk为Java的开发套件,给Java运行提供必要的环境JVM、提够Java常用的类库API等等,因为如果我们做Android应用层开发,所用到的Java编程就得需装JDK了。所需工具:jdk-6u27-linux-i586.bin进入JDK存放的目录/home/zgkxzx/software,在输入命令chmod +x jdk-6u27-linux-i586.bin后输入sudo ./j

2017-05-18 15:13:12 435

原创 开发环境搭建--Ubuntu系统的安装

前言由于Android 源码工程比较庞大,Android4.0源码工程占约4个G的空间,对整个源码工程的编译必定是个重大的任务,所以我们强烈建议使用Linux原版操作系统来对Android进行开发,而不是采用虚拟机的方式,这样才能充分利用电脑资源,使得编译和开发Android操作系统的周期更短。1.U盘启动盘制作   第一步:下载Ubuntu的镜像文件.ISO和Linux镜像制作工具LinuxLi

2017-05-18 15:02:01 1846

原创 依赖、关联、聚合和组合之间区别的理解

前言在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。 一 描述依赖(Dependency)关系是类与类之间的联接。依赖关系表示一个类依赖于另一个类的定义。例如,一个人(Person)可以买车(car)和房子(House),Person类依赖于Car类和House类的定义,因为Person类

2017-05-15 16:00:12 1191 1

转载 定时任务 Handler vs Timer

前言Android开发过程中,经常需要执行一些短周期的定时任务,这时候有两个选择Timer或者Handler。很多朋友都会为选择哪种方案最优而犹豫为难,今天我们做一下比较,希望对各位以后开发都有一定的参考价值。(也是自己在网上优秀资料学习的一些整理吧)一.易用性1. 可重复执行Handler可以重复执行某个任务。 Timer若在某个任务执行/取消之后,再次执行则会抛出一个IllegalStateE

2017-05-15 14:23:58 607

原创 Android Modbus的实现--Modbus4Android

前言ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。由于android系统的开源性,可定制性,很多工业设备开始逐渐使用android设备来定制工业设备系统,那么modbus在android系统上面的应用应运而生。这是Android版的Modbus TCP 例子,例子里面只写

2017-05-11 15:05:31 22026 23

原创 Android代码规范文档

命名规范1. 包命名规则:包名全部小写,才用反域名命名规则,一级包名是顶级域名,通常为com, edu, gov, net, org等,二级包名,通过为公司名或部门名或者个人名,三级包名通常为项目名,四级包名为模块名或者层级名。以下是从层级包名来划分android项目中采用的包划分结构com.zgkxzx.xxx.view //V层com.zgkxzx.xxx.presenter//P层

2017-05-10 17:08:50 558

原创 自定义View之炫丽的进度条

Android自定义View之炫丽的进度条好久没有写Blog了,昨天意外看到自己无意中写的一篇文章,访问量都有1k+,突然之间觉得写博客,分享知识是一件多么幸福的事情!今天我给大家分享一个自定义view来绘制一个项目中经常用的炫丽立体效果的进度条.虽然不怎么有难度,但是项目中经常用到,希望能帮助大家项目中的一些问题,帮到大家。 代码下载地址:http://download.csdn.net/det

2017-02-23 23:29:47 1123 1

libmodbus-3.0.6.tar.gz

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

2017-10-14

freemodbus-v1.5.0

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

2017-10-14

gslx680电容触摸屏参考资料

gslx680电容触摸屏参考资料

2017-02-25

Android自定义View bitmapProcessView炫丽进度条

Android自定义View bitmapProcessView炫丽进度条

2017-02-23

Android 蓝牙无线打印POS

Android 蓝牙无线打印POS,内含丰富的源码Demo,打印机指令详解,资料很多,请仔细阅读哦!

2015-05-23

Android HAL USB WIFI 驱动移植详解

Android HAL USB WIFI 驱动移植详解,都是一些比较常用的USB WIFI包括rtl8192cu ,rtl8192du ,rtl8192ce ,rtl8192de,rtl8723as ,rtl8723au ,rtl8189es ,android WIFI 架构和控制流程详解,理解Android架构从Linux底层到Android Application直接调用关系,资料比较多,很多外文的经典文档,要仔细阅读哦!

2015-05-23

Android RIL GSM底层驱动 实现打电话发短信功能详解

Android RIL GSM底层驱动 实现打电话发短信功能详解

2014-09-16

GPS Android底层驱动资料(附关键源码)

GPS Android底层驱动的编写详细步骤与资料详解 JNI与HAL层介绍 Java层与JNI层交互接口函数介绍 GpsInterface及其他交互接口介绍与代码分析

2014-09-16

Java串口通信程序详解

Java串口通信发生大幅多少发生的发生的发生的发生的发生

2012-01-02

空空如也

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

TA关注的人

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