- 博客(391)
- 资源 (7)
- 收藏
- 关注
转载 rt-thread调度锁与关闭中断深度探究
1.说明对于使用rt-thread操作系统的人来说,我提出一个问题?什么时候用到调度锁,又什么时候用到关闭中断?很多人初次学习rtt操作系统的时候都没有深入的去思考这些问题,以及关闭调度器后可以做什么事情,关闭中断后又能做什么事情?本文从解决这些问题的角度出发,从实际应用的角度去分析这些问题。2.调度锁与关闭中断在rt-thread中,保护临界区的方法除了IPC线程间通信机制,然后就是调度锁与关闭中断了。调度锁rt-thread调度锁的目的是让调度器停止工作,这时不进行线程的切换工作..
2021-12-04 19:00:05
1689
10
原创 记录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
481
转载 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
569
转载 软件架构的5种视图
逻辑架构:关注功能。不仅包括用户可见的功能,也包括一些基础模块以及辅助模块。开发架构:关注程序包,不仅包括要编写的程序,还包括可以直接使用的第三方SDK或者现成的框架、类库以及开发的系统将运行于其上的系统软件或者中间件。运行架构:关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。物理架构:关注‘目标程序及其依赖的运行库和系统软件’最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。数据架构:关注持久化数据的存储方案,不仅包括实体及其实体关
2020-12-03 14:39:24
2680
转载 利用NotificationListenerService和Android Auto自动回复微信消息
这里只讲技术和思路这里只讲技术和思路这里只讲技术和思路在之前的一片文章中描述了如何通过NotificationListenerService获取微信通知的消息,利用NotificationListenerService获取微信通知消息的头像和内容1.通过虚拟点击回复消息:1.1当通过NotificationListenerService可以获取一个PendingIntent ,这个PendingIntent封装了数据,可以直接跳转到对应发送消息的会话...
2020-07-02 17:13:13
1035
转载 利用NotificationListenerService获取微信通知消息的头像和内容
强调下:利用Android原生功能获取第三方APP通知消息是流氓且不道德的(可能沾上官司),本文只讲原理强调下:利用Android原生功能获取第三方APP通知消息是流氓且不道德的(可能沾上官司),本文只讲原理强调下:利用Android原生功能获取第三方APP通知消息是流氓且不道德的(可能沾上官司),本文只讲原理提供一篇灵感文章,写的很好推荐看看https://blog.csdn.net/Vanswells/article/details/81033280获取Android 微信通知有两条思路
2020-07-02 17:11:42
1540
转载 数据结构和算法
如下博客是作者在学习原著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
214
转载 Android多媒体开发(3)——Video Rendering
AwesomePlayer::onVideoEvent()除了通过OMXCodec::read()取得解码后的数据外,还必须将这些数据(mVideoBuffer)传给video renderer, 以便渲染到屏幕上去。1.要将mVideoBuffer中的数据画出来之前,必须先创建mVideoRenderer的实例。void AwesomePlayer::onVideoEvent(){ ......
2020-05-08 14:16:19
745
转载 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
789
转载 Android多媒体开发(1)——AwesomePlayer及Stagefright相关知识梳理
Android的多媒体框架中, stagefright其实是AwesomePlayer的代理,真正实现播放器功能的原是AwesomePlayer,Stagefright只是做了一层封装。AwesomePlayer 不管他有多神秘,说到底还是个多媒体播放器。在播放器的基本模型上,他与VCL、mplayer、ffmpeg等开源的结构是一致的。只是组织实现的方式不同。现在把播放器的基本模型总结一下,然后...
2020-05-08 14:04:44
561
转载 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
370
转载 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
943
转载 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
447
转载 MediaExtractor+MediaCodec+MediaMuxer之Java篇
1.文章介绍写这篇文章的目的主要是分享这段时间自己对MediaCodec的学习和理解,也顺便把在实际调试中踩的坑记录下,给关注该技术的同学一些参考。2.实现目标在Android设备上把本地视频或者网络视频解码后重新编码为H264(video/avc)/AAC(audio/mp4a-latm),最后合成可播放的音视频文件。3.技术核心关注该技术的同学,一般都能从网络上搜到如Android设...
2020-05-08 13:36:53
1166
转载 MediaCodec之Encoder
1.介绍:MediaCodec类可用于访问Android底层的媒体编解码器,也就是,编码器/解码器组件。它是Android底层多媒体支持基本架构的一部分(通常与MediaExtractor, MediaSync, MediaMuxer, MediaCrypto, MediaDrm, Image, Surface, 以及AudioTrack一起使用);MediaCodec作为比较年轻的Androi...
2020-05-08 13:29:21
1365
转载 MediaCodec之Decoder
1.介绍:MediaCodec类可用于访问Android底层的媒体编解码器,也就是,编码器/解码器组件。它是Android底层多媒体支持基本架构的一部分(通常与MediaExtractor, MediaSync, MediaMuxer, MediaCrypto, MediaDrm, Image, Surface, 以及AudioTrack一起使用);MediaCodec作为比较年轻的Androi...
2020-05-08 13:20:25
506239
转载 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
429
转载 Android Studio界面简介绍
一直使用eclipse,使用Android Studio一开始有点不太习惯其构建方式,故备忘个记录以便查看。典型的一个应用工程界面如上图所示,我将界面分为5个区域做详细的讲解:区域1介绍这个区域是运行和调试相关的操作。1、编译2中显示的模块2、当前项目的模块列表3、运行2中显示的模块4、调试2中显示的模块5、测试2中显示的模块代码覆盖率6、调试...
2020-05-07 11:52:00
2610
转载 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
671
1
转载 udev与devfs文件系统
devfs(设备文件系统)是由Linux2.4内核引入的,它的出现主要使得设备驱动程序能够自主管理自己的设备文件。具体来说,devfs具有如下优点: 可以通过程序在设备初始化时在/dev目录下创建设备文件,卸载设备时将它删除。 设备驱动程序可以指定设备名、所有者和权限位,用户空间程序仍可以修改所有者和权限位。 不再需要为设备驱动程序分配主设备号以及处理次设备号,在程序中可以...
2020-05-06 15:55:36
363
转载 I/O端口和I/O内存
每个外设都是通过读写它的寄存器来控制的。通常,通过内存地址空间或I/O地址空间进行访问(计算机组成原理里面的统一编址和IO独立编址)。在硬件层面上,I/O区域与内存区域(DRAM)在概念上没有区别,它们都是通过在地址总线和控制总线上触发电信号来进行读写操作。根据处理器的不同,有些处理如X86拥有独立的外设地址空间,以区别普通的内存地址空间。针对I/O端口,会提供特殊的CPU访问指令。而有些处理器则...
2020-05-06 15:51:22
414
转载 Android 应用程序建立与WMS服务之间的通信过程
我们知道WindowManagerService服务运行在SystemServer进程中,应用程序启动Activity时,需要请求WMS为启动的Activity创建对应的窗口,同时WMS也负责修改窗口属性,因此这里就涉及到应用程序进程与WMS服务之间的跨进程交互过程。在前面我们介绍了Android中的Binder通信机制,应用程序进程正是使用Binder通信方式和SystemServer进程交互的...
2020-04-29 18:34:28
558
1
转载 Android 应用程序进程启动过程源码分析
在Zygote进程启动过程的源代码分析一文中介绍到,Zygote是java世界的开创者,所有的java应用进程都是通过Zygote孵化出来的。我们知道在Android应用程序框架层中,ActivityManagerService组件负责管理Android应用程序的创建,ActivityManagerService也是运行在独立的进程SystemServer中,SystemServer进程启动过程源...
2020-04-29 18:25:47
294
转载 Android应用程序窗口设计框架介绍
在Android系统中,一个Activity对应一个应用程序窗口,任何一个Activity的启动都是由AMS服务和应用程序进程相互配合来完成的。AMS服务统一调度系统中所有进程的Activity启动,而每个Activity的启动过程则由其所属进程来完成。AMS服务通过realStartActivityLocked函数来通知应用程序进程启动某个Activity:frameworks\base\se...
2020-04-29 18:11:07
379
转载 Android服务之PackageManagerService启动源码分析
了解了Android系统的启动过程的读者应该知道,Android的所有Java服务都是通过SystemServer进程启动的,并且驻留在SystemServer进程中。SystemServer进程在启动时,通过创建一个ServerThread线程来启动所有服务,本文主要介绍Android服务中PackageManagerService服务启动过程。首先介绍一些PackageManagerServi...
2020-04-29 13:47:14
401
转载 Android之rild进程启动源码分析
https://blog.csdn.net/yangwen123/article/details/8914291
2020-04-29 13:29:10
207
1
转载 Android服务注册完整过程源码分析
前面从不同片段分析了Android的Binder通信机制,本文结合前面介绍的内容,对整个Android的Binder通信过程进行一次完整的分析。分析以AudioService服务的注册过程为例。由于Android中的所有Java服务都驻留在SystemServer进程中,在SystemServer启动的时候,通过创建ServerThread线程来注册所有的Java服务,AudioService也...
2020-04-29 13:12:45
217
转载 Android服务函数远程调用源码分析
在Android服务查询完整过程源码分析中介绍了客户进程向ServiceManager进程查询服务的完整过程,ServiceManager进程根据服务名称在自身维护的服务链表中查找ServiceManager进程引用该服务在内核空间的Binder节点的Binder引用对象描述符,根据该描述符找到ServiceManager在内核空间对该服务Binder节点的Binder引用对象,在根据Binder...
2020-04-29 12:21:16
324
转载 Android Binder通信机制
Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统 IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个全面的阐述,首先通过介绍Binder通信模型和 Binde...
2020-04-29 11:57:06
330
转载 Android : Camera2/HAL3 框架分析
Android : Camera2/HAL3 框架分析一、Android O上的Treble机制:在 Android O 中,系统启动时,会启动一个 CameraProvider 服务,它是从 cameraserver 进程中分离出来,作为一个独立进程 android.hardware.camera.provider@2.4-service 用来控制 camera HAL,cameraserv...
2020-04-27 21:10:21
473
转载 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
520
转载 Android网络安全:Netfilter与iptables
https://blog.csdn.net/u013686019/article/details/51474135
2020-04-27 19:03:26
207
转载 【Android休眠】之Android休眠机制
https://blog.csdn.net/u013686019/article/details/53645646
2020-04-27 19:01:04
278
转载 【Android休眠】引申之关于系统PM的思考
https://blog.csdn.net/u013686019/article/details/54668873
2020-04-27 19:00:01
135
转载 Android网络优先级及更改
https://blog.csdn.net/u013686019/article/details/51447129
2020-04-27 18:58:55
1138
转载 【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
272
转载 安卓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
480
转载 安卓OTA升级系统解析下
在安卓OTA升级文件的制作中提到updater-script的功能。这里详细介绍脚本是如何生成的。updater-script是我们升级时所具体使用到的脚本文件,它主要用以控制升级流程的主要逻辑。具体位置位于更新包中/META-INFO/com/google/android/目录下,在我们制作升级包的时候产生。前面有个介绍。/build/tools/releasetools/目录下的模块e...
2020-04-27 18:16:55
685
转载 安卓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
647
fastdfs100-libfastcommon-master.rar
2020-08-02
linyanx-memory-pool-master.rar
2020-08-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人