自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android的category.LAUNCHER与installLocation设置失效问题

一、Android选择启动页 <activity android:name=".activity.HelloActivity" android:screenOrientation="portrait"> <intent-filter> <action android:nam...

2019-07-16 14:29:28 649

转载 SQLite多线程操作数据库

在开发Android的程序的时候sqlite数据库是经常用到的;在多线程访问数据库的时候会出现这样的异常:java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.或java.lang.IllegalStateException: attem...

2019-07-11 17:15:34 1103

转载 Android HandlerThread使用

package com.app;import android.os.Bundle;import android.os.Handler;import android.os.HandlerThread;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.util...

2019-07-11 12:14:05 388

原创 Handler、Looper、MessageQueue、HandlerThread、ActivityThread、Message源码分析

一、Handler、Looper、MessageQueue、HandlerThread、ActivityThread、Message结构1、Message:消息;其中包含了消息ID,消息对象以及处理的数据等,由MessageQueue统一列队管理,终由Handler处理2、MessageQueue:消息队列;用来存放Handler发送过来的消息,并按照FIFO(先入先出队列)规则执行。当然...

2019-07-11 12:00:51 320

原创 Android Handler内存泄漏和解决方法

一、Handler内存泄漏原因handler发送的消息在当前handler的消息队列中,如果此时activity finish掉了,那么消息队列的消息依旧会由handler进行处理,若此时handler声明为内部类(非静态内部类),我们知道内部类天然持有外部类的实例引用,那么就会导致activity无法回收,进而导致activity泄露。二、Handler内存泄漏几种情况1、隐式引用...

2019-07-10 11:39:09 376

原创 Android Studio 加载JNI与so文件

一、Android Studio里面进行jni源码编译1、CMake编译CMakeLists.txt# For more information about using CMake with Android Studio, read the# documentation: https://d.android.com/studio/projects/add-native-code.h...

2019-06-28 17:36:01 422

原创 Android Studio配置Debug和Release

1、Debug与ReleaseDebug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发 人员提供强大的应用程序调试能力。Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信 息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。build.gradlesi...

2019-06-26 10:14:05 6576

原创 px、dp、sp、dip、dpi=160

px:即像素,1px代表屏幕上一个物理的像素点;px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同。dip像素密度。假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这...

2019-06-22 10:18:04 1007

原创 Android Camera2预览和实时帧数据获取

1、预览2、角度旋转3、实时帧数据获取ImageReader的参数设置4、实时帧数据格式转换package com.neatech.stface.tools;import android.Manifest;import android.app.Activity;import android.content.Context;import android.content.I...

2019-03-08 16:11:13 8803 16

原创 Android Camera2预览、抓拍、播放、暂停

activity_main.xml&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"&gt; &lt;SurfaceV...

2019-03-05 15:35:43 3391

原创 设计模式---抽象工厂模式与建造者模式

抽象工厂模式:用来创建相关或者依赖对象的家族,而不需要指定具体实现类1.通过组合的方式实现程序解耦2.创建一个产品家族的抽象类型3.立即返回对象Connection---Statement---PreparedStatement建造者模式:将复杂对象的创建一个与表示分离,使得同样的构建可以创建不同的表示1.着重与分析步骤构造一个复杂对象2.最后一个步骤反回具体产品String...

2019-02-13 16:58:55 651

原创 设计模式---工厂模式与抽象工厂模式

工厂模式:定义一个创建产品对象的工厂接口,让子类决定实例化哪一种实例对象1.通过继承的方式实现程序解耦2.创建一个抽象产品,具体工厂实现工厂方法来创建具体产品Java SDK涉及此模式:List---Iterator抽象工厂模式:用来创建相关或者依赖对象的家族,而不需要指定具体实现类1.通过组合的方式实现程序解耦2.创建一个产品家族的抽象类型Java SDK涉及此模式:Conn...

2019-02-13 00:24:48 218

