自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Android 9 HAL开发添加HIDL实现过程

本文将介绍如何在Android P OS上添加HIDL详细实现过程,简单增加seLinux策略使得可以在system_service调用测试,并用模拟器emulator验证。完善了一些参考原文的错误,避免后续的读者少走弯路。经过相关的实现,读者可以清晰的了解并实践底层hal到最上层APP的调用。调用过程为 APP->TestManager->TestService->ITest.hal————————————————文章目录实现过程一 、hardware部分1.1 编写 .hal1

2022-03-03 15:05:32 1288 3

原创 Google-Clean 框架理解

Clean Architecture一、Why Architecture 是重要的所有架构都有一个共同的目标-管理应用程序的复杂性。在较小的项目中,您可能不必担心它,但是在较大的项目中,它变成了救生员。 Clean Architecture 如何解决这个问题?What先上一个图:简单的说明一下这个图:Enterprise Business Rules:业务对象Application...

2020-03-10 23:19:37 762

原创 Android 系统启动

1、init进程启动init 进程是Android系统的第一个进程,很多重要职责,例如创建Zygote和属性服务等。 init位于路劲system、core/init.1.1引入init进程1.启动电源以及系统启动2.引导程序Bootloader3.linux内核启动4.init进程启动1.2引入init进程在main函数中system/core/init/init.cppint...

2019-12-14 17:44:30 233

原创 Android系统架构

最近为了更深入的学习,由于遇到一本不错的书,所以开始写相关的读书笔记。同时开始练习相关的Markdwon写法。1Android 系统机构1. 应用层2. 应用框架层(Java Framework)提供的一些常用的API名称功能描述Activity Manager(活动管理器)管理各个应用程序生命周期以及通常的导航回退功能Location Manager...

2019-12-10 22:00:34 259

原创 android 8.0.0-r1 源码编译遇到的问题build/core/main.mk:21: recipe for target 'run_soong_ui' failed 解决

好处:使用studio查看源码的时候,如果不生成.ipr .iml文件,查看的Java文件是无法索引到其他的文件的,需要一个一个的搜索,很不方便,而.ipr .iml文件就可以解决这部分问题,而且它还可以控制你需要查看源码的内容,比如你不需要查看cpp库,你就可以在.ipr文件中去除对应的文件夹,使你的studio可以更快的打开。第一步:进入AOSP的根目录,执行命令:source bu...

2019-06-03 23:10:41 6850 2

原创 GreenDao 一对多ToMany使用多表关联查询

最近在做项目的时候遇到了一对多的结构数据存储问题。由于前面的是使用的greendao框架,所以就研究了一下这方面的资料。但是网上的都是官网的一些资料。下面我就简单的介绍一下如何使用。由于是demo很简单所以也不放具体的项目了。第一步建立第一个学生的类为Student。说明一下,这里必须要有主键,如果不是自增长的,那么在创建对象的时候,就需要赋值。 重点说明一下这个TId,这记录那个外键对应的...

2019-05-19 11:24:47 3171

转载 Android 文件存储目录获取

(一)获取总根File[] fileList=File.listRoots();//返回fileList.length为1//fileList.getAbsolutePath()为"/"//这就是系统的总根(二)打开总根目录File file=new File("/");File[] fileList=file.listFiles();//获取的目录中除了"/sdcard"和"...

2019-05-13 20:48:08 1821

原创 Android 绘制优化总结1

Android性能优化分为很多种,比较常用的有绘制优化、内存优化、耗电优化和稳定性优化等,这个系列我们就来学习性能优化中的绘制优化。1.绘制原理Android绘制View有三个主要的步骤,分别是measure、layout和draw。measure、layout和draw方法主要是运行在系统的应用框架层,而真正将数据渲染到屏幕上的则是系统Nativie层的SurfaceFlinger服务来...

2019-05-07 23:21:05 182

原创 android通讯录搜索(匹配拼音,字母,索引位置标记颜色) 水平滑动,底部索引

这个最近在做一个相关的通讯录索引显示,网上大都是手机竖屏的显示但是对于平板的横屏显示的基本上没有。但是原理基本上是一直的,就是自定义View一个索引控件,这里的改编自网上的一个手机通讯录索引项目。本身这里的demo也是改编于它的项目。该demo实现的相关相关功能,水平布局显示相关联系人头像和名字。添加每个项目的首字母显示。点击下方索引跳转到对应的联系人部分。下方索引可以随滑动显示并变更布局。由...

