自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android NotificationManager简读

今天发觉系统状态栏不能够显示通知条了,但是通知还是有声音之类的,只是不能够显示了,是突然不可以显示了.所以突然看了一下源代码.应用程序中发送通知Notification都需要获取通知服务:NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);看来是通过No

2016-06-13 16:16:30 2704

原创 VS2010 配置OpenCV开发环境

废话不多说,步骤如下:下载版本opencv2.3.1版本vs2010对应vc10代号. : 新建一个控制台程序,比如opencv01的工程:然后鼠标点击该工程右击快捷菜单选择properties:左侧列表中选择VC++ directories,然后右侧配置include directories和library directories环境路径:下面配置includ

2016-06-03 18:50:53 597

原创 Android OpenGL20 setIdentityM,translateM,rotateM,multiplyMV等方法

在opengl中,默认世界坐标系已经定位好了,要绘制图形,给出图形的顶点坐标参数很多情况下是按照世界坐标系设定各自顶点坐标.比如,下面给出了一个立方体的各自顶点坐标,那么下面是按照世界坐标系给出的数据参数.final float cubePosition[] = { // Front face

2016-05-24 19:56:51 9059 1

原创 Android OpenGL20 世界坐标系,屏幕坐标系,纹理坐标系 <8>

在http://blog.csdn.net/qq_31726827/article/details/51265186这一篇大概介绍了坐标系,但是如何应用的呢?并没有特别说明,下面通过测试Sample来说一下.第一个想说的:世界坐标系,这个坐标很容易,opengl 坐标原点默认给在屏幕中间,一般3D 顶点参照使用这个坐标系,具体参见上面的博客.这里介绍一下着色是如何进行的,工

2016-05-20 19:23:22 4715

原创 Android OpenGL20 模型,视图,投影与Viewport <7>

对于很多初学者,视图投影之类非常的难理解,然而这个东西非常非常的重要,如果不是非常清楚,根本无法定位3D Object(空间坐标)和观察角度(观察角度不一样,效果就不一样),自己阅博无数,发现了一篇非常棒的blog文章:http://blog.csdn.net/kesalin/article/details/7168967由于尽量保证自己博客的原创性,所以不方便装载,所以reviewer一

2016-05-19 14:07:21 3800

原创 Android OpenGL10 输入响应 <6>

OpenGL的承载体是GLSurfaceView,而GLSurfaceView类在很多方面类似于View,那么它同样具有与View的一些待遇,比如也能够响应KeyEvent,MotionEvent事件等等,从前面几篇中,有很多立方体的图形可以在每次重绘的时候,设置不同的位置和旋转角度,就可以实现图形的位置的变化,这里就可以通过触摸事件产生的坐标位置,让图形跟随触摸方向移动或者变换.整体上不是很

2016-05-06 23:25:02 2336

原创 Android OpenGL10 多纹理效果 <5>

接着前面那一篇文章,上一篇没有特别介绍API,这里先介绍几个常见的API,然后给出验证程序:glGenTextures(GLsizei n, GLuint *textures)参数一:用来生成文理数量;参数二:储存一个纹理索引,传入数组;方法:根据纹理参数返回n个纹理索引;void glBindTexture( GLenum target, GLuint texture);

2016-05-06 00:35:05 1899

原创 WindowManager 基本应用

关键字 : WindowManager,浮动窗体,工具面板,SystemUI状态栏在群里面久了,经常会听到很多人说了做一个什么窗体,什么弹出框,或者上拉,下拉的框体.下面大致介绍一下.这里面先大致说一下SystemUI(状态栏/通知栏)工程的一些相似特点,SystemUI这个系统APP基本上没有Activity,完全通过WindowManager这个管理器动态添加视图.包括屏幕顶部的状态栏,下

2016-05-05 19:54:45 5484

原创 Android 自定义View背景动画 流程简读 <2>

这一篇主要根据上一篇的大致说明,我相信如果看完这一篇,对开发自定义View将会有很大的帮助,先介绍ColorStateList和StateListDrawable两个类:ColorStateList说明:https://developer.android.com/reference/android/content/res/ColorStateList.htmlStateListDraw

2016-05-04 13:09:55 2197

原创 Android OpenGL10 纹理 <4>

前面一篇中简述了基本图形的绘制,并且给出着色,下面看看如何在一个立方体上面覆盖一层纹理,就像在地板上贴了一层地板砖的效果.同样新建一个android studio工程,PumpKinBasicTexture工程:主类如下:package org.pumpkin.pumpkinbasictexture;import android.app.Activity;import andro

2016-05-04 01:02:13 571

原创 Android OpenGL10 基本图形绘制 <3>

下面程序的opengl的图形是根据Opengl1.0版本API进行的. : 首先绘制点: : 新建一个android studio工程,这个工程参考前一篇坐标系的.工程名:PumpKinBasicGL10,主类如下:package org.durian.pumpkinbasicgl10;import android.app.Activity;import android.open

2016-05-04 00:14:37 6375 2

原创 Android View 流程简读 <1>

上一篇大致介绍了如何更新主题风格之类的,没有谈及到一些本质的,这一篇大致介绍一下所有的UI归根结底的View类显示效果流程.这里面以View背景动画产生流程为主线的.(即,我们经常会遇到各种点击效果,如material的水波纹,或者以前的按钮点击前后的背景效果变化)看了android源码View.java类public class View implements Dra

2016-05-03 19:12:23 441

原创 Android 主题资源风格定制 <1>

无论是定制系统还是自行开发APP的UI,其无论是使用标准UI还是自定义UI,最终都是需要自己熟悉主题风格的各种属性设置,不过属性非常的多,如果需要知道某个UI可以临时查看一下SDK的D:\liuzhibao\Android\sdk\platforms\android-N\data\res路径下的,但是这个是纯粹的资源文件,没有java文件,所以还是推荐repo下来framework/b

2016-04-28 19:59:11 4532

原创 Android OpenGL 坐标系 <2>

计算机中任何绘图都离不开坐标系只是在每种绘图中坐标系形式有些差异,比如平时做android的View,在自定义View中绘制直线,那么这个时候默认的是采用的是屏幕坐标系,即坐标原点在屏幕左上角,X轴向右,Y向下:而在opengl中采用的是3维坐标:坐标原点默认在屏幕的中间,即(width/2,height/2)位置上,z轴是从屏幕"内"指向屏幕外,而且还要注意原点和x,y轴

2016-04-27 23:21:54 3574

原创 Android AssetManager 简读<2>

前面一篇大致介绍如何装载各种资源到系统路径下,下面看看如何获取这些资源.做每一个Activity时,不可或缺的需要设置一个布局,后者一个View来显示给用户.public void setContentView(int layoutResID)以及:public void setContentView(View view)都比较常见.先看第一种:public void

2016-04-27 20:00:41 452

原创 Android AssetManager <1>

AssetManager是android的资源管理器,负责管理android系统所有的资源.资源可以分系统级别和应用级别.系统级别主要是framework-res.apk,即编译framework/base/core/res目录下的,当然有时候定制系统会有定制的资源,一般放在~/vendor/overlay/...下面,可以在framework/base/core/res的androi

2016-04-26 20:04:00 4690

原创 Android OpenGL 开始篇 <1>

我常给一些人的建议:如果条件不错,就不要来做程序员了,因为这不是人干的事!程序员睡觉的时候也是清洁工人开始扫马路的时候!废话不多说,自己也是作为学习笔记而已,也是督促自己,因为如果仅仅运行一个例子很简单.自己研究这个当然也是需要应用到一定背景下的.android APP如果需要使用opengl制图,如果在java层实现,一般是GLSurfaceView来显示出opengl制图,GLSurf

2016-04-19 01:32:36 6146

原创 Android PackageManager

这两个管理器其实没什么好扯的,看一下源代码基本上就知道了,用途的话除了系统本身用的最多,PackageManager在桌面Launcher APP使用.PackageManager管理器主要负责APP Package的管理,比如安装,卸载,Package的解析,Package包的各种信息,如版本,APP图标,资源,权限等等,android系统在安装APP的时候,会弹出一个提示框,提示框中就会显

2016-04-18 18:16:31 1017

原创 Android Activity 图形化生成简读 <3>

不知道标题是否准确,即使Activity开始自己的周期,从attach开始,接着第一篇的attach点.多说一句,前面跟随思路,一步一步的打log,生成services.jar放到系统里面运行,就知道自己的判定是否正确了.下面回到Activity的类,attach :final void attach(Context context, ActivityThread aThread, Ins

2016-04-15 20:22:05 557 1

原创 Android Launcher 启动简述 <2>

Lanucher就是我们平时的开机后的桌面APP(它其实就是一个APP,没什么特别的,看起来有点高大上),作为APP程序,它也需要启动自己的Activity界面(因为桌面是能够看得见的,有界面的).那么开机时如何启动呢?根据上一篇,开机时SystemServer会将ActivityManagerService启动,那么首先就会启动SystemReady(...)方法. public

2016-04-15 19:20:23 330

原创 Android Activity启动过程简读 <1>

平时工作中经常会谈一些Activity启动过程,周期之类的话题.其实整体单纯来说还是比较简单. : Activity的启动都是从startActivity(...)开始. : 对比Activity的周期中涉及到几个阶段,如果onCreate,onResume...,当发现程序调用这些方法时,第一时间想到的是framework的Activity管理根据状态在回调这些方法. : 谈及第二点

2016-04-13 20:10:41 400

原创 Android Bluetooth 框架简读 <3>

上一篇从设置开始的,后面的扫描,连接的套路基本上很蓝牙enable差不多,下面从Phone大概介绍.前面说过HSP,HFP的操作基本上在应用层开始的,另外蓝牙的audio部分也是从这里开始.所以大致概括 : 有RFComm通讯连接,AT通讯处理,SCO连接以及对应Audio设置配置展开Phone工程:从工程的BluetoothHeadsetService.java类开始,这是一个服

2016-04-08 19:09:28 952

原创 Android Bluetooth 框架简读 <2>

根据前一篇的思路大致走一遍.先从应用层开始,Settings工程的蓝牙部分,这部分还是挺熟悉的,以前在某知名公司负责ROM开发时熟悉了.当然不同系统版本,代码可能有点不同,设置蓝牙主界面BluetoothSettings.java,但是这里大概分析开启蓝牙流程和扫描蓝牙流程.开启蓝牙流程:直接进入BluetoothEnabler这个类查看.public void onCheck

2016-04-08 13:56:14 916 1

翻译 Android 性能优化细则

原文地址:Android Performance Patterns: Rescue tips : 避免“坏”表现: 避免堵塞主线程  避免可能引发大范围重绘的不必要的重绘  用 RelativeLayout 来减少布局层级  避免在 LinearLayout 中使用嵌套的 weight 属性(因为weight属性会使每个子View进行两次measure)

2016-04-08 00:49:49 346

原创 Android Bluetooth 框架简读 <1>

下面大致看看Android 蓝牙部分.先大致走读一遍,android系统蓝牙相关代码基本分布: : 应用层:Setting工程,Bluetooth工程,Phone工程,这三个工程代码都在~/packages/app目录下(主要是这几个见得多,面熟).Settings : 这个是用户见过最多的,蓝牙的开关,扫描,配对.Bluetooth : 实现一部分用户交互(比如蓝牙发送接收文

2016-04-07 19:49:01 712

原创 Android Audio 框架简读 <6>

下面大致介绍Android Audio部分的AudioTrack和AudioFlinger的数据交换.首先要了解数据交换过程的存储方式:这个存储方式一般由在new一个AudioTrack时构造函数里面传递的mode参数决定,有两种选择:MODE_STATIC与MODE_STREAM : MODE_STATIC:static方式适用于数据较小,实时性比较高的情形,比如ring,系统铃

2016-04-06 19:24:17 1167

原创 Android AS平台jni环境配置

废话不多说! : 新建一个DurianAsJni的android工程. : 新建一个jni的java接口类:package org.durian.durianasjni;/** * Project name : DurianAsJni * Created by zhibao.liu on 2016/3/28. * Time : 19:33 * Email warden_sp

2016-04-05 20:03:55 1583

原创 Android OPenCV 环境配置 <2>

上一篇大致介绍了使用opencv java库的操作过程,这里介绍一下如何使用opencv的native库,当然同样不需要opencvManager运行环境,否则介绍就没有什么意义了.步骤如下: 下面的前提是已经基本熟悉Android studio平台开发jni了. : 新建一个DurianJniOpenCV的android工程,平台还是Android Studio,基本上和第一篇是一样的.

2016-04-05 10:25:17 769

原创 Android OPenCV 环境配置 <1>

参照网上面的很多关于Android 使用OpenCV的,虽然有一些讲的也比较详细,但是按照套路来,似乎不成功!搭建环境: Android Studio 2.0 + OpenCV-Android-master.zip(这个是3.0版本的,官网上面可以下载,要下载for Android的版本)+NDK(android-ndk-r10,至少大于等于r9)使用OpenCV SDK里面的sa

2016-04-01 18:36:12 3191

原创 Android Audio 框架简读 <5>

前面讲到AudioFlinger打开设备,但是后面贴了图片就没继续了,现在继续看看:audio_io_handle_t AudioFlinger::openOutput(audio_module_handle_t module, audio_devices_t *pDevices,

2016-03-31 14:49:48 2528

原创 Android Audio 框架简读 <4>

android这个Audio部分还是非常大的一个模块,下面从设备的角度简读一下Audio设备是如何工作的.假设: : 熟悉了AudioFlinger和AudioPolicyService的基本程序流程. : 知道HAL中hardware.h那三个结构体是干什么的:typedef struct hw_module_t typedef struct hw_module_methods_

2016-03-29 20:01:12 987

原创 Android Audio 框架简读 <3>

上面一篇最后提到Binder,我个人感觉Android系统需要申请内存空间基本上都是Binder完成的,可以基本认知Binder:Binder在linux层是专门有一个binder驱动层的,这个驱动层可以用于分配设备内存空间.它同时提供接口给其他设备使用,用于分配内存和管理内存,其他设备需要申请内存都需要实现它的接口,通过它提供的接口分配内存和管理内存.Android Audio 录播都需

2016-03-28 18:48:12 594

原创 Android Audio 框架简读 <2>

接着上一篇AudioPolicyService代码,目录:E:\liuzhibao\android\android\frameworks\av\services\audioflinger直接看代码:主要看构造函数内:// ----------------------------------------------------------------------------Audio

2016-03-25 14:52:52 947

原创 Android Audio 框架简读 <1>

: 首先了解Android Audio所涉及的代码放在源代码位置:对应应用层:~\frameworks\base\media\java\android\media对应的中间层:包括framework,libarary代码:~\frameworks\av\media和~\frameworks\av\services对应HAL层:~\hardware\libhardware_legacy\

2016-03-23 19:16:41 1778

原创 Android Lint工具 <22>

Android Lint工具相对开发者而言,要比测试者使用更加重要和有效.当自己差不多开发完一个工程后,发现工程代码中有一堆测试代码,到处都是,想一个一个的去删除,那真的是揪心;还有一些代码,同样的类型,这个地方是这种写法,那个地方是那种写法,反正写法有无数种;资源res文件中还有一堆一堆没有用的属性,值,可能由于很多种原因造成的,一个本来1kb的资源,硬是逼成了2kb(app瘦身绝对

2016-02-25 19:55:59 384

原创 Android 启动时间优化 <22>

这个需要看那些非常厉害的专家的blog,要缩短Activity启动时间,可以参考一下思路: : Activity 完整启动过程,更多的是属性framework部分;看熟Activity类,PhoneWindow类,DecorView这个内部类,ViewRootImpl类;只有熟悉真正的原理了,才知道为什么,为什么,为什么需要这样操作. : 一个隐蔽的方法;Activity.at

2016-02-22 19:05:27 739

原创 Android onLowMemory()和onTrimMemory(...)调整运行过程中的内存消耗 <21>

在很多APP经常会因为数据量大,或者一个页面占有内存较高,在切换到另外一个页面的时候,内存不能够暂时释放,导致切换到另外一个页面加载较慢...Android在4.0版本后推出了onLowMemory()和onTrimMemory(...)两个回调方法,提供给开发者,提示Android APP在低内存的状态.OnTrimMemory的主要作用就是指导应用程序在不同的情况下进行自身的内存释放,

2016-02-22 18:29:00 4216

原创 Android Jni Android.mk常用语句

只要涉及JNI开发都涉及到Android.mk编写,它也是一种makefile语言.以上一篇博客中提供的工程为例! : 打印信息 : 既然是一种简易语言那么首先应该知道能够打印脚本信息的语法部分:一个是基本信息类型,一个是警告,错误类型$(info TEXT......) 这个函数执行的时候,会输出: TEXT... ...$(error TEXT......)这个函数被执行

2016-02-03 17:59:57 577

原创 Android Lame c库应用

废话不多说. : 首先可以从网上面下载lame库; : 新建一个android工程,如前面博客的添加所有的配置文件和jni目录; : 添加lame c文件库到jni中:解压后添加下面两个: : 根据 中的文件目录,编写makefile文件:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE

2016-02-03 11:24:50 357

原创 Java 抽象模式设计

抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类.基本的模型如下具体的实现如下:做一个产品由三类人完成,但是三类人又有高级和初级的分别,将高级别的组织在一起,低级别的组织在一起.代码实现如下:三类人:抽象概念:package org.durian.durianabstractdesignmode.atom;/**

2016-02-03 10:28:35 358

空空如也

空空如也

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

TA关注的人

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