转载 微服务架构设计

微服务架构设计微服务       软件架构是一个包含各种组织的系统组织,这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。Conway’s law: Organizations which design systems[...] are constrained to produce design...

2018-11-12 00:50:26 275

转载 区块链2.0之以太坊

很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门。以太坊是什么以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。对这句话不理解的同学,姑且可以理解为以太坊是区块链里的Android,它是一个开发...

2018-08-05 13:20:18 525

原创 认识区块链

最近半年,区块链突然间就火爆了,一度怀疑自己是不是落伍了。区块链好像是一个很高端的东西,其实不然。弄懂区块链,可以从以下几个方面展开:1)比特币是怎么来的?2)区块链和比特币有什么关系,区块链是什么?3)为什么区块链这么火爆?1、比特币是怎么来的?“币”俗称“钱”,用金融上的词形容即“货币”,货币本来没有价值,是人在交换的过程中赋予了其价值,比如说很早以前贝壳、铜等都可以当...

2018-07-26 03:19:34 345

原创 计算机行业,28岁的我还很年轻

离上一篇自我总结已经一年半,毕业也两年了,年龄却已经28了。回首这两年,好像做了很多事,却好像什么也拿不出手。在IT行业,技术总是发展的太快。不了解和学习新技术似乎是会被淘汰,没有拿得出手的专业技能似乎也会被淘汰,没有一定的知识面似乎也要被淘汰。不得不承认,这是一个不断学习的行业。这两年一直在一家公司上班,前一年相对来说比较轻松,后一年几乎每天都处于高压状态,头发也因此向后移了一截。前一年...

2018-07-19 01:29:00 2155 4

原创 Android AsyncTask

一、异步任务加载网络数据:在Android中提供了一个异步任务的类AsyncTask,简单来说,这个类中的任务是运行在后台线程中的,并可以将结果放到UI线程中进行处理,它定义了三种泛型,分别是Params、Progress和Result,分别表示请求的参数、任务的进度和获得的结果数据。1、使用原因:1)是其中使用了线程池技术,而且其中的方法很容易实现调用2)可以调用相关的方法,在开

2017-12-13 15:22:02 269

原创 Android MediaCodec编解码与RTP传输

一、目的本文的围绕Android的MediaCodec编解码进行展开,将摄像头采集的视频数据编码成H264数据,然后封装成RTP协议,利用UDP进行传输;接收端接收到RTP数据后进行解包成H264数据,然后交给MediaCodec进行解码显示,结构图如下:二、MediaCodec编码import java.nio.ByteBuffer;import android.an...

2017-12-11 16:51:16 8564 25

转载 音频编解码原理

随着嵌入式系统性能的提高,在 ARM 嵌 入式系统中实现对各种音乐格式的解码和播放已有可能。如何在嵌入式系统中利用有限的计算能力达到播放音乐的功能,是一个值得关注的问题。一般常见的情况 是,依赖嵌入式 ARM 或 DSP 的处理能力,通过定点 或浮点程序实现音频编解码过程。实例说明    音频编解码常用的实现方案有三 种。    第一种就是采用专用的音频芯片对 语音信号进行

2017-12-11 10:51:50 39687

转载 Android MediaCodec

Android中可以使用MediaCodec来访问底层的媒体编解码器,可以对媒体进行编/解码。MediaCodec可以处理的数据有以下三种类型:压缩数据、原始音频数据、原始视频数据。这三种类型的数据均可以利用ByteBuffers进行处理,但是对于原始视频数据应提供一个Surface以提高编解码器的性能。Surface直接使用native视频数据缓存,而没有映射或复制它们到ByteBuffer...

2017-12-08 17:05:30 559

转载 Android多媒体

