自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(391)
  • 资源 (7)
  • 收藏
  • 关注

转载 rt-thread调度锁与关闭中断深度探究

1.说明对于使用rt-thread操作系统的人来说,我提出一个问题?什么时候用到调度锁,又什么时候用到关闭中断?很多人初次学习rtt操作系统的时候都没有深入的去思考这些问题,以及关闭调度器后可以做什么事情,关闭中断后又能做什么事情?本文从解决这些问题的角度出发,从实际应用的角度去分析这些问题。2.调度锁与关闭中断在rt-thread中,保护临界区的方法除了IPC线程间通信机制,然后就是调度锁与关闭中断了。调度锁rt-thread调度锁的目的是让调度器停止工作,这时不进行线程的切换工作..

2021-12-04 19:00:05 1360 3

原创 记录ubuntu 14.04编译鸿蒙OS

源码下载 zh-cn/device-dev/get-code/sourcecode-acquire.md · OpenHarmony/docs - Gitee.com配置gitgit config --global user.name "yourname"git config --global user.email "your-email-address"git config --global credential.helper store下载repo和源码repo init -..

2021-10-05 15:24:41 364

转载 android JNI调用(Android Studio 3.0.1)(转)

最近回头复习了一下android 的jni调用,却发现按以前的方法调用失败,一怒之下就重新摸索,碰了几次壁,发现网上好多教程都不能成功调用,于是记录一下现在AS版本成功好用的调用方法。这里设定你的ndk已经下载并且设置没问题.源码链接:http://download.csdn.net/download/yeyuehei/10149844当前android studio 版本3.0.1,步骤如下:1.设置jni -h 和ndk -build的快捷方式2.java代码写c回调的方法,及grade

2021-08-27 13:05:05 484

转载 软件架构的5种视图

逻辑架构:关注功能。不仅包括用户可见的功能,也包括一些基础模块以及辅助模块。开发架构:关注程序包,不仅包括要编写的程序,还包括可以直接使用的第三方SDK或者现成的框架、类库以及开发的系统将运行于其上的系统软件或者中间件。运行架构:关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。物理架构:关注‘目标程序及其依赖的运行库和系统软件’最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。数据架构:关注持久化数据的存储方案,不仅包括实体及其实体关

2020-12-03 14:39:24 2362

转载 利用NotificationListenerService和Android Auto自动回复微信消息

这里只讲技术和思路这里只讲技术和思路这里只讲技术和思路在之前的一片文章中描述了如何通过NotificationListenerService获取微信通知的消息,利用NotificationListenerService获取微信通知消息的头像和内容1.通过虚拟点击回复消息:1.1当通过NotificationListenerService可以获取一个PendingIntent ,这个PendingIntent封装了数据,可以直接跳转到对应发送消息的会话...

2020-07-02 17:13:13 861

转载 利用NotificationListenerService获取微信通知消息的头像和内容

强调下:利用Android原生功能获取第三方APP通知消息是流氓且不道德的(可能沾上官司),本文只讲原理强调下:利用Android原生功能获取第三方APP通知消息是流氓且不道德的(可能沾上官司),本文只讲原理强调下:利用Android原生功能获取第三方APP通知消息是流氓且不道德的(可能沾上官司),本文只讲原理提供一篇灵感文章,写的很好推荐看看https://blog.csdn.net/Vanswells/article/details/81033280获取Android 微信通知有两条思路

2020-07-02 17:11:42 1315

转载 数据结构和算法

如下博客是作者在学习原著Data Structure and Algorithms in C++, 4th Edition时的读书笔记,文中结论和数据以及代码块都出自原文。值得看看https://www.jianshu.com/p/712b83987cf1https://www.jianshu.com/p/991d902ec7c4...

2020-05-08 16:22:20 176

转载 Android多媒体开发(3)——Video Rendering

