自定义博客皮肤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)
  • 资源 (6)
  • 收藏
  • 关注

原创 c语言.与->区别和使用

A->a表示A是指向结构体的指针A.a表示A是结构体A->a等效于(*A).aA.B则A为对象或者结构体;A->B则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;(*a).b 等价于 a->b。"."一般情况下读作"的”;“->”一般读作"指向的结构体的"。也就是说在结构中,运算符->是运算符*和运算符.的结合“->”是指向结构体成员运算符。“.”是断点符号,不属于运算符。“->”所指向的是结构体或对象的首地址。“.”所指向的是结构体或对象。

2023-12-04 18:38:09 495

原创 c语言static关键词用法

全局变量是在函数外部定义的变量,可以在程序的任何位置使用。然而,全局变量在整个程序执行期间都存在,这可能会导致一些问题,比如在不同线程中共享状态时出现竞争条件。也就是说,如果你在文件A中定义了一个静态函数,它不能从文件B中调用。局部变量是定义在函数体内的变量,当函数被调用时,局部变量会被创建,并在函数执行结束后被销毁。变量的作用域限制在当前文件,但是它的生命周期延续到程序的整个执行期间。这意味着它可以在任何函数中访问和修改,但是在其他文件中不能访问。函数是静态的,因此只能在定义它的文件中调用。

2023-12-04 16:13:40 532

原创 CAN总线

CAN总线协议(Controller Area Network),控制器局域网总线,是德国BOSCH(博世)公司研发的一种串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN通讯协议标准(ISO-11898:2003)介绍了设备间信息是如何传递以及符合开放系统互联参考模型(OSI)的哪些分层项。实际CAN通讯是在连接设备的物理介质中进行,物理介质的特性由模型中的物理层定义。LLC用于接收滤波、超载通告、回复管理;

2023-11-30 15:16:51 921

原创 嵌入式常见的几种接口

SPI(Serial Peripheral Interface):串行外围设备接口。SPI是一种高速的,全双工的,同步的通信总线。SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps,已知的有的器件SPI已达到50Mbps。??I2C(Inter Integrated Circuit):内部集成电路。I2C是一种低速的,半双工的,同步的通信总线。IIC 数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps)。??

2023-11-30 15:13:46 1084

原创 C语言常见算法

因为b[n-1]=1,假设b[n-2]=1,则 pow(b[n-1]*pow(2,n-1) + b[n-1]*pow(2,n-2), 2) = b[n-1]*pow(2,2*n-2) + (b[n-1]*pow(2,2*n-2) + b[n-2]*pow(2,2*n-4)),) ​​​​​​​。余数 M[2] = M[1] - pow(pow(2,n-1)*b[n-1] + pow(2,n-2)*b[n-2], 2) = M[1] - (pow(2,2)+1)*pow(2,2*n-4)

2023-11-28 16:09:17 3409

原创 模拟电路定理

除了上述定理外,还有许多其他的定理和规律可以用来分析和设计模拟电路,如戴维南 - 诺顿定理的应用、梅森定理的应用、拉普拉斯变换、传递函数等。戴维南 - 诺顿定理指出,一个线性含源二端口网络可以等效为一个简单的电路,该电路由一个电压源和一个电流源组成。戴维南定理指出,一个线性含源二端口网络可以等效为一个简单的电路,该电路由一个电压源和一组电阻组成。诺顿定理指出,一个线性含源二端口网络可以等效为一个简单的电路,该电路由一个电流源和一组电阻组成。在模拟电路中,有许多重要的定理和规律,下面列举了一些常见的定理。

2023-11-22 16:34:06 612

原创 模拟电路总结

作图:Visio作图:Visio。

2023-11-21 15:54:00 813

原创 数字电路的基础知识