1.音频处理作为多媒体处理的最基本的组成部分,音频处理在移动终端上十分复杂。音频的播放、记录、以及多种场景(如电话、音乐、提示音、录音等)的冲突、并发策略无疑增加了开发的难度。好在Google在设计Android时充分考虑了这些问你,在底层设计了一套围绕AndioFlinger、AudioPolicyManager的音频框架,使应用层的开发者可以忽略不同场景下的并发策略。通过这种方法,

2017-12-08 16:44:37 507

转载 H264编解码原理

H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1

2017-12-08 15:04:20 3489 1

转载 H264协议

一、 h264基础概念RBSP: 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若干比特“0”,以便字节对齐。EBSP: 扩展字节序列载荷– >在RBSP基础上填加了仿校验字节(0X03)它的原因是: 在NALU加到Annexb上时,需要填加每组NALU之前的开始码 StartCodePrefix,如果该NALU对

2017-12-07 18:12:55 7815 3

转载 RTP协议

实时传输协议 RTP,RTP 提供带有实时特性的端对端数据传输服务,传输的数据如:交互式的音频和视频。那些服务包括有效载荷类型定义,序列号,时间戳和传输监测控制。应用程序在 UDP 上运行 RTP 来使用它的多路技术和 checksum 服务。2 种协议都提供传输协议的部分功能。不过,RTP 可能被其他适当的下层网络和传输协议使用。如果下层网络支持,RTP 支持数据使用多播分发机制转发

2017-12-01 16:14:32 495

转载 Android ANR

1, 你碰到ANR了吗在App使用过程中,你可能遇到过这样的情况: 1.1 何为ANRANR全名Application Not Responding,也就是"应用无响应".当操作在一段时间内系统无法处理时,系统层面会弹出上图那样的ANR对话框.1.2 为什么会产生ANR在Android里, App的响应能力是由Activity Manager和Window

2017-11-10 11:46:28 583

转载 Android OOM

Android内存泄漏一、内存溢出如何产生的Android的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M,有的机器为24M。因此我们所能利用的内存空间是有限的。如果我们的内存占用超过了一定的水平就会出现OutOfMemory的错误。内存溢出的几点原因总结:1、资源释放问题:程序代码的问题,长期保持某些资源(如Context)的引用,造成内存泄露,资源得不到释放

2017-11-08 18:14:15 259

转载 Java 泛型

一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) { List list = new ArrayList(); list.add("qqyumidi"); list.ad

2017-11-08 11:21:18 207

转载 Android MVP与MVC

一、MVP与MVC介绍先上一个经典的图:C 和 P 的区别先来看一下 MVP 与MVC 差别在哪?简单一眼扫过,就是 C 和P 的差别。1、先看 CC 就是 Controller,控制器。负责从View 读取数据,控制用户输入,并向 Model 发送数据。简单来说,就是起到一个沟通的作用,能很大程度上的解决Model 和 View 的耦合问题

2017-11-08 10:42:03 363

原创 基于HLS协议的无插件HTML5流媒体播放

一、非实时流的播放将非实时媒体数据进行切片成TS文件,并用一个M3U8文件进行索引。HLS:HTTP Live Streaming是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u8的索引文件,TS媒体分片文件和key加密串文件。m3u8文件:是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放

2017-11-02 15:59:53 10699

原创 Android 自定义View---ToggleButton

一、ViewAndroid所有的控件都是View或者View的子类,它其实表示的就是屏幕上的一块矩形区域,用一个Rect来表示,left,top表示View相对于它的parent View的起点,width,height表示View自己的宽高,通过这4个字段就能确定View在屏幕上的位置,确定位置后就可以开始绘制View的内容了。二、View的绘制过程1)MeasureView会先

2017-10-19 12:52:36 477

转载 Android Window

有时候我们需要在桌面上显示一个类似悬浮窗的东西,这种效果就需要用 Window 来实现,Window 是一个抽象类,表示一个窗口,它的具体实现类是 PhoneWindow,实现位于 WindowManagerService 中。WindowManagerServiceWindowManagerService 就是位于 Framework 层的窗口管理服务,它的职责就是管理系统中的所

