随笔分类 - Android学习随笔
摘要:1.下载 FFmpeg 源码 这一步可能会花比较长的时间 2.编译 FFmpeg for Android 2.1.修改 FFmpeg 的 configure 由于FFMPEG默认编译出来的动态库文件名的版本号在.so之后(例如“libavcodec.so.5.100.1”),但是android平台不
阅读全文
摘要:AudioTrack是Android中比较偏底层的用来播放音频的接口,它主要被用来播放PCM音频数据,和MediaPlayer不同,它不涉及到文件解析和解码等复杂的流程,比较适合通过它来分析Android系统播放音频数据的过程。下面是https://developer.android.com/ref
阅读全文
摘要:阅读目录(Content) 一、编写驱动程序 二、编写代码测试驱动程序 三、编写HAL代码 四、编写Framework代码 五、编写JNI代码 六、编写App 阅读目录(Content) 一、编写驱动程序 二、编写代码测试驱动程序 三、编写HAL代码 四、编写Framework代码 五、编写JNI代
阅读全文
摘要:1.什么是RPC(远程过程调用) Binder系统的目的是实现远程过程调用(RPC),即进程A去调用进程B的某个函数,它是在进程间通信(IPC)的基础上实现的。RPC的一个应用场景如下: A进程想去打开LED,它会去调用led_open,然后调用led_ctl,但是如果A进程并没有权限去打开驱动程序
阅读全文
摘要:1. 为什么要打印函数调用堆栈? 打印调用堆栈可以直接把问题发生时的函数调用关系打出来,非常有利于理解函数调用关系。比如函数A可能被B/C/D调用,如果只看代码,B/C/D谁调用A都有可能,如果打印出调用堆栈,直接就把谁调的打出来了。不仅如此,打印函数调用堆栈还有另一个好处。在Android代码里,
阅读全文
摘要:1.什么是tombstone 当一个动态库(native 程序)开始执行时,系统会注册一些连接到 debuggerd 的 signal handlers,当系统 crash 的时候,会保存一个 tombstone 文件到/data/tombstones目录下(Logcat中也会有相应的信息),文件的
阅读全文
摘要:Compatibility Test Suite How does the CTS work? The Compatibility Test Suite (CTS) is a free, commercial-grade test suite, available for download. The
阅读全文
摘要:1.什么是CTS CTS是google制定的兼容性测试包(Compatibility Test Suite),只有通过CTS测试的设备才有可能获得Android的商标和享受Android Market的权限。其目的是用来规范Android设备开发商防止厂商对Android的改动影响其SDK API的
阅读全文
摘要:Android M平台在写APP测试使用MediaRecoder通过AudioSource.VOICE_CALL来录制通话上下行音的时候,需要权限 但是在申请权限 的时候一直失败,导致APP会crash掉 原因是这个权限是不开放给第三方应用使用的,应该用系统应用签名对APP进行签名。 解决方案: ①
阅读全文
摘要:在Android源码中添加C/CPP可执行程序一般保存在external目录中 下面是每个文件的内容 ①add.c ②add.h ③main.c ④Android.mk 下面是运行结果
阅读全文
摘要:Android.mk文件用来向编译系统描述如何编译你的源代码。在编译整个工程的情况下,系统所找到的所有的Android.mk将会先存入subdir_makefiles变量中,随后一次性一次性include进整个编译文件中。 (1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找
阅读全文
摘要:参考罗升阳《Android系统源代码情景分析》 在Android源码中,我们通常把实验性质的Android APP放在packages/experimental目录下。对于一个简单的应用程序,他的目录结构如下 Android应用程序工程一般包含有一个源代码目录src、一个资源目录res、一个配置文件
阅读全文
摘要:1.Android 模拟器使用虚拟SD卡 首先创建一个虚拟的SD卡 启动模拟器的时候指定虚拟的SD卡 2.Android模拟器打开gpu 3.编译x86 goldfish源码 4.不重启模拟器更新媒体库 Android的媒体库其实就是一个数据库文件,当系统启动完成、SD卡插拔或者接收到“Intent
阅读全文
摘要:1.AudioPolicyService基础 AudioPolicy在Android系统中主要负责Audio"策略"相关的问题。它和AudioFlinger一起组成了Android Audio系统的两个服务。一个负责管理audio的“路由”,一个负责管理audio“设备”。在Android M 版本
阅读全文