自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘忠俊的博客

跟随牛人的脚步,努力让自己成为牛人。

  • 博客(36)
  • 收藏
  • 关注

原创 Android (系统+自定义)短视频录制(含暂停继续录制功能) 总结

前言 在Android开发中自然少不了对视频录制的需求,然而视频录制虽然有系统提供给我们能够直接使用的API,但是我们往往在完成需求的过程中需要自定义实现短视频录制。网上虽然也有不少资料,但是总是零零碎碎的,因此自己收集了多方面的资料自己写了一个demo来理解和学习短视频录制,记录在此同时也希望能够给大家带来一些参考和启发。一、调用系统相机的视频录制首先我们来了解Andorid系统为我们提供的

2017-04-06 18:21:02 24770 41

原创 Android使用OpengGL Es2.0技术(GLSurfaceView含缩放功能)yuv视频流展示总结

因为项目需求的更改,不得不将以前用SurfaceView的监控视频显示更改为Openg GL ES2.0技术实现,通过使用GLSurfaceView来展示监控视频流的显示。首先在这里感谢 @李狗蛋52635 通过他提供的资料让我成功的完成了这一项技术,这里给出他写的Android上使用OpenGLES2.0显示YUV数据 文章链接 http://blog.csdn.net/ueryueryu

2016-08-07 16:38:31 8182 11

原创 Android BLE(低功耗蓝牙)技术总结

Android 低功耗蓝牙(BLE)技术分享文章目录Android 低功耗蓝牙(BLE)技术分享前言一、蓝牙介绍1.什么是蓝牙?2.蓝牙版本介绍二、低功耗蓝牙(BLE)1.BLE介绍2.经典蓝牙(Classic Bluetooth)与低功耗蓝牙(BLE)的区别3.低功耗蓝牙(BLE)基本概念讲解三、Android BLE API 简介1.Android 蓝牙开发示例第一步:声明所需要的权限第二步:连接蓝牙前的初始化工作第三步:扫描蓝牙设备第四步:连接蓝牙设备第五步:发现服务最后一步:断开连接蓝牙操作的注意

2021-04-02 10:59:44 1983

原创 深入理解 Java内存管理机制之垃圾回收机制与Java垃圾回收器

