随笔分类 -  Android学习随笔

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

点击右上角即可分享
微信分享提示