窗口机制的笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiejingguo/article/details/80833245 setContentView Activity的生命周期由ActivityThread管控。 Activity被实例化后最先调用的方法是attach(),在attach()中实例化PhoneWindow。 Activity.setContentView()最终调用的是PhoneWindow.setContentView()。在
分类: 其他 发布时间: 04-14 23:01 阅读次数: 0

ViewRootImpl事件分发笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiejingguo/article/details/80868027 用户点击屏幕产生触摸行为,该触摸行为由底层硬件捕获并传递。 硬件 -> ViewRootImpl -> DecorView -> PhoneWindow -> Activity 在ViewRootImpl中准备了一条InputStage链。InputStage是个抽象类,有以下几个实现类,并形成单向链:NativePreIme
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

Binder笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiejingguo/article/details/80966459 进程隔离:一个进程占一个内存空间,各个进程的内存空间完全隔离,数据不共享。 内核空间(Kernel)是系统内核运行的空间,用户空间(User Space)是用户程序运行的空间。为了保证安全性,它们之间是隔离的。 Linux Kernel独立于普通的应用程序,可以访问任何内存空间。 应用程序访问内核的唯一方式就是系统调用,当应用
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

报文的编码解码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiejingguo/article/details/81206296 常见的编码方式:ASCii,BCD,HEX,GBK,UTF-8等 不同编码方式的区别如下: 编码的对象不同。如:ASCii、BCD、GBK、UTF-8编码字符,HEX编码字符和数字。 编码的范围不同。如:ASCii可编码的字符有256个,BCD可编码的字符只有数字字符‘0’~‘9’,GBK可编码的字符为ASCii可编码字符和汉
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

Binder驱动是如何维护本地Binder和Binder代理的映射关系

通信过程: binder设备驱动会为每个进程分配一个数据结构binder_proc,每进程中的每个用到了binder通信的线程分配数据结构binder_thread。 binder设备驱动会为服务进程中的每个服务对象分配数据结构binder_node,它隶属于服务进程的binder_proc,即binder_node是binder_proc的子结构,binder_node中记录了服务对象在服务进程中的地址;会为客户进程中每个引用分配binder_ref,binder_ref会指向客户进程引用的
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

Android Studio导入修改过的系统源码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiejingguo/article/details/83182134 导入系统源码 在主工程模块(如:app)下新建一个文件夹,名字随意,比如exlibs。 把android.jar放入exlibs文件夹中。 在主工程模块的build.gradle(如:app/build.gradle)加入如下一句话: dependencies { compileOnly files('exlibs/andr
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

Binder之ProcessState和IPCThreadState类分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiejingguo/article/details/86518401 ProcessState   ProcessState表示进程状态,一个进程就一个ProcessState对象。它的职责:1、打开Binder驱动;2、建立线程池。 /frameworks/native/include/binder/ProcessState.h class ProcessState : public vi
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

怎么改呀

[Error] called object is not a function or function pointer
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

为啥结果不对

#include <stdio.h> int main() { float f,c; printf(“请输入华氏温度:\n”); scanf(“请输入华氏温度:\n”,&f); c=(5/9)*(f-32); printf(“c=%f\n”,c); return 0; system(“pause”); }
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

十进制转八进制十六进制 存在的问题

变量p连续输入十进制 20,64,127 转换八进制和十六进制输出 #include<stdio.h> int main() { int p; scanf("%d %d %d",&p,&p,&p); printf("%o,%o,%o"\n,p,p,p); printf("%x,%x,%x"\n,p,p,p); return 0; }
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

求帮忙谢谢

[Error] case label not within a switch statement [Error] break statement not within loop or switch #include <stdio.h> int main() { char number; printf(“查询菜单\n”); scanf("%d",&number); switch(number) { case 1:printf(“按书名查找\n”); break; case 2:printf(“按
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

一元二次方程的根

#include <stdio.h> #include <math.h> int main() { double a,b,c,x1,x2,m,n; printf(“请输入a b c:\n”); scanf("%lf%lf%lf",&a,&b,&c); m=bb-4ac; if(a<1e-7&&a>-1e-6) printf(“x=%lf\n”,-c/b); else if(m<1e-6&&m>-1e-6) printf(“x=%lf\n”,(-b)/(2a)); else if(m>0) {
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

[Error] expected expression before '}' token

[Error] expected expression before ‘}’ token
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

[Error] stray '\316' in program

[Error] expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘.’ token
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

把字符串中空格删除,为啥运行结果不对

file1.c(文件1) #include <stdio.h> int main() { extern void enter_string(char str[]); extern void delete_string(char str[],char ch); extern void print_string(char str[]); char c,str[80]; enter_string(str); scanf("%c",&c); delete_string(str,c); print_st
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

[Error] expected expression before '{' token

[Error] expected expression before ‘{’ token
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

怎么解决呀

[Warning] assignment makes pointer from integer without a cast [Warning] return makes integer from pointer without a cast [Warning] assignment from incompatible pointer type
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

指针的作用 强制转换 枚举

指针用来做什么: 1,需要传入较大的数据时用作参数 2,传入数组后对数组做操作 3,函数返回值不止一个变量 4,需要用函数来修改不止一个变量 5,动态申请内存。 数组变量是const指针,不能赋值。 判断哪个被const的标志是const在* 的前面还是后面。 强制转换:例如;p=(int)&i; int num[2]={&a[0],&a[1]}; 指针数组只能存放地址,不能存放整数。 strcpy (stu_1. name ,“li lin”); 字符串复制函数 给stu_1.name复制
分类: 其他 发布时间: 04-14 23:00 阅读次数: 0

(传送门)android studio 一直卡在Gradle:Build Running的解决办法

解决方案:https://blog.csdn.net/a549742320/article/details/52525257
分类: 编程语言 发布时间: 04-14 23:00 阅读次数: 0

C语言 两个矩阵之和(二维数组)

#include<stdio.h> main() { int a[3][3],i,j,z,t; printf("请你输入9名学生的C语言成绩\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]) ; } for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(a[i][j]<a[i][j+1]) t=a[
分类: 编程语言 发布时间: 04-14 23:00 阅读次数: 0