用数字信号完成对数字量进行逻辑运算和算术运算的电路称为数字电路。由于它具有逻辑运算和逻辑处理功能,所以又称为数字逻辑电路。现代的数字电路由半导体工艺制成的数字集成器件构造而成。逻辑门是数字电路的基本单元电路,就如同在模拟电路中基本放大电路是模拟电路的基本单元电路。1、数字电路按功能分类<1>、组合逻辑电路组合逻辑电路是由基本的逻辑门电路组合而成。特点是:输出值只与时的输入值有关,即输出惟一地由当时的输入值决定。电路没有记忆功能,输出状态随着输入状态的变化而变化,类似于电阻性电路,如编码器。

2023-11-21 15:51:09 785

原创 十大最常用电子元器件基础知识

对于电子行业的工程师来说,电子元件就像人们入口的大米,每天都需要接触和使用。但事实上,许多工程师可能都不完全理解里面的门道。以下是工程师常用的十种电子元件以及相关的基本概念和知识。让我们一起学习了解一下。

2023-11-21 10:48:44 252

原创 ADB安装及使用介绍

ADB使用和安装

2023-11-21 10:26:45 106

原创 Linux中断底半部机制总结

linux开发

2023-09-11 16:17:27 104

原创 Android audio hal

audio

2023-02-07 11:22:24 1713

原创 SELinux权限问题解决

android SELinux权限问题

2022-06-01 11:48:13 926

原创 ANR分析思路

1.ANR介绍1.1 何为ANRANR全名Application Not Responding, 也就是"应用无响应". 当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框.1.2 为什么会产生ANRAndroid里, App的响应能力是由Activity Manager和Window Manager系统服务来监控的. 通常在如下两种情况下会弹出ANR对话框:1:KeyDispatchTimeout(谷歌default 5s,MTK平台上是8s) --主要类型按键或

2021-09-17 15:58:28 842

原创 面试表现不好时补救策略

大家在面试时,哪怕准备再充分,也不都可能一帆风顺。请记住:面试回答不好是很正常的,尤其在你刚开始面试的时候。 所以你一定要有良好的心态:面试成了最好,不成的话面试官是免费给你一次锻炼的机会,而且免费告诉了你一些面试题,你也是赚的。但如果你一方面被在面试中表现不好,同时另一方面什么都不做,那么我可以说,哪怕面试十次也不会提高,而且即使你进了公司,你的薪资待遇也是被严重低估的。 在本文里,就将结合本人面试官的经验,告诉大家一些可以操作的做法。1坦诚相对,说明你的擅长点,让面试官给次...

2021-09-17 15:04:48 1656

原创 git原理

Git常用命令及方法大全下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库本地分支关联远程git branch --set-upstream-to=origin/分支名分支名 1代码库修改密码后push不上去怎么办? // 重新输入密码 git config --system --un...

2021-03-10 10:31:18 86

原创 2020-12-08

tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo)目前linux中主流的音频体系结构是ALSA(Advanced Linux Sound Architecture),ALSA在内核驱动层提供了alsa-driver,在应用层提供了alsa-lib,应用程序只需要调用alsa-lib提供的API就可以完成对底层硬件的操作。说的这么好,但是Android中没有使用标准的ALSA,而是一个ALSA的简化版叫做tinyalsa。Android中使用tinyalsa.

2020-12-08 10:57:42 535

原创 JNI字段描述符