2017-09-26 16:26:48 425

转载 Android Application

一、Application   Application 类是用来维护应用程序全局状态。你可以提供自己的实现,并在 AndroidManifest.xml文件的 标签中指出他的名字,这将导致在创建应用程序时去实例化你自己的 Application 类。  Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例

2017-09-26 15:51:00 207

原创 StartUML逆向工程

一、下载相关语言插件Tools->Extension Manager,选择需要的语言插件进行下载,下载后在Tools下面会出现相应的语言插件(联网)。  二、按照StartUML的语法规则画好相应的UML类图要注意以下几个方面,包、类、类的属性和方法、参数和方法的返回值,依赖关系等。这里不做详细介绍,可以看上一篇博客---《StartUML类图语法规则》有详细的介绍。 

2017-09-21 14:37:54 4238 1

原创 StartUML类图语法

StartUML类图语法Ps:规范的类图才能进行准确的逆向工程一、类图(class)1、类(名称、属性、方法)(抽象类)点击类后,右下角将isAbstract勾选就是抽象类,类名会成斜体2、属性类型与范围属性的设置:点击一个属性,右下角可以设置,其中Type为属性类型,同时也有静态方法的设置3、方法参数类型与范围、返回值类型方法的参数:点击方法,左上角添加参数,选中

2017-09-21 14:26:26 3301

原创 流媒体相关交互协议和开源服务介绍

SIP协议SIP是Session Initialization Protocol (会话初始协议)的缩写,用来建立、更改和终止一个或者多个参与者的会话。这些会话包括多媒体会议、网络呼叫等。 SDP协议SDP是Session Description Protocol(会话描述协议)的缩写,主要是用于在会话建立过程中对流媒体相关信息进行描述的协议。SIP协议建立到结束会话的过程中一般需

2017-09-21 14:21:33 678

原创 Android Volley架构分析

Android volley架构分析 我们在开发Android应用时,网络技术是非常普遍的,大多数情况下我们都是使用Http协议,Android系统中主要有两种方式来进行Http的通信,HttpURLConnection和HttpClient。我们在实际编程过程中会发现这两个类用起来还是很复杂的,而Volley就是将其进行适当的封装,使开发者用起来就比较简单。一、Volley例子(

2017-09-20 11:59:53 371

转载 Android ListView中图片的优化

ListView中图片的优化:1、处理图片的方式:如果自定义Item中有涉及到图片等等的,一定要狠狠的处理图片,图片占的内存是ListView项中最恶心的,处理图片的方法大致有以下几种:①、不要直接拿路径就去循环decodeFile();使用Option保存图片大小、不要加载图片到内存去②、拿到的图片一定要经过边界压缩③、在ListView中取图片时也不要直接拿个路径去取图片,

2017-09-15 11:35:06 485

转载 Android图片加载优化

高效加载大图片我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨率高得多。大家应该知道,我们编写的应用程序都是有一定内存限制的,程序占用了过高的内存就容易出现OOM(OutOfMemory)异常。我们可

2017-09-15 11:15:41 1936

转载 Android GLSurfaceView

一、SufaceViewSurfaceView从Android 1.0(API level 1)时就有 。它继承自类View,因此它本质上是一个View。但与普通View不同的是,它有自己的Surface。我们知道,一般的Activity包含的多个View会组成View hierachy的树形结构,只有最顶层的DecorView,也就是根结点视图,才是对WMS可见的。这个DecorView

2017-09-13 15:51:57 585

转载 Android SurfaceView

一、什么是Surface           简单的说Surface对应了一块屏幕缓冲区,每个window对应一个Surface,任何View都要画在Surface的Canvas上(后面有原因解释)。传统的view共享一块屏幕缓冲区,所有的绘制必须在UI线程中进行。        在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer

2017-09-13 15:09:42 313

空空如也

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

TA关注的人

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