自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (6)
  • 收藏
  • 关注

转载 Android 特权许可白名单

一、priv-app 白名单简介  特权应用程序是位于/system/priv-app系统映像目录中的系统应用程序 。从历史上看,设备实施者几乎无法控制哪些特权权限可以授予特权应用程序。从Android 8.0开始,实现者可以在/etc/permissions目录中的系统配置XML文件中明确地将特权应用程序列入白名单。未在这些XML文件中明确列出的应用程序未被授予特权权限。特别注意事项:  仅对 具有package =“android”的应用程序声明的 权限才需要白名单 。Google Play进展使

2021-03-10 15:58:05 2107

原创 Android P源码添加全局属性

  平常在Android系统开发的过程中,我们经常会遇到需要属性来触发一些事件或者保存一些值,这时候我们需要用到系统属性,系统属性可以说是贯穿整个Android系统的一个重要知识点。系统属性  在android 系统中,为统一管理系统的属性,设计了一个统一的属性系统。每个属性都有一个名称和值,他们都是字符串格式;属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换;属性是在整个系统中全局可见的;每个进程可以get/set属性。在编译的过程中会将各种系统参数汇总到build

2020-08-31 15:46:13 824

原创 Android9.0挂载system文件夹读写

  在Android系统中,system文件夹一般都是只读属性,不管你是root用户还是普通权限用户,所以在开发中,如果我们想要访问和修改system文件夹下的内容的话就需要获取system文件夹的写属性,而因为Android版本的变化,在不同版本下system文件夹修改读写属性的方式也有较大的区别。Android8.0以下Android8.0以上...

2020-08-14 16:38:41 18550 10