概述 我们都知道Java的内存管理机制非常的“自动化”,可以让我们Java工程师可以免去内存管理的苦恼,但我们学习GC和内存分配也是有意义的:当需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,只有了解了其原理,我们才能更好的监控与调节这些问题。说起垃圾回收(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物。这其...

2019-09-08 22:49:45 410

原创 Android Camer2与Camera1 自定义相机拍照封装实例讲解

我们在Android开发中肯定都免不了要使用到相机拍照功能,一般正常情况下使用Android自带相机就能满足很大一部分需求了。这篇文章则是笔者根据自己的经验将Camer1和Camera2分别封装到不同的View中来实现相机的适配功能。

2018-10-24 20:27:47 2971

原创 Java中接口和抽象类的联系与区别

在了解Java中接口与抽象类的区别之前首先我们需要分别了解抽象类和接口到底是什么。抽象类  在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:  abstract void fun();抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字...

2018-08-08 22:58:43 453

翻译 ExoPlayer播放器 开发者指南(官方权威指南译文)

ExoPlayer是一个基于Android底层媒体API构建的开源应用级媒体播放器。本指南介绍了ExoPlayer库及其用法。该指南涉及使用ExoPlayer的优缺点。它展示了如何使用ExoPlayer玩DASH,SmoothStreaming和HLS自适应流,以及格式,如MP4,M4A,FMP4,支持WebM,MKV,MP3,OGG,WAV,MPEG-TS,MPEG-PS,FLV和ADTS( AAC)。它还讨论了ExoPlayer事件,消息,自定义和DRM支持。

2018-07-11 16:17:54 5112 1

转载 Android应用图标微技巧,8.0系统中应用图标的适配

本文转载至郭霖的博客:http://blog.csdn.net/guolin_blog/article/details/79417483本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新。大家好,2018年的第一篇文章到的稍微有点迟,也是因为在上一个Glide系列结束之后一直还没想到什么好的新题材。现在已经进入了2018年,Android 8....

2018-04-10 18:33:02 300

转载 【Android 数据库框架总结,总有一个适合你!】

目录(?)[-]一OrmLite二LitePal三GreenDao32四Realm一:OrmLite简述: 优点: 1.轻量级;2.使用简单,易上手;3.封装完善;4.文档全面。缺点:1.基于反射,效率较低(本人还没有觉得效率低);2.缺少中文翻译文档jar包 地址:http://ormlite.com/releases/集成方法

2017-10-31 17:41:34 478 1

原创 Android Camera2相机使用流程讲解

引言以前自己在APP端做自定义相机的时候,一般使用Camera1,通过camear.open+surfaceView的方式就可以很方便的实现效果。相机的拍照调用也比较方便。最近因为工作原因接触到android TV端的开发,第一代主板基于Android 4.4 通过原来Camera的使用方法能够正常的实现相机的预览,拍照功能。但是第二代主板升级到Android 5.2 系统后发现同样的代码在调...

2017-07-26 16:20:14 14472

原创 Android Kotlin学习之路

2017.5.17日Google 2017 I/O 大会,谷歌正式公布了Android官方编程语言————Kotlin。这意味着Android开发的未来~~~

2017-04-06 11:58:14 1151

转载 Android 图片压缩总结

转载自简书,原文地址:http://www.jianshu.com/p/213fc03d0665在项目开发中,图片压缩是一个很棘手的问题,根据需要不同,压缩质量也会不同。而且还有可能会出现OOM的情况,所以在这里记录一下图片压缩的几种方式和用法。一、质量压缩质量压缩就是在不改变原图的大小的情况下,对图片质量进行压缩。说白点,就是图片可能会有一些模糊。进行质量压缩,需

2017-02-06 18:35:45 493

转载 Android沉浸式状态栏(透明状态栏)最佳实现

Android沉浸式状态栏(透明状态栏)最佳实现 在Android4.4之前,我们的应用没法改变手机的状态栏颜色,当我们打开应用时,会出现上图中左侧的画面,在屏幕的顶部有一条黑色的状态栏,和应用的风格非常不协调;为了提供更好的界面交互,google在Android4.4以后提供了设置沉浸式状态栏的方法,对于沉浸式状态栏这个名字存在争议,我们不做讨论,实际的效果其实就是透明的状态栏,然后

2016-12-13 22:16:59 6473

转载 android webview JS交互 第一节 (java和js交互)

转载请注明出处        挺帅的移动开发专栏  http://blog.csdn.net/wangtingshuai/article/details/8631835在android的开发过程中,有很多时候需要用到本地java代码和javascript进行交互。android对交互进行了很好的封装,在开发中我们可以很简单的用java代码调用webview中的js,也可以用webv

2016-12-09 11:00:59 535

原创 Android 文件保存getFilesDir()丶getCacheDir()、getExternalFilesDir() 等操作方法探索

这边文章是为了记录Android文件保存的详细内容及API,同时方便以后查阅。在了解Android文件保存之前,首先我们得知道什么是外部存储和内部存储。选择内部或外部存储所有 Android 设备都有两个文件存储区域:“内部”和“外部”存储。这些名称在 Android 早期产生,当时大多数设备都提供内置的非易失性内存(内部存储),以及移动存储介质,比如微型 SD 卡(外部存

2016-12-08 16:43:26 11537 1

转载 Android 编码规范

1. 前言这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范。该文档仅供参考,只要形成一个统一的风格,见量知其意就可。1.1 术语说明在本文档中,除非另有说明: 术语 class 可表示一个普通类,枚举类,接口或是annotation类型(@interface)术语 comment 只用来指代实现的注释(implem

2016-11-28 11:07:21 686

转载 关于RxJava最友好的文章

RxJava到底是什么?让我们直接跳过官方那种晦涩的追求精确的定义,其实初学RxJava只要把握两点:观察者模式和异步,就基本可以熟练使用RxJava了。异步在这里并不需要做太多的解释,因为在概念和使用上,并没有太多高深的东西。大概就是你脑子里想能到的那些多线程,线程切换这些东西。我会在后面会讲解它的用法。我们先把观察者模式说清楚“按下开关,台灯灯亮”在这个事件中,台灯作为观察者,开关作为被观察者

2016-10-22 02:43:31 683

原创 ScrollView、RecyclerView、ScrollView嵌套ListView性能优化方案

因为项目的需要我们不可避免的需要使用类似的布局方案,我之前写过的一篇文章总结ScrollView嵌套ListView的解决方法,提出了相应的解决方案。但是却陷入了一个性能的大坑:因为之前的解决方案都是以计算出ListView控件的总高度并固定,那么自然就破坏了LisView内置的特性,造成了Adapter中的 getView会被疯狂的调用。(这里就不贴代码了,用过的童鞋应该都懂)来

2016-10-19 17:55:48 2428

转载 Android网络请求心路历程

网络请求是android客户端很重要的部分。下面从入门级开始介绍下自己Android网络请求的实践历程。希望能给刚接触Android网络部分的朋友一些帮助。本文包含:HTTP请求&响应Get&PostHttpClient & HttpURLConnection同步&异步HTTP缓存机制Volley&OkHttpRetrofit&RestAPI网络图片加载优化Fresco&Glide图片

2016-10-14 16:22:18 1612

翻译 OpenGL ES(Android)的学习路径(概念)

Android包括高性能2D和3D图形开放图形库(OpenGL®的),具体而言,OpenGL ES的API支持。OpenGL是一个跨平台的图形API,用于指定的3D图形处理硬件标准的软件接口。ES是用于嵌入式设备的OpenGL规范的味道​​。Android支持OpenGL ES的API的几个版本:的OpenGL ES 1.0和1.1 - 本API规范是由Android 1.0及更高版本

2016-09-08 19:18:18 2207

转载 自定义View进阶篇-Matrix详解

这应该是目前最详细的一篇讲解Matrix的中文文章了,在上一篇文章Matrix原理中,我们对Matrix做了一个简单的了解,偏向理论,在本文中则会详细的讲解Matrix的具体用法,以及与Matrix相关的一些实用技巧。Matrix方法表按照惯例,先放方法表做概览。方法类别相关API摘要基本方法equals hashCo

2016-08-31 00:19:32 1485

转载 自定义View进阶篇-Matrix原理

本文内容偏向理论,和 画布操作 有重叠的部分,本文会让你更加深入的了解其中的原理。本篇的主角Matrix,是一个一直在后台默默工作的劳动模范,虽然我们所有看到View背后都有着Matrix的功劳,但我们却很少见到它,本篇我们就看看它是何方神圣吧。由于Google已经对这一部分已经做了很好的封装,所以跳过本部分对实际开发影响并不会太大,不想深究的粗略浏览即可,下一篇中将会详细讲解

2016-08-31 00:18:36 504

转载 自定义View进阶-Canvas之画布操作

Canvas基本操作1.画布操作为什么要有画布操作?画布操作可以帮助我们用更加容易理解的方式制作图形。例如: 从坐标原点为起点,绘制一个长度为20dp,与水平线夹角为30度的线段怎么做?按照我们通常的想法(被常年训练出来的数学思维),就是先使用三角函数计算出线段结束点的坐标,然后调用drawLine即可。然而这是否是被固有思维禁锢了?假设我们先绘制一个长度为20dp的水平线,然后将这条水平线旋转30度,则最终看起来效果是相同的,而且不用进行三角函数计算,这样是否更加简单了一点呢?

2016-08-31 00:17:51 930

转载 自定义View进阶-Canvas之绘制图形

在上一篇自定义View分类与流程中我们了解自定义View相关的基本知识,不过,这些东西依旧还是理论,并不能拿来(zhuang)用(B), 这一次我们就了解一些能(zhaung)用(B)的东西。在本篇文章中,我们先了解Canvas的基本用法,最后用一个小示例来结束本次教程。一.Canvas简介Canvas我们可以称之为画布,能够在上面绘制各种东西,是安卓平台2D图形绘制的基础

2016-08-31 00:15:45 604

转载 自定义View进阶-分类与流程

本章节为什么要叫进阶篇?(虽然讲的是基础内容),因为从本篇开始,将会逐渐揭开自定义View的神秘面纱,每一篇都将比上一篇内容更加深入,利用所学的知识能够制作更加炫酷自定义View,就像在台阶上一样,每一篇都更上一层,帮助大家一步步走向人生巅峰,出任CEO,迎娶白富美。 误,是帮助大家更加了解那些炫酷的自定义View是如何制作的,达到举一反三的效果。自定义View绘制流程函数调用链(简化版)

2016-08-31 00:12:47 621

转载 android MVC,MVP,MVVM概论

1、MVC思想无论在任何情况下,软件设计都要符合高内聚,低耦合的思想。如果背离这一原则,代码将很难进入维护。MVC出现与上世纪70年代,在三十多年的工程实践中,MVC充分证明了它的成功。在软件开发其他领域都得现MVC的设计思想。1、模型层(Model):处理业务逻辑的代码,比如查询数据库,从网络获取数据等都在model层中处理。 2、控制层(Controller):负责

2016-08-25 12:41:02 450

原创 总结ScrollView嵌套ListView的解决方法

在开发过程中难免会遇到ScrollView嵌套ListView的情况,对于这种情况有几种比较好的解决方案。 一、当ListView的Item为固定高度时,可以通过继承ListView重写onMeasure方法。 二、通过手动计算高度设置LayoutParams可以完美解决; 三、但当ListView的Item的高度不固定时,使用上面两种方法会有一个bug,ListView的最后一个Item偶尔

2016-08-22 23:51:12 653

转载 Java常用排序算法/程序员必须掌握的8大排序算法

本文由网络资料整理而来,如有问题,欢迎指正!分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序不稳定:快速排序,希尔排序,堆排序。本文由网络资料整理而来,如有问题,欢迎指正!分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排

2016-08-19 16:35:51 417

转载 史上最流行的Android组件、工具、框架大全

Android 是目前最流行的移动操作系统之一。 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件。本文试图将目前流行的组件收集起来以供参考, 如果你发现本文还没有列出的组件,欢迎在评论中贴出来,我会定期的更新本文。部分图片需要翻墙才能显示很好的中文教程Google Android官方培训课程中文版

2016-08-19 10:22:54 814

翻译 一个千万量级的APP使用的一些第三方库

.背景前段时间在调研第三方推送服务的时候,反编译了一部分市面上比较流行的APP。其中一个无论是在设计还是功能上都堪称典型,这款APP总用户数超千万(其官网数据),在国内某手机助手上支持率超97%。可见其受欢迎程度(APP的名字就不说了)。反编译这个APP后发现其使用的第三方库也很有代表性。这里介绍下他们使用的这些第三方库,给需要的童鞋一些参考。1.Android Design Suppor

2016-08-19 10:18:39 1734

原创 Java,Android,MD5加密与SHA加密算法(含工具类)

根据不同数据执行加密,先贴出常用的加密算法 /** * MD5加密,32位小写 * @param sSecret * @return */ public static String getMd5small32(String sSecret) { try { MessageDigest bmd5

2016-08-17 18:39:08 897

转载 Android事件分发机制完全解析,带你从源码的角度彻底理解(下)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9153761记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻的理解了。还未阅读过的朋友,请先参考 Android事件分发机制完全解析,带你从源码的角度彻底理解(上) 。

2016-08-16 17:18:07 468

转载 Android事件分发机制完全解析,带你从源码的角度彻底理解(上)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9097463其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引

2016-08-16 17:15:04 540

翻译 Service(服务)学习

首先学一个东西我们应该先对其概念有所理解。 (此文为官方翻译文) Service 是一个可以在后台执行长时间运行操作而不使用用户界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在

2016-08-07 15:41:38 563

转载 Android源码解析系列

知乎上看了一篇非常不错的博文:有没有必要阅读ANDROID源码 看完之后痛定思过,平时所学往往是知其然然不知其所以然,所以为了更好的深入Android体系,决定学习android framework层源码。这篇文章就是源码学习的汇总篇,包含学习源码的流程,文章列表等等,会根据学习的进度不定时更新。在学习源码的时候容易进入一个误区就是只见树木不见森林,具体而言就是对某一个知识点扣的太死了

2016-07-21 18:27:34 428

翻译 对 Android 开发者有益的 40 条优化建议

英文原文:40 Developer Tips for Android Optimization下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题对每个你像添加的特征重复上述过程。这种方法能够激励你,因为你在保持不断迭代,不经意中你学到了很多。然而,当你发布应用时你

2016-06-02 16:04:38 3561 1

空空如也

空空如也

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

TA关注的人

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