“([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。一个数组int[],就需要表示为这样"[I"。如果多个数组double[][][]就需要表示为这样 "[[[D"。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组 的类型。如果以一个L...

2020-03-06 22:34:47 141

原创 Windows 远程桌面连接Ubuntu16.04图像界面

1、安装xrdp  sudo apt-get install xrdp2、安装vnc4server   sudo apt-get install vnc4server3、安装xubuntu-desktop  sudo apt-get install xubuntu-desktop4、向xsession中写入xfce4-session  echo “xfce4-sessi...

2019-06-15 11:44:29 621

转载 使用外网ssh远程登录Ubuntu的设置方法

使用外网ssh远程登录Ubuntu的设置方法。在局域网内利用ssh远程登录另外一台电脑,只需要知道他的内网ip就行。但如果,我们想在宿舍操作办公室里的服务器或工作站时,该怎么设置呢本文介绍一种利用路由器的端口映射功能,实现ssh内网穿透,远程访问Ubuntu主机的方法。安装openssh服务首先,两台电脑都需要安装openssh服务,若已安装,可忽略本小节。Ubuntuubun...

2019-06-10 10:53:43 13342 3

原创 MTK日志分析技巧

1.mtklog简介:mtklog是由log生成工具MTKLogger生成的一系列问题追踪文件,其主要作用就是对系统或者应用产生的异常进行快速定位,从而解决问题。mtklog 的分类:MDLog、Mobile Log、Network Log,可能出现的aee_exp logMD log:medom 相关底层的logMobile Log:主要是Android log 和kernel lo...

2019-04-09 17:32:59 3455

原创 android8.1增加系统服务亲测有效

以下测试验证平台MSM8996android8.1一.sepolicy 部分添加1. \system\sepolicy\public\service.te 定义服务名称和属性type xxx_service,app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;...

2019-03-08 16:40:16 3500 3

原创 Android 8.1 SystemUI下拉状态栏修改

一,实现环境1.软件环境Android8.1系统2.硬件环境google手机msm8996二,分析1.android 8.0之后有了新的改变,开光布局与之前不太一样。布局文件还是\frameworks\base\packages\SystemUI\res\layout\qs_panel.xml。 qs_panel布局中:QSPanel、qs_footer_impl、qui...

2019-02-28 11:22:36 4505 1

原创 android在线源码网址

http://androidxref.com/

2018-12-11 14:09:23 528

原创 Android的开机流程及分析

1.系统引导bootloader  1)源码:bootable/bootloader/*  2)说明:加电后,CPU将先执行bootloader程序,此处有三种选择    a)开机按Camera+Power启动到fastboot,即命令或SD卡烧写模式,不加载内核及文件系统,此处可以进行工厂模式的烧写    b)开机按Home+Power启动到recovery模式,加载recovery.img,r...

2018-07-07 11:31:19 387

原创 C++强制类型转换

在C++语言中新增了四个关键字static_cast、const_cast、reinterpret_cast和dynamic_cast。这四个关键字都是用于强制类型转换的。我们逐一来介绍这四个关键字。1) static_cast在C++语言中static_cast用于数据类型的强制转换,强制将一种数据类型转换为另一种数据类型。例如将整型数据转换为浮点型数据。[例1]C语言所采用的类型转换方式:in...

2018-04-27 11:22:27 178

原创 C++的输入输出(cout和cin)

在C语言中,通常会在采用格式化输入输出函数printf和scanf用于输入或输出数据或信息。在C++语言中,C语言的这一套输入输出库我们仍能使用,但是C++语言又自定义了一套新的、更容易使用的输入输出库。在C++程序中,输入与输出可以看做是一连串的数据流,输入即可视为从文件或键盘中输入程序中的一串数据流,而输出则可以视为从程序中输出一连串的数据流到显示屏或文件中。在编写C++程序时,如果需要使用输...

2018-04-27 10:58:31 1078

原创 C++命名空间(namespace)

C++语言引入命名空间(Namespace)这一概念主要是为了避免命名冲突,其关键字为 namespace。科技发展到如今,一个系统通常都不会仅由一个人来开发完成,不同的人开发同一个系统,不可避免地会出现变量或函数的命名冲突,当所有人的代码测试通过,没有问题时,将所有人的代码结合到一起,因为变量或函数重名而导致的问题将会造成一定的混乱,例如:int flag = 1; //小李声明的变...

2018-04-27 10:39:02 168

转载 Android系统镜像文件的打包过程分析

https://blog.csdn.net/luoshengyang/article/details/20501657

2018-04-27 09:55:01 818

原创 android系统各个分区及其作用

Android手机和平板的内部存储分区列表如下: /boot /system /recovery /data /cache /misc另外还有 SD card分区: /sdcard /sd-ext请注意只有/sdcard是所有Android设备都有的,/sd-ext只在某些设备上可以看到。现在让我们分别分析这些分区的内容和功能。/boot这个分区上有...

2018-04-26 14:28:10 9449

原创 Android PMS流程

系统启动之后就会注册各种系统服务,如 WindowManagerService、ActivityManagerService、PackageManagerService ,今天我们使用到的是 PackageManagerService ,简称 PMS 。首先PMS 的构造函数中就开始解析工作了加载 FramWork 资源 加载核心库 扫描指定目录下的 apk 文件进行解析并将解析到的信息进行存储 ...

2018-04-19 11:20:35 1598

原创 Android hal开发

HalStub的框架比较简单,三个结构体、两个常量、一个函数,简称321架构,它的定义在: alps/hardware/libhardware/include/hardware/hardware.h       alps/hardware/libhardware/hardware.c 下面我们先看下三个重要的结构体,其包含在hardware.h中每个硬件对象都由hw_module_t来描述,只要我...

2018-04-17 17:42:37 193

原创 Android各系统之间的新特性

Android历史各版本之间的新特性Android操作系统是一个由谷歌Google和开放手持设备联盟共同开发发展的移动设备操作系统,其最早的一个版本Android 1.0 Beta发布于2007年11月5日,至今已经发布了多个更新。Android 发布历程 [2]这些更新版本都在前一个版本的基础上修复了bug并且添加了前一个版本所没有的新功能。Android操作系统曾有两个预发布的内部版本,它们的...

2018-03-29 09:29:17 1665

原创 Zygote主要工作流程

Zygote主要做了三件事情: 1. 调用 registerZygoteSocket 函数创建了一个 socket 接口,用来和 ActivityManagerService 通讯; 2. 调用 startSystemServer 函数来启动 SystemServer; 3. 调用 runSelectLoop 函数进入一个无限循环在前面创建的 socket 接口上等待 Activity

2018-02-06 16:55:19 235

原创 面试题总结

1、 Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。2、sim卡的EF 文件有何作用sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本 身可以有自己

2018-02-03 18:14:55 199

原创 WIFI架构

WIFI的基本架构    1、wifi用户空间的程序和库:         external/wpa_supplicant/       生成库libwpaclient.so和守护进程wpa_supplicant。    2、hardware/libhardware_legary/wifi/是wifi管理库。    3、JNI部分:         

2018-01-24 09:49:50 685

原创 GDB常用介绍

GDB常用调试介绍GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:

2018-01-23 21:02:20 268

原创 git用法详解

Git详细使用教程原创 2016年10月21日 20:17:51标签:Git /教程2537Git使用教程Git是什么Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方

2018-01-18 18:34:44 1189

原创 zygote 进程主要工作

socket 创建完成之后,紧接着就通过 startSystemServer 函数来启动 SystemServer 进程。

2017-12-02 12:57:22 205

原创 开发板去掉锁屏

将frameworks/base/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java中的private boolean mExternallyEnabled = true;true改为false重新编译就OK。开机进去需要解锁一次,以后就不再锁屏了,如果想要彻底没有锁屏的话再按下列方法

2017-12-01 13:17:39 240

抢红包软件

抢红包源代码,有喜欢的可以拿去学习,不客气。抢红包源代码,有喜欢的可以拿去学习,不客气。

2018-09-03

NFC测试demo

NFC测试源代码,有喜欢的可以拿去学习,不客气。

2018-09-03

ActivityManagerService相关流程分析

ActivityManagerService相关流程分析。全面详细的分析了ActivityManagerService相关的过程。

2018-02-06

APP启动流程详解

详细的解说了APP的启动过程及其核心代码,为学习Android framework框架提供了很好的学习资料

2018-02-03

android系统启动

android系统启动的详细流程,从上电到进入桌面的详细过程

2017-12-01

android framework面试题集

android framework面试题集 自己亲自总结的,各位有需要的可以随时下载

2017-12-01

空空如也

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

TA关注的人

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