2019-05-04 23:55:29 937

原创 Java IO 流的总结

目录流的概念和作用IO流的分类字符流和字节流输入流和输出流1)输入流2)输出流3)特性节点流处理流转换流Java IO流对象1.输入字节流InputStream2.输出字节流OutputStream3.字符输入流Reader4.字符输出流Writer5.字节流的输入与输出的对应6.字符流的输入与输出的对应7.字节...

2019-04-24 00:07:49 171

转载 Android 音视频开发(7): 音视频录制流程总结

在前面我们学习和使用了AudioRecord、AudioTrack、Camera、MediaExtractor、MediaMuxer API、MediaCodec。 学习和使用了上述的API之后,相信对Android系统的音视频处理有一定的经验和心得了。本文及后面的几篇文章做的事情就是将这些知识串联起来,做一些稍微复杂的事情。一、流程分析1.1 需求说明我们需要做的事情就是:串联整个...

2019-03-12 22:53:57 793

转载 Android 音视频开发(6): MediaCodec API 详解

1. MediaCodec工作原理MediaCodec类Android提供的用于访问低层多媒体编/解码器接口,它是Android低层多媒体架构的一部分,通常与MediaExtractor、MediaMuxer、AudioTrack结合使用,能够编解码诸如H.264、H.265、AAC、3gp等常见的音视频格式。广义而言,MediaCodec的工作原理就是处理输入数据以产生输出数据。具体来说,Me...

2019-03-12 22:44:38 401

转载 Android 音视频开发(5):使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件

一个音视频文件是由音频和视频组成的,我们可以通过MediaExtractor、MediaMuxer把音频或视频给单独抽取出来,抽取出来的音频和视频能单独播放;一、MediaExtractor API介绍MediaExtractor的作用是把音频和视频的数据进行分离。主要API介绍:setDataSource(String path):即可以设置本地文件又可以设置网络文件 get...

2019-03-12 22:30:46 273

转载 Android 音视频开发(4):使用 Camera API 采集视频数据

本文主要将的是:使用 Camera API 采集视频数据并保存到文件,分别使用 SurfaceView、TextureView 来预览 Camera 数据,取到 NV21 的数据回调。注: 需要权限:<uses-permission android:name="android.permission.CAMERA" />一、预览 Camera 数据做过Android开发...

2019-03-10 21:08:11 118

转载 Android 音视频开发(3):使用 AudioTrack 播放PCM音频

一、AudioTrack 基本使用AudioTrack 类可以完成Android平台上音频数据的输出任务。AudioTrack有两种数据加载模式(MODE_STREAM和MODE_STATIC),对应的是数据加载模式和音频流类型,对应着两种完全不同的使用场景。MODE_STREAM:在这种模式下,通过write一次次把音频数据写到AudioTrack中。这和平时通过write系统调用往文...

2019-03-10 20:59:39 316

原创 android studio apply plugin: 'com.jakewharton.butterknife' 报错

Error:Unable to find method 'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'.Possible causes for this unexpected error include:<ul><li>Gradle's dependency cache may...

2019-03-08 18:33:14 2735

转载 Android 音视频开发(2):使用 AudioRecord 采集音频PCM并保存到文件

版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7457321.html一、AudioRecord API详解AudioRecord是Android系统提供的用于实现录音的功能类。要想了解这个类的具体的说明和用法,我们可以去看一下官方的文档:   AndioRecord类的主要功能是让各种JAVA应用能够管理音频资源,以便它们通过此类...

2019-03-08 11:01:14 242

转载 Android音视频学习(1): 通过三种方式绘制图片

主要的参考文章出处:http://www.cnblogs.com/renhui/p/7456956.html今天对应的要学习的内容是:在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View。1.ImageView 绘制图片Bitmap bitmap = BitmapFactory.decodeFile(En...

2019-03-07 23:59:26 164

转载 git常用命令

Git常用操作命令收集:1) 远程仓库相关命令检出仓库:$gitclonegit://github.com/jquery/jquery.git查看远程仓库:$gitremote -v添加远程仓库:$gitremote add [name] [url]删除远程仓库:$gitremote rm [name]修改远程仓库:$gitremote set-url...

2019-03-07 17:21:54 80

原创 Android 面试之java 篇

