![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 78
chyQino
这个作者很懒,什么都没留下…
展开
-
Cmake 编译生成多个库模板
因 Android Studio 项目需要使用 Android source code 的库。 使用 CMake改写 Android.mk 构建编译多个 so 的工程。CMakeLists.txt 可编译多个库# 使用如下配置即可set(SRC_LIST ${PROJECT_SOURCE_DIR}/test.c )add_library(${TAG} SHARED # 编译库的类型 SHARED STATIC ${SRC_LIST2} )target_link_原创 2020-06-10 17:31:36 · 1668 阅读 · 0 评论 -
Camera API1 相机参数设置流程二 hardware层
HAL 层Android P 中 相机 HAL 代码目录:Android Camera parametershardware/interfaces/camera/common/1.0/default/CameraParameters.cppMTK Camera parametersvendor/mediatek/proprietary/hardware/mtkcam/utils/...原创 2020-04-22 12:06:05 · 974 阅读 · 1 评论 -
Camera API1 相机参数设置流程一 framework层
Camera API1 的framework 是基于 API2 新框架做的兼容。Camera 参数的传输从 APK -> binder -> CameraServer -> halbinder -> camerahalserver -> kernel -> driver -> cameraDevicePackage 层APK发送相机参数...原创 2020-04-22 10:33:52 · 1025 阅读 · 0 评论 -
Android P camera metadata 分析一
Android Camera 1 使用Parameters 保存相机的状态, APK下发的命令等信息。frameworks/av/services/camera/libcameraservice/api1/client2/Parameters.cppAndroid camera2 很重要的改进是采用session 方式控制相机。Camera 2 使用 camera metadata...原创 2020-01-13 14:04:19 · 1597 阅读 · 0 评论 -
Android P 分析 HAL3 图片信息 exif
jpeg Exif file format Marker APP1 简介jpeg Exif file format Marker APP1 分析Android P 分析 HAL3 JpegNode 生成图片流程我的设备 MTK cpu , Android P在相册中查看手机拍摄的照片详情, 图片的相关信息: 制造商、日期、曝光时间、焦距、光圈值、GPS等信息。那么拍摄照...原创 2019-12-14 15:56:58 · 646 阅读 · 0 评论 -
Android P 分析 HAL3 JpegNode 生成图片流程
主要文件:vendor\mediatek\proprietary\hardware\mtkcam3\pipeline\hwnode\JpegNode.cppJpegNode.cpp 部分方法:分析 JpegNode 中拍照流程JpegNode.cpp 中实现了JpegNodeImp 类的声明和定义。创建两个线程:生成图片的线程boolJpegNodeI...原创 2019-12-03 16:38:56 · 746 阅读 · 0 评论 -
Android P 分析 CameraService 是如何打开相机的
Android 相机有两套API,分别是API1 和 API2现在主流是 API2:Android camera API2 类简介JAVA 和 Native 层交互的代码:frameworks\base\core\jniframeworks\av\camera frameworks\av\camera\aidl AIDL是一个缩写,全称是Android Inte...原创 2019-11-01 15:59:32 · 1135 阅读 · 0 评论 -
android 修改第三方库访问权限
准备 adb 调试工具, 手机root权限。如: libOpenCL.so第一步: 查询对应的库是否存在注意:对应的库存在,才可以执行第二步adb root # 获取 root 权限 adb remount # 重新挂着文件系统 adb shell # 登入手机调试模式 ls /vendor/lib/ | gre...原创 2019-06-06 09:52:25 · 5020 阅读 · 1 评论 -
Android 使用 addr2line 查看堆栈信息
Android 源码为了区分不同的厂商 vendor 引入了 HAL 。 我们在读hardware 层静态代码时,很难捋清楚从framework 层到 hardware 层的代码执行流程。通过打印堆栈信息,能帮助我们快速定位代码执行流程。Android CPP 打印堆栈信息Android.mk 中添加LOCAL_C_INCLUDES += $(TOP)/fram...原创 2019-06-04 12:06:04 · 1519 阅读 · 0 评论 -
Android camera2 API 获取相机的 YUV 元数据预览
参考资料:Android Camera 一 源码路径android camera2 拿到的yuv420数据到底是什么样的?Camera2 YUV420_888android-Camera2Basic源码逻辑流程解析Android Camera2 相机预览、获取数据Android Camera2采集摄像头原始数据并手动预览googlesamples/android-Camer...原创 2019-06-22 11:28:04 · 5193 阅读 · 1 评论 -
Android NDK cpp 使用 OpenGL ES 渲染预览 YUV
参考网址:OpenGL 下的专业名词解析OpenGL渲染YUV数据Android native层的opengltest程序学习例子由于项目需要把 Camera HAL 层的部分算法移植到 APK 的 native 用 OpenGL ES 增加特效和渲染预览。需要两个步骤:从 APK 传输数据到 native 层: Android camera2 API 获取相机的 ...原创 2019-06-26 20:15:51 · 2207 阅读 · 0 评论 -
Android.mk error: unused parameter 处理方法
在 Android O之后的版本中, 源码编译规则很严格,默认使用-Wall -Werror 字段。-Wall:编译阶段显示所有警告。 -Werror:将所有的警告当成错误进行处理,使出现警告时就停止编译。 error: unused parameter 'xxx' [-Werror,-Wunused-parameter] 等错误demo 的 Android.mk 中没有 ...原创 2019-07-04 15:43:42 · 9632 阅读 · 0 评论 -
Android Studio 中 Cmake 链接 32/64 库
在 android studio 工程的 CmakeLists.txt 中添加如下字段: 添加链接库的路径set(LINK_PATH ${GLES2_INCLUDE_DIR} ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/jniLibs/${ANDROID_ABI} # arm64-v8a arm...原创 2019-06-29 16:00:07 · 1105 阅读 · 3 评论 -
ubuntu16 编译 Android 版的 libjpeg-turbo
参考:https://www.jianshu.com/p/20902ca448ae编译环境 ubuntu16ndk-bundle版本:19.2下载源码下载并解压源码https://github.com/libjpeg-turbo/libjpeg-turbohttps://sourceforge.net/projects/libjpeg-turbo/files/...原创 2019-07-06 17:22:11 · 366 阅读 · 0 评论 -
Android camera API2 类简介
Camera 中主要的API2类CameraManager类 : frameworks\base\core\java\android\hardware\camera2\CameraManager.java摄像头管理类,用于检测、打开系统摄像头,通过 getCameraCharacteristics(cameraId) 可以获取摄像头特征。CameraCharacteristics...原创 2019-08-21 20:04:45 · 930 阅读 · 0 评论 -
Android P 相机拍照音程序流程 二
Android P 相机拍照音程序流程 一Android P 相机拍照音程序流程 二上一章节中静态分析了相机拍照音流程,本章节中在 CameraService 中添加堆栈信息,动态分析拍照音的流程。堆栈信息参考:Android 使用 addr2line 查看堆栈信息文件列表:frameworks\av\services\camera\libcameraservice\api1...原创 2019-08-07 12:12:32 · 410 阅读 · 0 评论 -
Android P 相机拍照音程序流程 一
Android P 相机拍照音程序流程 一Android P 相机拍照音程序流程 二本章节中静态分析了推测相机拍照音流程,下一章节中在 CameraService 中添加堆栈信息,动态分析拍照音的流程。文件列表:frameworks\base\core\java\android\hardware\Camera.java frameworks\base\core\jni\andro...原创 2019-08-08 19:11:18 · 508 阅读 · 0 评论 -
AndroidO Treble架构下的变化(转载)
转载:https://blog.csdn.net/yangwen123/article/details/79836109AndroidO引入Treble架构后,有那些变化呢?1. 增加了多个服务管家,AndroidO之前版本有且只有一个servicemanager,现在增加到3个,他们分管不同的服务。2.增加了binder通信库,这是为了适配binder域的扩展。3.增...转载 2019-05-28 15:15:51 · 260 阅读 · 0 评论 -
Treble 框架下的 Android Camera HAL3 一
frameworks/av/services/camera/libcameraservice/CameraService.cppframeworks/av/services/camera/libcameraservice/api2/CameraDeviceClient.cppframeworks/av/services/camera/libcameraservice/common/Came...原创 2019-05-28 17:57:01 · 766 阅读 · 0 评论 -
Camera HAL3学习
转自:Camera HAL3学习Android Camera SystemAndroid Camera硬件抽象层(HAL,Hardware Abstraction Layer)主要用于把底层camera drive与硬件和位于android.hardware中的framework APIs连接起来。Camera子系统主要包含了camera pipelinecomponents的各种实...转载 2019-05-23 16:22:29 · 826 阅读 · 0 评论 -
BootAnimation 开机动画
Android7 源码目录:frameworks/base/cmds/bootanimation/bootanimation 源码分析:一. 从 bootanimation_main.cpp 开始创建 bootanimation 线程int main(){ setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_DISPLAY...原创 2019-02-12 14:45:26 · 740 阅读 · 0 评论 -
Android Camera 一 源码路径
Android Camera 一 源码路径Android Camera 二 JNI JAVA和C/CPP图像数据传输流程分析Android Camera 三 CameraService 和 Client 链接到 HALAndroid Camera 四 Camera HAL 分析Android Camera 五 Camera HAL v1Linux v4l2 一 应用层...原创 2019-02-27 19:40:31 · 3222 阅读 · 1 评论 -
Android Camera 二 JNI JAVA和C/CPP图像数据传输流程分析
Android Camera 一 源码路径Android Camera 二 JNI JAVA和C/CPP图像数据传输流程分析Android Camera 三 CameraService 和 Client 链接到 HALAndroid Camera 四 Camera HAL 分析Android Camera 五 Camera HAL v1Linux v4l2 一 应用层Lin...原创 2019-03-05 16:42:00 · 3851 阅读 · 3 评论 -
Android 音频 alsa 拾音例子
Android4 之后使用的是 tinyasla源码路径:external/tinyalsa/拾音demo:tinycap.c放音demo:tinyplay.c可在 源码中执行mmm external/tinyalsa/编译后的执行文件在目录:out/target/product/msm8953_64/system/bin/使用 tinycap tin...原创 2019-02-25 19:32:42 · 748 阅读 · 0 评论 -
Android Camera 三 CameraService 和 Client 链接到 HAL
Android Camera 一 源码路径Android Camera 二 JNI JAVA和C/CPP图像数据传输流程分析Android Camera 三 CameraService 和 Client 链接到 HALAndroid Camera 四 Camera HAL 分析Android Camera 五 Camera HAL v1Linux v4l2 一 应用层Lin...原创 2019-03-22 02:36:31 · 3206 阅读 · 0 评论 -
Android Camera 四 Camera HAL 分析
Android Camera 一 源码路径Android Camera 二 JNI JAVA和C/CPP图像数据传输流程分析Android Camera 三 CameraService 和 Client 链接到 HALAndroid Camera 四 Camera HAL 分析Android Camera 五 Camera HAL v1Linux v4l2 一 应用层Lin...原创 2019-03-27 19:10:54 · 5130 阅读 · 0 评论 -
Android audio 三 AudioRecord 分析下
Android audio 一 源码路径Android audio 二 AudioRecord 分析上Android audio 三 AudioRecord 分析下Android audio 四 AudioTrack 分析上Android audio 五 AudioTrack 分析下Android audio 六 AudioRecord AudiTrack 拾音放音例子fr...原创 2019-04-21 17:27:39 · 1708 阅读 · 0 评论 -
Android audio 一 源码路径
Android audio 一 源码路径Android audio 二 AudioRecord 分析上Android audio 三 AudioRecord 分析下Android audio 四 AudioTrack 分析上Android audio 五 AudioTrack 分析下Android audio 六 AudioRecord AudiTrack 拾音放音例子an...原创 2019-04-20 10:46:21 · 1519 阅读 · 0 评论 -
Android binder 实例
参考:深入理解Binder下面给出一个demo实例demo 下载链接打印信息头文件cur_log.h#ifndef CUR_LOG_H#define CUR_LOG_H#include <android/log.h>#include <string.h>#include <stdio.h>#include <...原创 2019-04-27 08:57:41 · 834 阅读 · 0 评论 -
Android Camera 五 Camera HAL v1
Android Camera 一 源码路径Android Camera 二 JNI JAVA和C/CPP图像数据传输流程分析Android Camera 三 CameraService 和 Client 链接到 HALAndroid Camera 四 Camera HAL 分析Android Camera 五 Camera HAL v1Linux v4l2 一 应用层Lin...原创 2019-04-24 20:01:39 · 2378 阅读 · 0 评论 -
Android audio 二 AudioRecord 分析上
Android audio 一 源码路径Android audio 二 AudioRecord 分析上Android audio 三 AudioRecord 分析下Android audio 四 AudioTrack 分析上Android audio 五 AudioTrack 分析下Android audio 六 AudioRecord AudiTrack 拾音放音例子An...原创 2019-04-21 11:27:19 · 1786 阅读 · 0 评论 -
Android audio 四 AudioTrack 分析上
Android audio 一 源码路径Android audio 二 AudioRecord 分析上Android audio 三 AudioRecord 分析下Android audio 四 AudioTrack 分析上Android audio 五 AudioTrack 分析下Android audio 六 AudioRecord AudiTrack 拾音放音例子An...原创 2019-05-13 11:18:21 · 764 阅读 · 0 评论 -
Android JNI 中 cpp 线程中调用 java 方法
Linux 下 JNI 实现 Java 调用 c的例子c/cpp 调用 Java 方法的重点:jclass 是由 jobject public 继承而来的子类,所以它当然是一个 jobject,需要创建一个 global reference 以便日后使用。 jmethodID/jfieldID 与 jobject 没有继承关系,它不是一个 jobject,只是个整数,所以不存在被...原创 2019-04-30 10:43:51 · 822 阅读 · 0 评论 -
Android usb 麦克风热插拔
/* USB管理 */frameworks/base/services/usb/java/com/android/server/usb/UsbSettingsManager.java在 Android 系统中是用 广播的方式来通知系统, USB 麦克风的热插拔。Linux 内核的设备热插拔: Linux 采用一种特殊类的的文件描述符(套结字)专门用于Linux内核跟用户空间...原创 2019-05-11 15:21:27 · 2594 阅读 · 3 评论 -
Android audio 五 AudioTrack 分析下
Android audio 一 源码路径Android audio 二 AudioRecord 分析上Android audio 三 AudioRecord 分析下Android audio 四 AudioTrack 分析上Android audio 五 AudioTrack 分析下Android audio 六 AudioRecord AudiTrack 拾音放音例子该小...原创 2019-05-13 14:36:38 · 1148 阅读 · 0 评论 -
Android audio 六 AudioRecord AudiTrack 拾音放音例子
Android audio 一 源码路径Android audio 二 AudioRecord 分析上Android audio 三 AudioRecord 分析下Android audio 四 AudioTrack 分析上Android audio 五 AudioTrack 分析下Android audio 六 AudioRecord AudiTrack 拾音放音例子...原创 2019-05-13 15:39:22 · 1064 阅读 · 0 评论 -
ndk-bundle Android.mk 编译库和应用程序
参考 libusb-master 源码中的Android.mk ,构建一个通用的编译工程。该方法无需启动Android studio ,用 ndk-bundle 命令编译库或应用程序。第一步: 添加ndk到系统环境变量第二步: 修改 jni 目录中的Android.mk Application.mk src.mk ,编译自己的工程demo:jni/And...原创 2019-01-23 11:15:38 · 1949 阅读 · 0 评论