
8 Android开发
8 Android开发
隨意的風
从事10+年的技术开发,结交天下软件研发朋友,共同探讨技术、共同进步。
展开
-
Android开发之五:UI线程及Android的单线程模型原则
https://www.cnblogs.com/mengdd/p/3418780.htmlhttps://www.cnblogs.com/mengdd/p/3601294.html原创 2020-01-20 17:40:33 · 287 阅读 · 0 评论 -
Android开发之十九: NDK图形API篇
Android NDK图形API篇前言我们知道,在游戏和多媒体领域,图形和图像的处理速度和性能至关重要,在Java层处理图形、图像速度又比较慢,不能满足实际的需要,这时候我们就可以借助原生图形API来让自己的游戏和多媒体应用表现更出色。本篇重点介绍原生图形API的相关知识,并通过一些示例,让大家更好的掌握原生图形API的相关知识。原生图形API原生图形API的种类lJNI图形A...原创 2020-01-20 15:51:25 · 1208 阅读 · 0 评论 -
Java学习之五:NewDirectByteBuffer和Java.nio.ByteBuffer
android----在JNI中如何使用ByteBuffer1,ByteBuffer 定义在NIO中,数据的读写操作始终是与缓冲区相关联的(读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入缓冲区)缓冲区是定长的,基本上它只是一个列表,它的所有元素都是基本数据类型。ByteBuffer是最常用的缓冲区,它提供了读写其他数据类型的方法,且信道的读写...原创 2020-01-20 14:16:46 · 5154 阅读 · 0 评论 -
android开发之三:Activity的生命周期:onCreate()和onStart()
***onCreate()***在第一次创建活动时调用。这是您应该完成所有常规静态设置的位置:创建视图,将数据绑定到列表等。此方法还会为您提供一个包含活动先前冻结状态(如果有的话)的Bundle。总是跟着onStart()。***onStart()***当活动对用户变得可见时调用。如果活动进入前台,则跟随onResume(),如果隐藏,则执行onStop()。这些方法调...原创 2020-01-20 13:48:55 · 3509 阅读 · 0 评论 -
Android平台上PMEM的使用及Platform设备注册(二)
https://blog.youkuaiyun.com/gabbzang/article/details/20708425三、注册PMEM设备这里我们除了描述PMEM设备,还将注册一个拥有memory空间和IRQ资源的示例设备example_device。对于example_device,定义如下结构体:static struct resource example_resources[] = ...原创 2020-01-19 15:22:32 · 264 阅读 · 0 评论 -
Android平台上PMEM的使用及Platform设备注册(一)
Android中PMEM驱动程序是物理内存的驱动程序,可用于分配物理内存。PMEM在camera和video系统中频繁使用。下面,简单记录一下PMEM的使用方法。另外,由于PMEM设备做为Platform设备存在,所以我们将对Platform设备做以简单描述。一、PMEM的使用使用PMEM需要包含如下几个头文件:#include <sys/ioctl.h>#includ...原创 2020-01-19 15:19:38 · 314 阅读 · 0 评论 -
Android Pmem相关介绍
https://www.xuebuyuan.com/1559574.html原创 2020-01-19 15:08:20 · 227 阅读 · 0 评论 -
android studio 显示混乱, 本地文件正常
android studio 显示的内容错乱,xml中显示java代码!看的我一脸懵b。.gradle .idea build 删了个遍,invalidate caches and restart 一下.AndroidStudio3.4/system/cache也删光光,...原创 2020-01-11 09:37:42 · 344 阅读 · 0 评论 -
Android开发之二十一: Pmem相关介绍
原创 2020-02-26 19:06:06 · 188 阅读 · 0 评论 -
Andriod开发之二十:Android开发笔记(序)写在前面的目录
https://blog.youkuaiyun.com/aqi00/article/details/50038385知识点分类一方面写写自己走过的弯路掉进去的坑,避免以后再犯;另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平。因此博主就想,入门的东西咱就不写了,人不能老停留在入门上;其次是想拾缺补漏,写写虽然小众却又用得着的东西;另外就是想以实用为主,不求大而全,但求...原创 2020-02-26 19:02:50 · 1084 阅读 · 0 评论 -
Android开发之十八-AsyncTask基本使用
简介AsyncTask 是轻量级的异步任务类,轻松地在 UI 线程控制后台操作和后台操作所返回结果,无需使用 Thread 和 Handler 这样的组合来进行切换。实际上 AsyncTask 是为我们所设计的关于 Thread 和 Handler 的帮助类。 AsyncTask 是经过 Android 封装、简化的异步任务实现方式,内部实现也是由 Thread 和 Handler 来实现异...原创 2020-02-20 11:22:47 · 525 阅读 · 0 评论 -
Android开发之十七:集合之SparseArray、ArrayMap详解
前言作为一个Anndroid开发人员来说,我们大多数情况下时使用的Java语言,自然在一些数据的处理时,使用到的集合框架也是Java的,比如HashMap、HashSet等,但是你可否知道,Android因为自身特殊的需求,也为自己量身定制了“专属”的集合类,查阅官方文档,android.util包下,一共捕获如下几个类:SparseArray系列(SparseArray,SparseBoo...原创 2020-02-13 17:08:12 · 606 阅读 · 0 评论 -
Android开发之十六:Message、MessageQueue、Looper、Handler原理知识点源码分析
概述handler作为android消息处理的重要机制,全面回顾下其涉及的知识点。关键类整个消息处理机制中涉及到的主要类有:Message : 负责消息封装MessageQueue : 负责将消息封装为消息队列Looper : 负责从消息队列中获取消息并分发Handler : 负责消息发送及处理Message看看代码中的类注释:定义包含描述和任意数据对象的消息...原创 2020-02-13 11:48:13 · 191 阅读 · 0 评论 -
Android开发之十五:Handler、Thread、HandlerThread三者的区别- Handler 四个使用实例 及HandlerThread的使用
一、前期知识储备(1)Handler类,上官方文档,Handlerpublic class Handler.A Handler allows you to send and process Messageand Runnable objects associated with a thread's MessageQueue. Each Handler instanceis associ...原创 2020-02-13 09:41:54 · 2048 阅读 · 0 评论 -
Android开发之十四: camera(一):camera模组CMM介绍
https://blog.youkuaiyun.com/gabbzang/article/details/9457459android camera(一):camera模组CMM介绍android camera(二):摄像头工作原理、s5PV310 摄像头接口(CAMIF)android camera(三):camera V4L2 FIMCandroid camera(四):camera 驱动...原创 2020-02-11 15:43:06 · 569 阅读 · 0 评论 -
Android开发之十二:Camera成像原理介绍
1、Camera成像原理介绍Camera工作流程图Camera的成像原理可以简单概括如下:景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理->RGB图像数据,再通过IO接口传输到CPU中处理,通过DISPLAY就可以看到图像了。...原创 2020-02-11 15:32:28 · 2567 阅读 · 0 评论 -
Android开发之十一:RGB与Raw RGB有什么区别?camera 快门shutter
摄像头的数据输出格式一般分为CCIR601、CCIR656、RAW RGB等格式,此处说的RGB格式应该就是CCIR601或CCIR656格式。而RAW RGB格式与一般的RGB格式是有区别的。Sensor的感光原理 通过一个一个的感光点对光进行采样和量化,但,在Sensor中,每一个感光点只能感光RGB中的一种颜色。所以,通常所说的30万像素或130万像素等,指的是有30万...原创 2020-02-11 13:52:52 · 927 阅读 · 0 评论 -
Android开发之十:camera 概念&& camer 知识锦集
最简单的说法:快门速度影响曝光 曝光受快门速度和光圈大小的影响,通俗说法中的曝光时间跟快门速度是一样的,所以才会产生你这个疑问,但是正式的说法没有曝光时间这个说法,应该说是曝光量而不是曝光时间。 如果你一定要说曝光时间的话,就要抛开光圈的影响。你可以这样理解,当光圈相同的情况下,快门速度快则曝光时间短,快门速度慢,则曝光时间长。比如:光圈在F2.8的时候,千分之一秒的快门速度比百分之一...原创 2020-02-11 13:30:54 · 502 阅读 · 0 评论 -
Android 开发之九:Camera 基础
有效像素数码相机的像素数包括有效像素(EffectivePixels)和最大像素(MaximumPixels)。与最大像素不同的是有效像素数是指真正参与感光成像的像素值,而最高像素的数值是感光器件的真实像素,这个数据通常包含了感光器件的非成像部分,而有效像素是在镜头变焦倍率下所换算出来的值。数码图片的储存方式一般以像素(Pixel)为单位,每个象素是数码图片...原创 2020-02-11 13:18:09 · 478 阅读 · 0 评论 -
Android开发之八: Camera系统
1. Overview1.1 物理架构1.2 Android架构2. CameraService3. HAL4.Overlay5. Video for Linux1. Overview本文以Freescale IMX为例剖析camera摄像头的系统架构。1.1 物理架构硬件方面,camera系统分为主控制器和摄像头设备,功能上主要有preview...原创 2020-02-11 12:47:30 · 993 阅读 · 0 评论 -
Android开发之七:ION内存管理器(2)-- cache
ION如何实现buffer共享的思路倒是很清晰的,但是深入代码研究,发现ION是依赖于DMA Mapping的,而DMA mapping模块对我而言还是挺复杂的,看这个模块遇到的第一个问题就是cache。既然是DMA mapping,直接将申请的buffer设置为non-cacheable不就行了?这样就可以保证CPU通过DMA读写缓冲区的一致性了。为什么还有Consistent DMA mapp...原创 2020-02-11 11:30:21 · 416 阅读 · 0 评论 -
Android开发之六:SurfaceView、ANativeWindow原生绘制
SurfaceView Activity的View hierachy的树形结构,最顶层的DecorView,也就是根结点视图,在SurfaceFlinger中有对应的Layer。 对于具有SurfaceView的窗口来说,每一个SurfaceView在SurfaceFlinger服务中还对应有一个独立的Layer,用来单独描述它的绘图表面,以区别于它的宿主窗口的绘图表面。 在WM...原创 2020-02-10 18:34:14 · 4240 阅读 · 1 评论 -
Android开发之五:Ashmem匿名共享内存驱动
匿名共享内存匿名共享内存的实现是已Ashmem驱动程序为基础所构建起来的一套方案,基于linux的临时文件系统tmpfs. ashmem系统大概分成三层,如下: 最下方的是kernel层,也就是我们即将介绍的ashmem驱动程序,在启动时它会创建一个/dev/ashmem的设备文件。 而上层的cutils库就通过文件访问操作open,ioctl来访问驱...原创 2020-02-06 13:26:16 · 759 阅读 · 0 评论 -
Android开发之四:匿名共享内存(Ashmem)原理
阅读之前,不妨先思考一个问题,在Android系统中,APP端View视图的数据是如何传递SurfaceFlinger服务的呢?View绘制的数据最终是按照一帧一帧显示到屏幕的,而每一帧都会占用一定的存储空间,在APP端执行draw的时候,数据很明显是要绘制到APP的进程空间,但是视图窗口要经过SurfaceFlinger图层混排才会生成最终的帧,而SurfaceFlinger又运行在另一个独立的...原创 2020-02-06 13:22:46 · 675 阅读 · 0 评论 -
Android开发之三:java、native内存共享--ByteBuffer使用总结
ByteBuffer使用总结目录一、概述二、DirectByteBuffer的使用方式1.native创建DirectByteBuffer,java通过native映射2.java层创建buffer数组,native层获取对应的native buffer3.两种方式的共同点三、总结一、概述最近做一个项目,性能不达标,在软件实现中频繁的调用jni实现java、...原创 2020-02-06 12:24:52 · 2547 阅读 · 1 评论 -
Android开发之二:在JNI中如何使用ByteBuffer
1,ByteBuffer 定义在NIO中,数据的读写操作始终是与缓冲区相关联的(读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入缓冲区)缓冲区是定长的,基本上它只是一个列表,它的所有元素都是基本数据类型。ByteBuffer是最常用的缓冲区,它提供了读写其他数据类型的方法,且信道的读写方法只接收ByteBuffer。ByteBuffer有以下几种...原创 2020-02-06 12:20:30 · 3045 阅读 · 0 评论 -
Android开发之一:10.0 USB弹窗权限流程解析
1. 新建activity,获取UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE)2. 获取所以的USB设备HashMap<String, UsbDevice> map = usbManager.getDeviceList()3. 过滤别的USB设备,拿到自己USB的USBDe...原创 2020-02-06 12:14:25 · 1452 阅读 · 0 评论