Java方面1、如何理解Java的多态?其中,重载和重写有什么区别?多态是一个行为具有多个不同表现形式或形态的能力,多态是同一个接口,使用不同的实例执行不同的操作,多态就是程序运行期间才能确定,一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法。多态存在的三个必要条件:集成,重写,父类引用指向子类的引用。重写(Override)和重载(Over...

2019-02-28 14:13:20 230

原创 Android数据库开发简单封装回顾

     最近项目的部分要用到做数据库方面的开发,虽然功能要求很简单,但是由于要在系统内编译,所以要求最好采用自身的数据库操作。由于用惯了第三方的框架。这里做个记录,算是捡起来以前刚学的数据库那部分吧。      为了验证就先写了一个数据库的demo。需求1:基本的增、删、查。更新 这里的话先放着  2:支持大批量的存储  第一步继承SQLiteOpenHelper类BtDBHelpe...

2019-02-25 15:26:15 712

原创 android 经典传统蓝牙开发 (附示例源码)

        最近在开发蓝牙,由于是使用的模块开发,但是andriod的系统的经典蓝牙也需要熟悉和知道。在这个背景下,参考了网络上的一些资料,完善了demo,方便了后来者能初步运用相关的蓝牙。站在巨人的肩旁上,才能走的更远。一、整体思路和对应相关方法1、获得BluetoothAdapter:BluetoothAdapter.getDefaultAdapter();2、打开蓝牙:询问用...

2019-01-24 15:52:16 14070 8

转载 这可能是最好的RxJava 2.x 教程(完结版)

这可能是最好的 RxJava 2.x 入门教程系列专栏文章链接:这可能是最好的RxJava 2.x 入门教程(一)这可能是最好的RxJava 2.x 入门教程(二)这可能是最好的RxJava 2.x 入门教程(三)这可能是最好的RxJava 2.x 入门教程(四)这可能是最好的RxJava 2.x 入门教程(五)GitHub 代码同步更新:https://github.com/nanchen2...

2019-01-09 11:09:41 110

原创 Android adb wifi无线调试 USB和无线串口设置连接 无线adb

在开发的过程中只提供了一个USB接口,但是USB需要被其他设备占用,这个时候如果要调试,就需要使用无线adb调试。通过串口设置链接。串口模式下: 串口输入 setprop service.adb.tcp.port 5555 && stop adbd && start adbd && netcfg 然后adb connect  ipset...

2018-12-06 15:31:07 1647 1

原创 SurfaceView和MediaCodec搭配使用退到后台黑屏的问题(应用切换等情况)

前几天遇到了一个有关SurfaceView和MediaCodec搭配使用,退到后台黑屏的问题(应用切换等情况)。这里我分享一下个人最后的解决方案,大家如果用到可以参考。这个问题要么释放或者不释放。我采取的策略是不释放,更换显示的控件。1、这里的显示控件 SurfaceView更换成TextureView 。 原因就是TextureView 可以控制后面的显示view不销毁。下面就是代码...

2018-10-29 14:15:34 5799 2

原创 上一个Activity onDestroy()调用在新的activity onCreate()之后完美解决方案

用Activity的时候,会发现如下问题:  有时候会发现Acitivity的onDestroy方法回调比较缓慢(可以达到好几秒钟之后才调用),即使之前使用finish方式关闭Activity也一样onDestroy回调慢带来什么问题呢?  有可能再次打开Activity的时候,都走完了onCreate,onResume之后上一次的onDestroy方法才被调用,想想如果在onResu...

2018-09-04 18:27:56 1532

原创 在APP中语言监听变化fragment中跟随语言变化

监听语言变化第一步:添加权限<!-- 语言改变权限--><uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>但是在4.2之后,需要同时设置layoutDirection,即android:configChanges="locale|layoutDirection"...

2018-08-03 15:26:10 1324

原创 Android Studio 中如何将kotlin文件转换成Java

其实就是互转,下面用Android studio 示范Kotlin 转换Java文件Tools>Kotlin>Show Kotlin BytecodeDecompileJava转换kotlin文件(需要studio3.0)或者安装了kotlin插件。选择页面的要转的文件第一种   Ctrl+Shift+Alt+K第二种    Code - C

2018-01-17 09:51:47 48705 4

原创 android 3.0 升级之后 SVG vector报错 以及解决办法

刚升级万Android studio 3  编译之后得到报错代码:Error:Execution failed for task ':app:mergeDebugResources'.> There were multiple failures while executing work items   > A failure occurred while executing com.a

2017-11-14 15:56:16 1005

转载 Android Studio中Git的配置及协同开发

Android Studio中Git的配置及协同开发 常用的GitHub git

2017-09-20 14:15:33 184

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除