摘要:
有一天在群里聊天的时候,有人提出一个问题,怎样才能做到HAL层访问JAVA层的接口?刚好我不会,所以做了一点研究。 之前的文章末尾部分说过了service call 可以用来调试系统的binder服务。 传送门: Android native进程间通信实例-binder篇之——简单的单工通信 这次可 阅读全文
摘要:
导读:本章带读者理解什么是控制语句,然后逐个讲解C语言常用的控制语句,含有控制语句的代码量多起来后就要注意写代码的风格了,本章末节都是练习题,大量的练习才能掌握好控制语句的使用。 6.1 什么是控制语句 翻回第一章,当时为了讲解计算机程序,举了一个打酱油的例子: 第一种做法:首先要准备好100块钱, 阅读全文
摘要:
注:本篇文章暂时不做流程图,如果有需求后续补做。 1. 需要准备的源码文件列表: base部分: kernel\base\core.c kernel\base\bus.c kernel\base\dd.c kernel\base\class.c kernel\base\driver.c 头文件部分: 阅读全文
摘要:
在开发者模式下,在开发者选项中,可以勾选“显示触摸操作”,然后只要点击屏幕就会在点击的位置有圈圈显示。如何找到绘制圈圈的代码部分,有什么技巧来阅读代码量这么大的android系统源码呢?以下请跟着小老弟我来一起分析吧。 1. android设置功能的代码是在packages/apps/Setting 阅读全文
摘要:
5.3.5 和二进制极为密切的运算符 本小节的运算符需要借助二进制概念来理解。 二进制数据中,比如一个字节的数据,它的十进制为228,二进制就为11100100,如图5.11, 注意:如果不懂怎么转换十进制和二进制,可以借用windows的计算器来辅助。 图5.11 228的十进制和二进制表现 把 阅读全文
摘要:
5.3 挑几个运算符来讲 常用的运算符除了加减乘除(+-*/)外,还有如下: 注意:以下运算符之间用逗号隔开,C语言中也有逗号运算符,这里不讲逗号运算符。 1. 赋值运算符 =,+=,*= 2. 一元运算符 ++, -- 3. 相等运算符 ==,!= ,关系运算符 < ,>,<=,>= 4. 条件运 阅读全文
摘要:
5.1.4 再来一个C库函数getchar吸收回车键 回车键也是一个字符,在使用scanf的时候,输入完毕要按下回车键,这时候回车键也会被输入到stdin流中,会搞乱我们的程序。 注意:stdin是输入流,stdout是输出流,这两个流就是在内存中流进流出的数据,根据流向不同命名也不同。 比如以下代 阅读全文
摘要:
导读:程序要完成高级功能,首先要能够做到基本的加减乘除。本章从程序中变量的概念开始,结合之前学的输出函数和新介绍的输入函数制作简单人机交互程序,然后讲解最基础的加减法运算,自制简单计算器程序练手。 5.1 变量 5.1.1 变量声明定义与赋值表达式 上一章讲了数据类型,数据类型要和变量结合在一起才能 阅读全文
摘要:
导读:C语言程序中经常涉及一些数学计算,所以要熟悉其基本的数据类型。数据类型学习起来比较枯燥,不过结合之前的内存概念,以及本节的字节概念,相信数据类型也就不难理解了。本章从二进制的基本概念开始,然后介绍机器语言通用的计算单位字节,最后再介绍C语言中基本的数据类型及其基本概念。 4.1 二进制、字节 阅读全文
摘要:
导读:一般学一门计算机语言的第一堂上机课(“上机”顾名思义,上计算机,机你太美),就是往屏幕输出“hello world”,本章也不例外。 3.1 Hello,World! 这一节和读者一起来编写第一段C语言程序,过程详细到令人发指。 3.1.1 创建C语言源码文件 打开 Dev C++,在上方菜单 阅读全文
摘要:
导读:C语言程序如何工作,首先需要编译链接成可执行文件,然后就可以运行在不同的环境中,这个“环境”的意思就是比如说,电脑,手机,路由器,蓝牙音箱等等智能设备中,其中编译器启到了关键的桥接作用。本章主要先从C语言编译的全过程开始分析,然后介绍常用的编译器工具,最后介绍本系列博客使用的免费开发软件Dev 阅读全文