转载 Android文件实现选择打开方式

  对于Android的一些文件,假如我们要实现和电脑上选择打开方式的话,Android上面提供了比较简便的方式。首先获取文件类型,即MIME类型MIME类型表后面附上/*** 根据文件后缀名获得对应的MIME类型。* @param file*/private static String getMIMEType(File file) { String type="*/*";...

2019-11-19 17:00:02 5178 2

原创 Ubuntu服务器上搭建solo个人博客系统

要成功搭建一个网站,需要完成以下几个主要步骤:购买服务器购买域名及备案安装依赖软件安装博客程序登录博客后台设置网站信息本文接下来将依次详细介绍每一个步骤:购买服务器  这里我购买的阿里云服务器ECS,操作系统镜像选择的Ubuntu系统。以前也没有使用过其他的服务器,没法比较优劣。想来阿里云不会差,毕竟是大厂的。  点击这里可以去阿里云官网上选择一款合适的服...

2019-09-18 14:15:51 1685

原创 Git 打补丁-- patch 和 diff 的使用(详细)

一、 patch 和diff 的区别Git 提供了两种补丁方案,一是用git diff生成的UNIX标准补丁.diff文件,二是git format-patch生成的Git专用.patch 文件。.diff文件只是记录文件改变的内容,不带有commit记录信息,多个commit可以合并成一个diff文件。.patch文件带有记录文件改变的内容,也带有commit记录信息,每个commit对应...

2019-08-30 09:30:42 6851

原创 Linux内核regmap介绍

Regmap介绍  内核3.1引入一套新的API regmap,目的是提取出关于I2C SPI irq等相关注册、使能以及读写的公共部分,以提高代码的可重用性,并且使得在使用如上内核基础组件时变得更为简单易用。基础结构  struct regmap_config 结构体代表一个设备的寄存器配置信息,在做 Regmap 初始化时,驱动就需要把这个结构体传给 Regmap。这个结构体的定义在 i...

2019-08-27 17:35:29 2682

原创 移植一个Linux系统的主要流程

  在众多嵌入式操作系统中,Linux目前发展最快、应用最为广泛。性能优良、源码开放的Linux具有体积小、内核可裁减、网络功能完善、可移植性强等诸多优点,非常适合作为嵌入式操作系统。一个最基本的Linux操作系统应该包括:引导程序、内核与根文件系统三部分。  因此,需要移植一个Linux系统的话,那么需要以下4个步骤:搭建交叉开发环境bootloader的选择和移植kernel的配置、...

2019-08-14 10:25:55 1650

原创 Android系统驱动介绍

  Android中内核的结构和标准的Linux 2.6内核是基本相同的,不过Android在其基础上增加了私有内容。Android在Linux内核中增加的主要是一些驱动程序,这些驱动程主要分为两种:Android专用驱动和Android使用的设备驱动。Android专用驱动   Android专用驱动程序不是Linux的标准驱动,它们的作用是辅助系统运行,一般不操作实际硬件。Ashmem...

2019-08-12 09:02:37 6315 1

原创 Android系统Activity的四种启动模式、应用场景

  在一个项目中会包括着多个Activity,系统中使用任务栈来存储创建的Activity实例,任务栈是一种“后进先出”的栈结构。举个栗子,若我们多次启动同一个Activity。系统会创建多个实例依次放入任务栈中。当按back键返回时,每按一次,一个Activity出栈,直到栈空为止。当栈中无不论什么Activity。系统就会回收此任务栈。  上面这个样例中的Activity并没有设置启动模式,...

2019-08-09 17:20:49 989

原创 Linux设备驱动学习——platform总线驱动

  在Linux 2.6以后的设备驱动模型中,需关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。platform总线  相对于USB、PCI、I2C、SPI等物理总线来说,platform总线是一种虚拟、抽象出来的总线,实际中并不存在这样的总线。  那为什么需要...

2019-08-08 11:07:59 352

原创 Linux设备驱动程序学习(十)——PCI驱动程序

  前面介绍的是最底层的硬件控制,这部分将介绍高级总线架构的一些综述,总线由电气接口和编程接口够成。下面将重点介绍PCI总线的编程接口以及对应的内核函数。PCI(外围设备互联)接口  PCI总线是当今普遍使用在桌面以及更大型计算机上的外设总线,而且该总线是内核中得到最好支持的总线。尽管许多计算机用户将PCI看成是一种布置电子线路的方式,但实际上它是一组完整的规范,定义了计算机的各个不同部分之间...

2019-08-06 09:55:04 2570

原创 Linux设备驱动程序学习(十六)——Linux设备树解析

设备树简介  在内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录,对内核而言这些platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的platform_data绝大多数纯属垃圾冗余代码。为了解决这一问题,ARM内核版本3.x之后引入了原先在Power...

2019-08-06 09:54:01 4588 1

原创 Linux设备驱动程序学习(十五)——LCD设备驱动程序

LCD屏的定义和分类LCD的定义   LCD是Liquid Crystal Display的简称,也就是经常所说的液晶显示器。   LCD能够支持彩色图像的显示和视频的播放,是一种非常重要的输出设备。LCD的分类(按驱动方式)   依据驱动方式可分为静态驱动、简单矩阵驱动以及主动矩阵驱动3 种。其中,简单矩阵型又可再细分扭转向列型(TN)和超扭转式向列型(STN)两种,而主动矩阵型则以薄...

2019-08-05 09:02:23 697

原创 Linux设备驱动程序——调试技术

  对于任何系统来说,调试都是必不可少的内容,当然在Linux设备驱动程序中也不例外,下面就是介绍Linux调试的一些方法以及工具。Linux调试器GDBGDB调试器的介绍和基本用法  GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能:启动程序,可以按照工程师自定义的要求运行程序。让被调试的程序在工程师指定的断点处停住,断点可...

2019-07-31 10:33:31 1146

原创 Linux设备驱动程序学习(十四)——tty设备驱动程序

终端设备  在Linux系统中,终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写,Teletype是最早出现的一种终端设备,很像电传打字机,是由Teletype公司生产的。  Linux中包含如下几类终端设备:串行端口终端(/dev/ttySn)串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端...

2019-07-29 10:41:28 1076

转载 Linux系统和内核目录解析

  在学习Linux以及Linux内核的过程中,总是会忘记Linux系统以及内核里的一些目录的含义,因此特地收集了关于Linux系统目录的含义解析以及Linux内核目录的解析。Linux系统目录解析  关于Linux的系统目录,可以按照以下分类来了解其对应的功能:  系统启动必须:/boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。/etc:存放所有的系统需要...

2019-07-25 17:56:39 1609

原创 Linux设备驱动程序学习(十三)——Linux设备驱动模型

  由于Linux支持世界上几乎所有的、不同功能的硬件设备(这是Linux的优点),导致Linux内核中有一半的代码是设备驱动,而且随着硬件的快速升级换代,设备驱动的代码量也在快速增长。为了降低设备多样性带来的Linux驱动开发的复杂度,以及设备热拔插处理、电源管理等,Linux内核提出了设备模型(也称作Driver Model)的概念。设备模型将硬件设备归纳、分类,然后抽象出一套标准的数据结构和...

2019-07-24 09:03:29 447

原创 Linux设备驱动程序学习(十二)——I2C设备驱动

  I2C总线仅仅使用SCL、SDA这两根信号线就实现了设备之间的数据交互,极大地简化了对硬件资源和PCB板布线空间的占用。因此,I2C总线非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。   Linux系统定义了I2C驱动体系结构。在Linux系统中,I2C驱动由3部分组成,即I2C核心、I2C总线驱动和I2C设备驱动。这3部分相互协作,形成了非常通用、可适应性很强的I...

2019-07-22 09:40:06 469

原创 Android中Json文件解析

  Json文件在网络数据传输中可以说是最常使用的数据格式,因此在我们的日常开发中,对于Json文件格式的解析以及转换可以说是非常重要的,因此在这介绍以下对于Json文件格式的解析以及各种转换方式。Json文件介绍{ "code": 200, "msg": "OK", "muser": [ {"name": "zhangsan","age": "10","phone"...

2019-07-19 08:21:18 4634

原创 Linu习设备驱动程序学习(十一)——USB设备驱动

  **通用串行总线(USB)是主机和外围设备之间的一种连接。USB最初是为了替代许多不同的低速总线(包括并行、串行和键盘连接)而设计的,它以单一类型的总线连接各种不同类型的设备。**现在可以支持几乎所有的可以连接到pc上的设备,最新的usb规范增加了理论上高达480Mbps的高速连接。  从拓扑上来看,一个USB子系统并不是以总线的方式来布置的,它是一颗由几个点对点的连接构建而成的树,这些连接...

2019-07-18 09:29:16 311

原创 Xposed模块开发

  最近突然看到了Xposed这一项技术,觉得蛮有意思的,现在的蚂蚁森林自动收能量以及微信自动回复等都是通过这个来实现的,因此记录一下Xposed的基本实现。Xposed模块介绍  Xposed框架是一款开源框架,其功能是可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。Xposed 就好比是 Google 模块化...

2019-07-15 22:59:35 10735 4

原创 Linux设备驱动程序学习(九)——块设备驱动程序

Linux块设备特点字符设备与块设备的不同主要有:块设备只能以块为单位接收输入和返回输出,而字符设备则以字节为单位。大多数设备是字符设备,因为它们不需要缓冲而且不以固定块大小进行操作。块设备对于I/O请求有对应的缓冲区,因此它们可以选择以什么顺序进行响应,字符设备无须缓冲且被直接读写。对于存储设备而言,调整读写的顺序作用巨大,因为在读写连续的扇区的存储速度比分离的扇区更快。字符设备...

2019-07-15 09:01:02 774

原创 Linux设备驱动程序学习(八)——内存与I/O访问

内存空间和I/O空间  在X86处理器中存在着I/O空间的概念,I/O空间是相对于内存空间而言的,它通过特定的指令in、out来访问。端口号标识了外设的寄存器地址。Intel语法中的in、out指令格式如下:IN 累加器, {端口号│DX}OUT {端口号│DX},累加器  目前,大多数嵌入式微控制器(如ARM、PowerPC等)中并不提供I/O空间,而仅存在内存空间。内存空间可以直接通...

2019-07-12 09:22:05 2817

原创 Linux设备驱动程序学习(七)——定时器

这一部分主要是对于内核代码如何处理时间问题的解析,主要学习的内容:如何度量时间差,如何比较时间如何获取当前时间如何将操作延迟到指定的一段时间如何调度异步函数到指定的时间之后去执行度量时间差内核通过定时器中断来跟踪时间流。下面是一些相关的概念:时钟中断:由系统定时硬件以周期性的间隔产生。hz:上述间隔由hz的值设定,hz是一个与体系结构相关的常数,定义在<linux/pa...

2019-07-10 15:17:01 321

原创 Linux设备驱动程序学习(六)——中断处理

中断是指 CPU 在执行程序的过程中,出现了某些突发事件时 CPU 必须暂停执行当前的程序,转去处理突发事件,处理完毕后 CPU 又返回原程序被中断的位置并继续执行。中断的分类根据中断来源分类根据中断的来源,中断可分为内部中断和外部中断:内部中断的中断源来自 CPU内部(软件中断指令、溢出、除法错误等,例如,操作系统从用户态切换到内核态需借助 CPU 内部的软件中断);外部中断的中断源...

2019-07-09 09:31:15 1969

原创 Linux设备驱动程序学习(五)——高级字符设备驱动程序

在前面我们学习了字符设备驱动程序的实现,但是不知道你们有没有注意到,在前面,我们只学习了open、close、read和write的方法实现,而对于iotctl和llseek并没有讲解,而这一部分,将讲解这两个方法的实现以及阻塞和非阻塞型I/O的一些相关知识。定位设备定位设备的方法:llseek llseek 方法实现了 lseek 和 llseek 系统调用,主要用来确定读写数据的位置。...

2019-07-08 09:12:34 631

原创 buildroot详解和分析

buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。buildboo...

2019-07-05 15:55:28 34165 1

原创 Linux设备驱动程序学习(四)——并发和竟态

并发:是指多个单元同时、并行被执行,并发执行单元对共享资源的访问就很容易导致竞态。竞态: 假设有一个设备,执行单元A对其写入3000个字符’a’而另一个执行单元B对其写入4000个’b’,第三个执行单元C读取globalmem的所有字符,如果执行单元A、B对于设备的写入操作同时发生,此时就会造成竞态。并发及管理竞态通常是作为对资源的共享访问结果而产生的。当两个执行线程需要访问相同的数据结构(...

2019-07-05 09:22:18 416

原创 Linux设备驱动程序——一个简单的字符设备驱动程序

对于想入门Linux设备驱动程序的人来说,字符设备驱动往往是最简单的了解和实践的最佳选择,这里就实现一个简单的字符驱动,以便于大家了解字符设备驱动程序。字符设备驱动程序这里就我实现的字符设备驱动程序的源代码来讲解,这只是最简单的实现,便于大家了解,因此并没有涉及到锁,休眠等操作,不过在实际的字符设备驱动程序中,这些操作也是很常见的。char.c源代码#include <linux/m...

2019-07-04 11:36:41 1661 3

原创 Linux设备驱动程序学习(三)——字符设备驱动程序

前面我们了解了Linux设备驱动程序的入门知识和准备工作,下面我们就将真正的进入Linux设备驱动程序的世界,下面就将LDD3下面的scull字符设备驱动程序的实现来学习字符设备驱动的特点以及如何在用户空间被调用,书籍和源码下载地址为链接: https://pan.baidu.com/s/1OB4z_vjlov2gHTwrCe7hjQ 提取码: b427字符设备驱动程序字符设备和字符设备驱动程...

2019-07-03 22:06:45 1101

原创 Linux设备驱动程序学习(二)——准备工作和模块概念了解

前面是介绍Linux驱动设备程序的概念,这一部分的话才是真正开始学习Linux驱动设备程序的编写,这一部分主要是准备好Linux内核的源码树,然后通过源码树来介绍模块构造和运行,通过实例的模块程序来学习模块的装载和卸载。设置测试系统准备好一个Linux内核源码树,就相当于java中准备好编译环境和编译工具,步骤为:查看当前Linux系统的内核版本alex_wu@wu:~$ uname ...

2019-07-03 11:40:52 491 1

原创 Linux设备驱动程序学习(一)——Linux设备驱动程序的介绍

这一部分主要是用来介绍Linux设备驱动程序的一些基本概念,包括:Linux设备驱动程序的作用、内核功能的划分以及设备和模块的分类。Linux设备驱动程序的作用设备驱动程序就像一个个的“黑盒子”,使某个特定硬件响应一个定义良好的内部编程接口,这些操作完全隐藏了设备的工作细节。用户的操作通过一组标准化的调用执行,而这些调用独立于特定的驱动程序。将这些调用映射到作用于实际硬件的设备特有操作上,...

2019-07-03 10:43:17 1030 2

转载 SVN与Git比较的优缺点差异

转载自https://www.cnblogs.com/Sungeek/p/9152223.html

2019-07-03 10:02:38 9917 2

原创 在Ubuntu上搭建git服务器

在ubuntu上创建git服务器的详细步骤: 1.安装git Linux作为服务器端系统,Windows作为客户端系统,分别安装Git 服务器端:[admin@admin ~]$ su root #切换到root用户名Password: ...

2019-03-19 14:36:23 11034 2

原创 Linux系统vi和vim的介绍

Linux系统vi和vim的使用1、VI模式(1)、命令行模式 (command mode/一般模式) 任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动vi命令,进入编辑器时,也是处于该模式下。在该模式...

2019-03-15 17:19:10 4854

原创 安卓单例模式的介绍

安卓单例模式单例模式的介绍 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例 。 单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进...

2019-03-15 17:11:45 849

原创 Android中so文件的生成和调用

1、so文件介绍“so”文件是使用C/C++编写生成的,在Android 平台上快速编译、打包该文件,它是一个动态链接库,而生成“so”文件其实就是JNI开发。2、JNI开发简介(1)、JNI简介JNI全称为Java Native Interface(JAVA本地调用)。从Java1.1开始,JNI成为java平台的一部分,它允许Java代码和其他语言写的代码(如C&amp;C++)进行交...

2019-01-18 11:38:16 5175

安卓音乐播放器app

一款比较简单的音乐播放器,主要帮助想学习音乐播放器的人来理解一个音乐播放器的实现,音乐是获取系统的音乐列表,根据时长排除较短的歌曲,主要功能有:进度条控制和播放、通知栏控制歌曲播放和跳转,音乐播放模式选择:单曲、循环和随机、使用sharedPreferences保证退出后自动记录当前播放的歌曲。总之这是对于想学习开发音乐播放器的人的一个比较好的代码,而且代码对于主要功能都有注释。

2019-05-07

安卓天气app

学习郭霖大神的第一行代码写出来的天气app,因为刚开始看的是第一版的,因此数据库是自己创建的,而且因为和风天气的json文件有不一样的格式了,因此重新做了解析和获取数据,使用的话要记得把我的和风天气的key值改成自己的。

2019-03-15

安卓6.0后动态申请权限的工具类

安卓6.0后动态申请隐私权限的工具类,有两种工具类,描述都比较清楚,基本都是通过封装接口来调用,可以自主选择自己想用哪种,里面也描述了调用的方法,没法设置免费,只能收1积分

2019-01-07

STM8S编写程序系列教程

包含STM8S在IAR编程时需要的标准库函数,在使用IAR编写代码时,可以将其导入,就能使用,不过在不同的板子上有些函数不能用,将报错的注释即可;还有STM8s在IAR上编写的一系列简单的程序,包括LED、定时器、按键中断以及看门狗等一系列基础代码;最后还包含STM8s的库函数自动生成的软件,总之就是一系列的STM8s板子的服务。

2018-09-12

servlet包以及连接数据库的包

servlet包以及连接数据库的包,以及包含了java框架需要的一些包,具体总结了起来;

2018-03-29

java web学生信息管理系统

java web学生信息管理系统,包含了登录,还有验证码功能。成绩录入,修改,学生信息录入修改查询等等功能,代码清晰易懂,无错误

2018-03-26

空空如也

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

TA关注的人

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