E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
android底层驱动开发
嵌入式Linux
驱动开发
(I2C专题)(一)
一、I2C协议1.1、硬件连接I2C在硬件上的接法如下所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备。1.2、IIC传输数据的格式1.2.1、写操作流程如下:主芯片要发出一个start信号然后发出一个设备地址(用来确定是往哪一个芯片写数据),方向(读/写,0表示写,1表示读)从设备回应(用来确定这个设备是否存在),然后就可以传输数据主设备发送一个字节数据给从设备,
嵌入式学习者。
·
2023-09-13 20:20
Linux
驱动以及裸机
linux
驱动开发
运维
驱动开发
--自动创建设备节点udev机制的实现过程
一、udev的认识udev:自动创建设备节点的机制,创建设备节点的逻辑在用户空间二、udev机制创建设备节点的过程分析三、目录信息创建和删除类函数#include1.向上提交目录信息structclass*class_create(structmodule*owner,constchar*name);功能:申请一个设备类并初始化,向上提交目录信息参数:参数1:owner:指向当前内核模块自身的一个
consumer.
·
2023-09-13 18:44
驱动开发
手机大厂必备测试技能-CTS 兼容测试
其实原生的Android长这样:这么多手机厂商都要改造成自己的UI,甚至要对
Android底层
进行
测试萧十一郎
·
2023-09-13 13:45
软件测试
软件测试工程师
自动化测试
智能手机
自动化测试
软件测试
功能测试
程序人生
职场发展
linux
驱动开发
---day3(自启动创建设备节点进行点灯实验、ioctl函数实现点灯实验)
自动创建设备节点udev机制的实现过程udev是自动创建设备节点,逻辑在用户空间过程:1)首先注册字符设备驱动,得到标识设备的设备号2)获得设备信息后,先创建一个设备类,向上提交目录信息,使用class_create3)然后创建设备对象,向上提交设备节点信息,使用device_create4)在向上提交设备节点信息后,会自动发起热插拔事件通知udev进程去查询设备节点的信息,以及在/dev下创建设
林黛玉倒拔垂杨柳~
·
2023-09-13 04:41
linux
stm32
驱动开发
驱动开发
--自动创建节点udev机制的实现过程分析
一,创建设备文件的机制1,mknod:手动创建设备节点2,devfs:创建设备节点的逻辑在内核空间,2.5版本后淘汰3,udev:自动创建设备节点的机制,逻辑在用户空间,常用4,mdev:轻量级的udev机制二,udev创建设备节点的过程分析1,注册驱动,register_chrdev()函数2,获取设备信息(设备树相关文件,目前为指定寄存器地址)3,创建一个设备类(向上提交目录信息),会在内核中
_天高地厚_
·
2023-09-12 23:48
驱动开发
驱动开发
linux
ubuntu
嵌入式硬件
驱动开发
作业 day3 9/8
实现三盏灯点亮head.h#ifndef__HEAD_H__#define__HEAD_H__#defineLED1_MODER0X50006000#defineLED1_ODR0x50006014#defineLED1_RCC0x50000A28#defineLED2_MODER0X50007000#defineLED2_ODR0x50007014#defineLED2_RCC0x50000A2
qq_56558010
·
2023-09-12 21:42
驱动开发
驱动开发
day3 9/12
udev机制创建设备文件实现过程1.驱动注册通过内核提供的驱动注册api获取设备号,为创建设备文件提供设备号2.创建设备类通过内核提供的class_create()创建一个设备类,向上提交目录信息:构造structclass变量并初始化,创建一个设备类的目录:/sys/class/类名API:structclass*class_create(structmodule*owner,constchar
qq_56558010
·
2023-09-12 21:39
驱动开发
RobotFrameWork自动化测试环境搭建
主要用于轮次很多的验收测试和验收测试
驱动开发
(ATDD),支持python,java等编程语言(百度百科)。
测试界的扛把子
·
2023-09-12 20:48
软件测试
技术分享
单元测试
测试工具
如何在Spring Boot中使用TDD写出高质量的接口
之前在《如何说服你的同事使用TDD》中介绍了为什么要使用TDD(测试
驱动开发
),以及如何使用TDD写代码。
柳树之
·
2023-09-12 16:48
嵌入式Linux
驱动开发
(同步与互斥专题)(二)
一、自旋锁spinlock的实现自旋锁,顾名思义:自己在原地打转,等待资源可用,一旦可用就上锁霸占它。①原地打转的是CPUx,以后CPUy会解锁:这涉及多个CPU,适用于SMP系统;②对于单CPU系统,自旋锁的“自旋”功能就去掉了:只剩下禁止抢占、禁止中断要理解spinlock,要通过2个情景来分析:①一开始,怎么争抢资源?不能2个程序都抢到。这挺好解决,使用原子变量就可以实现。②某个程序已经获得
嵌入式学习者。
·
2023-09-12 12:22
Linux
驱动以及裸机
linux
驱动开发
运维
嵌入式Linux
驱动开发
(同步与互斥专题)(一)
一、内联汇编1.1、语法内联汇编实现加法1.2、同步互斥失败的例子进程A在读出valid时发现它是1,减1后为0,这时if不成立;但是修改后的值尚未写回内存;假设这时被程序B抢占,程序B读出valid仍为1,减1后为0,这时if不成立,最后成功返回;轮到A继续执行,它把0值写到valid变量,最后也成功返回。这样程序A、B都成功打开了驱动程序。1.3、原子操作的原理与使用所谓“原子操作”就是1.2
嵌入式学习者。
·
2023-09-12 12:21
Linux
驱动以及裸机
linux
驱动开发
运维
TDD开发
一个好的开发习惯,应该是测试
驱动开发
,也就是常说的TDD。单元测试说了这么久,看起来好像都会了,但其实真正要做到高可用还是比较难的。在此记录一下心得。
炼丶金
·
2023-09-11 16:38
驱动开发
,stm32mp157a开发板的led灯控制实验
1.实验目的编写LED灯的驱动,在应用程序中编写控制LED灯亮灭的代码逻辑实现LED灯功能的控制;2.LED灯相关寄存器分析LED1->PE10LED1亮灭:RCC寄存器[4]->10X50000A28GPIOE_MODER[21:20]->01(输出)0X50006000GPIOE_ODR[10]->1(输出高电平)0(输出低电平)0X50006014LED2->PF10LED2亮灭:RCC寄存
ai加班的嵌入者
·
2023-09-11 11:37
驱动开发
驱动开发
stm32
嵌入式硬件
嵌入式 LINUX
驱动开发
day01 第一个内核模块程序 多文件编译为一个程序, 内核模块参数, 内核模块依赖
1.第一个内核模块程序(记得配置自己的交叉编译的工具,)首先两个文件vser.cMakefile(记得大写的M)vser.c#include//内核初始化头文件#include//内核模块文件#include//linux内核/**********自定义初始化函数***********/staticint__initvser_init(void)/*__init说明要将该函数放到EIF文件__in
_She001
·
2023-09-11 06:28
linux
驱动开发
驱动开发
linux
运维
驱动开发
day3
头文件:#ifndef__LED_H__#define__LED_H__#definePHY_GPIOE0x50006000#definePHY_GPIOF0x50007000#definePHY_RCC0x50000A28typedefstruct{volatileunsignedintMODER;volatileunsignedintOTYPER;volatileunsignedintOSPE
疯狗Crazydo
·
2023-09-11 06:55
驱动开发
arm
嵌入式硬件
STM32MP157系统驱动:LED
驱动开发
LED
驱动开发
编程实现灯的亮灭hello.hmycdev_led.cmakefilemain.c程序的自动化实现hello.h#ifndef__HEAD_H__#define__HEAD_H__//LED1
#_404_Not_Found_#
·
2023-09-11 06:55
stm32
c语言
嵌入式硬件
驱动开发
嵌入式:
驱动开发
Day2
作业:字符设备驱动,完成三盏LED灯的控制驱动代码:mychrdev.c#include#include#include#include#include#include"head.h"unsignedintmajor;//保存主设备号charkbuf[128]="";unsignedint*vir_moder_e;unsignedint*vir_odr_e;unsignedint*vir_rcc_
去码头搞搞嵌入式
·
2023-09-11 06:53
驱动开发
平台总线框架,platform总线驱动(名称匹配、ID匹配、设备数匹配)
一、总线、设备、驱动硬编码式的
驱动开发
带来的问题:垃圾代码太多结构不清晰一些统一设备功能难以支持开发效率低下1.1初期解决思路:设备和驱动分离structdevice来表示一个具体设备,主要提供具体设备相关的资源
一条飞的鱼儿
·
2023-09-10 21:13
单片机
嵌入式硬件
linux
input子系统框架、外设
驱动开发
等等)的
驱动开发
统一输入类外设产生的数据格式(structinput_event),更加方便应用层编程设计了输入子系统事件处理层:接收来自核心层上报的事件,并选择对应的handler(事件处理器structinput_handler
一条飞的鱼儿
·
2023-09-10 21:43
驱动开发
linux
嵌入式硬件
实施Microsoft Dynamics 365 CE-2. 实施方法,解释不同的项目实施方法。
我们还将了解不同的、常用的项目管理方法,如瀑布、敏捷、Scrum、功能
驱动开发
、DevOps和MicrosoftSureStep及其阶段。
Martin-Mei
·
2023-09-10 10:39
实施Microsoft
Dynamics
365
CE
microsoft
c#
第19章 并发与竞争实验(iTOP-RK3568开发板
驱动开发
指南 )
在前面章节的学习中,相信大家已经对用户空间与内核空间数据传递进行了实验,假如要传递的数据被存放在了全局变量,该数据就可以作为共享资源被多个任务共同读写,从而造成数据的错误传输,多个程序同时访问一个共享资源产生的问题就叫做竞争。竞争产生的根本原因就是Linux系统的并发访问。在本章节中首先会对并发与并行的概念进行讲解,随后对竞争产生的原因进行总结,最后以一个实际的竞争实验加深大家的理解。下面就让我们
北京迅为
·
2023-09-10 10:35
驱动开发
第20章 原子操作实验(iTOP-RK3568开发板
驱动开发
指南 )
在上一章节的实验中,对并发与竞争进行了实验,两个app应用程序之间对共享资源的竞争访问引起了数据传输错误,而在Linux内核中,提供了四种处理并发与竞争的常见方法,分别是原子操作、自旋锁、信号量、互斥体,在之后的几个章节中会依次对上述四种方法进行讲解。本章首先对四种常见方法中的原子操作进行讲解。20.1原子操作“原子”是化学世界中不可再分的最小微粒,一切物质都由原子组成。在Linux内核中的原子操
北京迅为
·
2023-09-09 15:02
驱动开发
第22章 自旋锁死锁实验(iTOP-RK3568开发板
驱动开发
指南 )
在上一小节中,学习了内核中自旋锁的使用,而自旋锁若是使用不当就会产生死锁,在本章将会对自旋锁的特殊情况-死锁进行讲解。22.1自旋锁死锁死锁是指两个或多个事物在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象。当多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进,这种情况就是死锁。自旋锁死锁发生存在两种情况:(1)第一种情况是拥有自旋锁的进程A在
北京迅为
·
2023-09-09 14:02
驱动开发
第24章 互斥锁实验(iTOP-RK3568开发板
驱动开发
指南 )
在上一章节中对信号量进行了学习,而本章节要学习的互斥锁可以说是“量值”为1的信号量,最终实现的效果相同,既然有了信号量,那为什么还要有互斥锁呢,带着疑问,让我们来进行本章节的学习吧!24.1互斥锁在上一章节中,将信号量量值设置为1,最终实现的就是互斥效果,与本章节要学习的互斥锁功能相同,虽然两者功能相同但是具体的实现方式是不同的,但是使用互斥锁效率更高、更简洁,所以如果使用到的信号量“量值”为1,
北京迅为
·
2023-09-09 14:02
驱动开发
第21章 自旋锁实验(iTOP-RK3568开发板
驱动开发
指南 )
在上一节中对原子操作进行了讲解,并使用原子整形操作对并发与竞争实验进行了改进,但是原子操作只能对整形变量或者位进行保护,而对于结构体或者其他类型的共享资源,原子操作就力不从心了,这时候就轮到自旋锁的出场了,下面就让我们一起来进行自旋锁的学习吧。21.1自旋锁自旋锁是为了保护共享资源提出的一种锁机制。自旋锁(spinlock)是一种非阻塞锁,也就是说,如果某线程需要获取锁,但该锁已经被其他线程占用时
北京迅为
·
2023-09-09 14:32
驱动开发
第23章 信号量实验(iTOP-RK3568开发板
驱动开发
指南 )
在上面两个章节对自旋锁和自旋锁死锁进行了学习,自旋锁会让请求的任务原地“自旋”,在等待的过程中会循环检测自旋锁的状态,进而占用系统资源,而本章节要讲解的信号量也是解决竞争的一种常用方法,与自旋锁不同的是,信号量会使等待的线程进入休眠状态,适用于那些占用资源比较久的场合。下面对信号量相关知识的进行讲解。23.1信号量信号量是操作系统中最典型的用于同步和互斥的手段,本质上是一个全局变量,信号量的值表示
北京迅为
·
2023-09-09 14:31
驱动开发
Linux I2C设备驱动基本规范
不同于单片机
驱动开发
,即使是简单的I2C设备驱动程序,如果要在Linux上实现同种功能的驱动程序,事情也会变的复杂起来。
奔跑的码仔
·
2023-09-09 09:37
ARM-linux
Linux
kernel
设备树编程实践
linux
I2C
设备驱动
【深入理解Linux内核锁】七、互斥体
我的圈子:高级工程师聚集地我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux
驱动开发
和系统开发,曾就职于世界500强企业!创作理念:专注分享高质量嵌入式文章,让大家读有所得!
卍一十二画卍
·
2023-09-08 16:19
深入理解Linux驱动程序开发
#
Linux内核锁
linux
Linux驱动开发
Linux内核锁
嵌入式硬件
ubuntu
linux设备
驱动开发
学习--内存和IO访问
一I/O端口1.读写字节端口(8位宽)unsignedinb(unsignedport);voidoutb(unsignedcharbyte,unsignedport);2.读写字端口(16位宽)unsignedinw(unsignedport);voidoutw(unsignedshortword,unsignedport);3.读写长字端口(32位宽)unsignedinl(unsignedp
Rocky_zhm
·
2023-09-08 14:15
驱动开发
驱动开发
嵌入式Linux
驱动开发
(LCD屏幕专题)(三)
1.硬件相关的操作LCD驱动程序的核心就是:分配fb_info设置fb_info注册fb_info硬件相关的设置硬件相关的设置又可以分为3部分:引脚设置时钟设置LCD控制器设置2.在设备树里指定LCD参数framebuffer-mylcd{compatible="100ask,lcd_drv";pinctrl-names="default";pinctrl-0=;backlight-gpios=;
嵌入式学习者。
·
2023-09-08 10:20
Linux
驱动以及裸机
linux
驱动开发
运维
嵌入式Linux
驱动开发
(LCD屏幕专题)(四)
单Buffer的缺点与改进方法1.单Buffer的缺点如果APP速度很慢,可以看到它在LCD上缓慢绘制图案即使APP速度很高,LCD控制器不断从Framebuffer中读取数据来显示,而APP不断把数据写入Framebuffer假设APP想把LCD显示为整屏幕的蓝色、红色很大几率出现这种情况:LCD控制器读取Framebuffer数据,读到一半时,在LCD上显示了半屏幕的蓝色这是APP非常高效地把
嵌入式学习者。
·
2023-09-08 10:20
Linux
驱动以及裸机
linux
驱动开发
运维
第3章 helloworld 驱动实验(iTOP-RK3568开发板
驱动开发
指南 )
在学习C语言或者其他语言的时候,我们通常是打印一句“helloworld”来开启编程世界的大门。学习驱动程序编程亦可以如此,使用helloworld作为我们的第一个驱动程序。接下来开始编写第一个驱动程序—helloworld。3.1驱动编写本小节来编写一个最简单的驱动——helloworld驱动。helloworld.c如下(图3-1)所示代码:#include#includestaticint_
北京迅为
·
2023-09-08 10:20
驱动开发
【IMX6ULL
驱动开发
学习】24.关于mmap为什么能直接操作LCD显示
记录今天面试中遇到的一个提问,当时没有答上来感谢面试官(弓总)的提问,让我认识到了目前的不足,下午又深入的学习了一下,在这里做一下补充mmap为什么能直接操作LCD显示首先在内核空间申请一段或多段内存作为显存,即Framebuffer然后使用mmap把这段内存的物理地址映射到应用程序的地址空间相当于应用中也有一块内存,这两块内存的虚拟地址不一样(一个虚拟地址是内核空间的,一个是用户空间的),但是对
晨少爱学习
·
2023-09-08 10:20
IMX6ULL
驱动开发
mmap
Linux
驱动开发
主设备号和次设备号主设备号区分不同种类的设备次设备号区分同一类型不同的设备Linux的驱动链表会管理这些设备驱动1.添加(编写完驱动程序加载到内核)2.查找(调用驱动程序,用户层去调用open)驱动插入链表的顺序由设备号检索2.
驱动开发
驱动的开发就是添加驱动和调用驱动添加驱动
C有点难。
·
2023-09-08 07:15
Linux
驱动开发
linux
驱动开发
--day2
实现三盏灯的控制,编写应用程序测试head.h#ifndef__HEAD_H__#define__HEAD_H__#defineLED1_MODER0X50006000#defineLED1_ODR0X50006014#defineLED1_RCC0X50000A28#defineLED2_MODER0X50007000#defineLED2_ODR0X50007014#endifmychrdev
林黛玉倒拔垂杨柳~
·
2023-09-08 01:02
驱动开发
c语言
stm32
全志A133成长录
文章目录前言前言1.本专栏主要是记录使用全志A133开发过程的经验和bug2.主要是针对
驱动开发
,不定期更新3.后期会把目录更新到本文中。
不知道起个啥名“”
·
2023-09-08 00:28
A133
A133
驱动开发
linux
驱动开发
--day1(驱动、内核模块及相关命令、内核模块传参)
#include#includeinta=10;module_param(a,int,0664);MODULE_PARM_DESC(a,"thisisavalue");charb=97;module_param(b,byte,0664);MODULE_PARM_DESC(b,"thisisachar");char*c="hi";module_param(c,charp,0664);MODULE_P
林黛玉倒拔垂杨柳~
·
2023-09-07 11:56
linux
驱动开发
c语言
嵌入式Linux
驱动开发
(LCD屏幕专题)(二)
一、结合APP分析LCD驱动程序1、openapp:open("/dev/fb0",...)主设备号:29,次设备号:0--------------------------------------------------------------kernel:fb_open//fbmem.cstructfb_info*info;info=get_fb_info(fbidx);if(info->fbo
嵌入式学习者。
·
2023-09-07 11:23
Linux
驱动以及裸机
linux
驱动开发
运维
第4章 内核模块实验(iTOP-RK3568开发板
驱动开发
指南 )
在上一章节我们编写了最简单的helloworld驱动程序。有了驱动程序以后,要如何编译并使用驱动呢。编译驱动有俩种方法,分别是将驱动编译成内核和将驱动编译成内核模块。我们先来学习如何将驱动编译成内核模块、4.1设置交叉编译器1下载网盘资料下的交叉编译器,网盘路径为:“XXX”,将下载的交叉编译器拷贝到Ubuntu的/usr/local目录下,如下图(图4-1)所示:图4-12输入以下命令,解压交叉
北京迅为
·
2023-09-07 11:50
驱动开发
第5章 驱动模块传参实验(iTOP-RK3568开发板
驱动开发
指南 )
经过前两章实验的实战操作,我们已经完成最简单的helloworld驱动实验和模块驱动实验,加载模块可以使用“insmod”函数,使用“insmod”函数进行模块加载时也能进行参数的传递。运用得当可以极大提升内核测试速度。本节就来学习一下如何进行驱动模块的传参。5.1驱动模块传参简介驱动模块传参是一种可以随时向内核模块传递、修改参数的方法。例如可以传递串口驱动的波特率、数据位数、校验位、停止位等参数
北京迅为
·
2023-09-07 11:50
驱动开发
第6章 内核模块符号导出实验(iTOP-RK3568开发板
驱动开发
指南 )
在上一小节中,给大家讲解了驱动模块传参实验,使用insmod命令加载驱动时可以进行参数的传递,但是每一个内核模块之间是相互独立的,那模块间的符号传递要怎样进行呢,让我们带着疑问来进行本章节的学习吧!6.1内核模块符号导出简介驱动程序编译生成的ko文件是相互独立的,即模块之间变量或者函数在正常情况下无法进行互相访问。而一些复杂的驱动模块需要分层进行设计,这时候就需要用到内核模块符号导出。内核符号导出
北京迅为
·
2023-09-07 11:50
驱动开发
嵌入式Linux
驱动开发
(LCD屏幕专题)(一)
一、LCD简介总的分辨率是yres*xres。1.1、像素颜色的表示以下三种方式表示颜色1.2、如何将颜色数据发送给屏幕每个屏幕都有一个内存(framebuffer)如下图,内存中每块数据对用屏幕上的一个像素点,设置好LCD后,只需把颜色数据写入framebuffer即可。二、Framebuffer驱动框架Framebuffer驱动属于字符设备驱动,我们先说字符设备驱动框架如下图:驱动主设备号构造
嵌入式学习者。
·
2023-09-07 11:47
Linux
驱动以及裸机
linux
驱动开发
第1章 前言(iTOP-RK3568开发板
驱动开发
指南 )
磨刀不误砍柴工!在学习驱动之前先和同学们交流下学习方法和学习态度。1.1学习方法在学习驱动的过程中,同学们难免会遇到很多问题,例如编译环境的问题造成内核编译不通过、交叉编译器或者架构类型没有设置导致驱动编译失败、内核版本和驱动版本不统一造成驱动加载不成功等多种问题。在遇到问题的时候,同学们一定不要灰心,要敢于去尝试用自己的思路去解决问题。机遇与挑战往往是并存的。当同学们解决一个问题以后,自然就会前
北京迅为
·
2023-09-07 10:47
驱动开发
IMAU鸿蒙北向开发-2023年9月4日学习日志
南向:指的软硬件结合的嵌入式开发,一般用c、c++进行开发,注重硬件操作、
驱动开发
、操作系统裁剪定制等。1.2HarmonyOS介绍HarmonyOS是一款面向
okfang616
·
2023-09-07 09:25
harmonyos
学习
华为
“深入理解SpringMVC的注解
驱动开发
“
本文将深入探讨SpringMVC的注解
驱动开发
,重点关注常用注解、参数传递、返回值和页面跳转等方面。1.Sprin
叶秋∵
·
2023-09-07 00:27
mybatis
spring
tomcat
java
maven
idea
log4j
已启用spectre缓存,但找不到spectre缓解库
出现这个错误提示是因为VisualStudio安装了
驱动开发
环境就会自动开启这个选项,如图:把这个选项关了就行,但这样就需要每个项目都改一改这个比较麻烦,也可以补全缺失的库,打开VisualStudio
l198738655
·
2023-09-07 00:23
C/C++
c++
Pixhawk原生固件PX4之MPU6000驱动分析
涉及到一些关于Linux设备
驱动开发
的知识。在继续往下读之前有必要先感受一下PX4中驱动的注册过程,以及关键的设备驱动ID分配。字符型设备在NuttX操作系统中,M
FantasyJXF
·
2023-09-06 09:23
Pix学习笔记
Pixhawk
PX4
MPU6000
传感器
驱动
面经——嵌入式常见面试题总结100题(下)
52,试总结单片机底层开发与LINUX
驱动开发
有哪些异同?53.请从网卡、USBHOST、LCD驱动器、NANDFLASH、WIFI
行稳方能走远
·
2023-09-06 03:49
嵌入式知识
linux
嵌入式
面试
iBizSys Cloud MDD的探索和实践
前言模型
驱动开发
ModelDrivenDevelopment(MDD)是一种以模型作为主要内容的高级别抽象的开发方法,模型在工具的支持下,被作为核心资产被转换成代码、文档或者可运行配置。
MoneyQ
·
2023-09-05 16:39
android小白进阶系列----activity启动分析
对
android底层
的了解,无疑对你上层代码使用能更加的轻车熟路、避免bug。所有才有了源码分析系列的博客“好记性不如烂笔头”
code搬运
·
2023-09-05 14:49
上一页
16
17
18
19
20
21
22
23
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他