AwesomePlayer::onVideoEvent()除了通过OMXCodec::read()取得解码后的数据外,还必须将这些数据(mVideoBuffer)传给video renderer, 以便渲染到屏幕上去。1.要将mVideoBuffer中的数据画出来之前,必须先创建mVideoRenderer的实例。void AwesomePlayer::onVideoEvent(){ ......

2020-05-08 14:16:19 625

转载 Android多媒体开发(2)——Video buffer传输流程

AwesomePlayer如何和OMX video decoder传输buffer呢?1.OMXCodec会在开始的时候通过read()函数将未解码的data送给decoder,并要求decoder将解码后的data回传。status_t OMXCodec::read(...){ if (mInitialBufferSubmit) { mInit...

2020-05-08 14:08:13 692

转载 Android多媒体开发(1)——AwesomePlayer及Stagefright相关知识梳理

Android的多媒体框架中, stagefright其实是AwesomePlayer的代理,真正实现播放器功能的原是AwesomePlayer,Stagefright只是做了一层封装。AwesomePlayer 不管他有多神秘,说到底还是个多媒体播放器。在播放器的基本模型上,他与VCL、mplayer、ffmpeg等开源的结构是一致的。只是组织实现的方式不同。现在把播放器的基本模型总结一下,然后...

2020-05-08 14:04:44 445

转载 Android Media Framework(4): 支持格式的扩展

Android Media Framework 框架的层次:Java层:frameworks/base/media/java/android/media/MediaPlayer.javaJNI本地调用:frameworks/base/media/jni/android_media_MediaPlayer.cpplibmedia多媒体底层库:frameworks/base/media/libm...

2020-05-08 13:57:39 279

转载 Android Media Framework(3): Stagefright框架流程解读

StageFright介绍Android froyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,并没有完全抛弃opencore,主要是做了一个OMX层,仅仅是对 opencore的omx-component部分做了引用。stagefright是在MediaPlayerService这一层加入的,和opencore是并列的。S...

2020-05-08 13:52:44 808

转载 Android Media Framework(2): Video Playback流程

重点研究libstagefrightAwesomePlayer.cppMediaExtractor.cppOpenMAX在Java播放视频,我们一般会这样写:MediaPlayer mp = new MediaPlayer();mp.setDataSource(PATH_TO_FILE); ...... (1)mp.prepare(); ........................

2020-05-08 13:49:18 337

转载 MediaExtractor+MediaCodec+MediaMuxer之Java篇

1.文章介绍写这篇文章的目的主要是分享这段时间自己对MediaCodec的学习和理解,也顺便把在实际调试中踩的坑记录下,给关注该技术的同学一些参考。2.实现目标在Android设备上把本地视频或者网络视频解码后重新编码为H264(video/avc)/AAC(audio/mp4a-latm),最后合成可播放的音视频文件。3.技术核心关注该技术的同学,一般都能从网络上搜到如Android设...

2020-05-08 13:36:53 997

转载 MediaCodec之Encoder

1.介绍:MediaCodec类可用于访问Android底层的媒体编解码器,也就是,编码器/解码器组件。它是Android底层多媒体支持基本架构的一部分(通常与MediaExtractor, MediaSync, MediaMuxer, MediaCrypto, MediaDrm, Image, Surface, 以及AudioTrack一起使用);MediaCodec作为比较年轻的Androi...

2020-05-08 13:29:21 1037

转载 MediaCodec之Decoder

1.介绍:MediaCodec类可用于访问Android底层的媒体编解码器,也就是,编码器/解码器组件。它是Android底层多媒体支持基本架构的一部分(通常与MediaExtractor, MediaSync, MediaMuxer, MediaCrypto, MediaDrm, Image, Surface, 以及AudioTrack一起使用);MediaCodec作为比较年轻的Androi...

2020-05-08 13:20:25 255278

转载 Android Media Framework(1): 总纲

Android系统整体架构:我们先看一下多媒体框架在整个Android系统所处的位置从框架图可以看出Media Framework处于Libraries这一层,这层的Library不是用Java实现,一般是C/C++实现,它们通过Java的JNI方式调用。Android系统的多媒体业务:多媒体框架变动:Android froyo版本多媒体引擎做了变动,新添加了stagefright...

2020-05-08 12:23:48 345

转载 Android Studio界面简介绍

一直使用eclipse,使用Android Studio一开始有点不太习惯其构建方式,故备忘个记录以便查看。典型的一个应用工程界面如上图所示,我将界面分为5个区域做详细的讲解:区域1介绍这个区域是运行和调试相关的操作。1、编译2中显示的模块2、当前项目的模块列表3、运行2中显示的模块4、调试2中显示的模块5、测试2中显示的模块代码覆盖率6、调试...

2020-05-07 11:52:00 2222

转载 Android6.0 init.rc中创建符号链接失败问题

Android6.0直接在init.rc创建符号链接问题失败,说明Android6.0对权限控制更加严格了。看看我们一开始在init.rc中的修改:on init # See storage config details at http://source.android.com/tech/storage/ symlink /storage/self/primar...

2020-05-06 16:01:24 566 1

转载 udev与devfs文件系统

devfs(设备文件系统)是由Linux2.4内核引入的,它的出现主要使得设备驱动程序能够自主管理自己的设备文件。具体来说,devfs具有如下优点: 可以通过程序在设备初始化时在/dev目录下创建设备文件,卸载设备时将它删除。 设备驱动程序可以指定设备名、所有者和权限位,用户空间程序仍可以修改所有者和权限位。 不再需要为设备驱动程序分配主设备号以及处理次设备号,在程序中可以...

2020-05-06 15:55:36 311

转载 I/O端口和I/O内存

每个外设都是通过读写它的寄存器来控制的。通常,通过内存地址空间或I/O地址空间进行访问(计算机组成原理里面的统一编址和IO独立编址)。在硬件层面上,I/O区域与内存区域(DRAM)在概念上没有区别,它们都是通过在地址总线和控制总线上触发电信号来进行读写操作。根据处理器的不同,有些处理如X86拥有独立的外设地址空间,以区别普通的内存地址空间。针对I/O端口,会提供特殊的CPU访问指令。而有些处理器则...

2020-05-06 15:51:22 346

转载 Android 应用程序建立与WMS服务之间的通信过程

我们知道WindowManagerService服务运行在SystemServer进程中,应用程序启动Activity时,需要请求WMS为启动的Activity创建对应的窗口,同时WMS也负责修改窗口属性,因此这里就涉及到应用程序进程与WMS服务之间的跨进程交互过程。在前面我们介绍了Android中的Binder通信机制,应用程序进程正是使用Binder通信方式和SystemServer进程交互的...

2020-04-29 18:34:28 483

转载 Android 应用程序进程启动过程源码分析

在Zygote进程启动过程的源代码分析一文中介绍到,Zygote是java世界的开创者,所有的java应用进程都是通过Zygote孵化出来的。我们知道在Android应用程序框架层中,ActivityManagerService组件负责管理Android应用程序的创建,ActivityManagerService也是运行在独立的进程SystemServer中,SystemServer进程启动过程源...

2020-04-29 18:25:47 244

转载 Android应用程序窗口设计框架介绍

在Android系统中,一个Activity对应一个应用程序窗口,任何一个Activity的启动都是由AMS服务和应用程序进程相互配合来完成的。AMS服务统一调度系统中所有进程的Activity启动,而每个Activity的启动过程则由其所属进程来完成。AMS服务通过realStartActivityLocked函数来通知应用程序进程启动某个Activity:frameworks\base\se...

2020-04-29 18:11:07 306

转载 Android服务之PackageManagerService启动源码分析

了解了Android系统的启动过程的读者应该知道,Android的所有Java服务都是通过SystemServer进程启动的,并且驻留在SystemServer进程中。SystemServer进程在启动时,通过创建一个ServerThread线程来启动所有服务,本文主要介绍Android服务中PackageManagerService服务启动过程。首先介绍一些PackageManagerServi...

2020-04-29 13:47:14 330

转载 Android之rild进程启动源码分析

https://blog.csdn.net/yangwen123/article/details/8914291

2020-04-29 13:29:10 167 1

转载 Android服务注册完整过程源码分析

前面从不同片段分析了Android的Binder通信机制,本文结合前面介绍的内容,对整个Android的Binder通信过程进行一次完整的分析。分析以AudioService服务的注册过程为例。由于Android中的所有Java服务都驻留在SystemServer进程中,在SystemServer启动的时候,通过创建ServerThread线程来注册所有的Java服务,AudioService也...

2020-04-29 13:12:45 171

转载 Android服务函数远程调用源码分析

在Android服务查询完整过程源码分析中介绍了客户进程向ServiceManager进程查询服务的完整过程,ServiceManager进程根据服务名称在自身维护的服务链表中查找ServiceManager进程引用该服务在内核空间的Binder节点的Binder引用对象描述符,根据该描述符找到ServiceManager在内核空间对该服务Binder节点的Binder引用对象,在根据Binder...

2020-04-29 12:21:16 254

转载 Android Binder通信机制

Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统 IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个全面的阐述,首先通过介绍Binder通信模型和 Binde...

2020-04-29 11:57:06 279

转载 Android : Camera2/HAL3 框架分析

Android : Camera2/HAL3 框架分析一、Android O上的Treble机制:在 Android O 中,系统启动时,会启动一个 CameraProvider 服务,它是从 cameraserver 进程中分离出来,作为一个独立进程 [email protected] 用来控制 camera HAL,cameraserv...

2020-04-27 21:10:21 350

转载 Android:裁剪系统预置应用

Android的应用分布在很多目录中,如果去每个目录下修改Android.mk文件就是一个比较大的工程,同时时间长了之后也记不清改过哪些文件了,现在提供一个简便的裁剪预置应用的方法,步骤如下:修改build目录main.mkifdef FULL_BUILD # The base list of modules to build for this product is specified...

2020-04-27 20:53:15 412

转载 Android网络安全:Netfilter与iptables

https://blog.csdn.net/u013686019/article/details/51474135

2020-04-27 19:03:26 163

转载 【Android休眠】之Android休眠机制

https://blog.csdn.net/u013686019/article/details/53645646

2020-04-27 19:01:04 215

转载 【Android休眠】引申之关于系统PM的思考

https://blog.csdn.net/u013686019/article/details/54668873

2020-04-27 19:00:01 104

转载 Android网络优先级及更改

https://blog.csdn.net/u013686019/article/details/51447129

2020-04-27 18:58:55 873

转载 【Android休眠】之kernel电源管理

关于kernel的电源管理部分,有一位首席PM专家的博客写得相当好,为方便故,分享一下:Linux电源管理(1)_整体架构Linux电源管理(2)_Generic PM之基本概念和软件架构Linux电源管理(3)_Generic PM之Reboot过程Linux电源管理(4)_Power Management InterfaceLinux电源管理(5)_Hibernate和Sl...

2020-04-27 18:54:46 228

转载 安卓OTA升级文件的制作

OTA刷机包制作整个项目编译完成后再执行make otapackage生成的完整升级包会存放在out\debug\target\product[project name]\ 下具体名字根据make otapackage的install来确定生成的过程文件包在out/target/product/ardbeg/obj/PACKAGING/target_files_intermed...

2020-04-27 18:18:38 390

转载 安卓OTA升级系统解析下

在安卓OTA升级文件的制作中提到updater-script的功能。这里详细介绍脚本是如何生成的。updater-script是我们升级时所具体使用到的脚本文件,它主要用以控制升级流程的主要逻辑。具体位置位于更新包中/META-INFO/com/google/android/目录下,在我们制作升级包的时候产生。前面有个介绍。/build/tools/releasetools/目录下的模块e...

2020-04-27 18:16:55 616

转载 安卓OTA升级系统解析上

在MTK安卓环境中只需要在alps 目录执行./mk otapackage即可打包ota升级包,下面我们来分析下这个过程中。alps/mk代码片段sub chkDep{ my $module = $_[0]; my $string = $module; if (!$module) { $string = all; }# print "********...

2020-04-27 18:13:55 561

转载 android wifiNative到linux内核的通信框架

android wifiNative到linux内核的通信框架图

2020-04-27 17:43:51 128

common-log.rar

一个log框架代码,可以定义log tag, 定义log 等级, 适用于大型项目log分类打印输出,最轻量级的log系统。

2020-08-02

fastdfs100-libfastcommon-master.rar

FastDFS的重要组件代码,包含socket 连接池 , 通用高效数据结构模型, 线程池, 内存池等等, 可以适当修改用于自己的Linux项目开发。

2020-08-02

linyanx-memory-pool-master.rar

Linux 平台内存池的实现, 一个很好使用的内存池,采用SALB思想,内存采用按块分,非常适用于Linux项目的开发。

2020-08-02

libiconv1.15 裁剪到200多K的库

适合嵌入式裁剪过的libiconv 库。源代码已经经过修改可直接编译。

2018-11-24

VS 操作EXECL的例子封装成类了。

对EXECL封装的一个类,可直接使用。需要安装OFFICE不然无法找到COM组件。

2017-11-25

libusb DEMO工程

Windows 下libusb 使用方法,可基于DEMO开发USB通信程序。

2017-07-13

C++设计模式讲解

C++设计模式讲解,介绍每个常用模式思想及简单实现。对学习面向对象编程有极大的作用。

2015-07-07

空空如也

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

TA关注的人

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