- 博客(43)
- 资源 (16)
- 收藏
- 关注
原创 Android OpenGL ES学习笔记之概要
前言因为对OpenGL比较感兴趣,所以这段时间一直在研究这个,于是把自己的学习笔记分享给大家,希望能帮到初学者 。一、OpenGL ES是什么百度百科是这样介绍的:OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。 OpenGL(Open Graphics Lib
2016-08-10 10:03:10 2260 1
原创 Android4.4-Launcher源码分析系列之概述
这段时间研究了安卓4.4的Launcher源码,决定把自己的收获分享一下,欢迎各位留言.把4.4的Launcher源码导入到eclipse中时会报一些错误,这是因为涉及到一些隐藏的api和资源.需要以下3个jar包 1.ramework_intermediates/classes.jar 这个主要是andro
2016-05-19 14:59:12 2394 3
原创 Android 7.0 SystemUI 之启动和状态栏和导航栏简介
Android 7.0 SystemUI 之启动和状态栏和导航栏简介一、SystemUI 是什么首先SystemUI 是一个系统应用,apk路径位于/system/priv-app源码路径位于:/framework/base/packages/ystemUI它负责的功能如下:状态栏信息的展示:比如电量信息,时间,wifi状态等通知栏消息壁纸管理截图功能近期任务栏显示,比如长按home键显示
2016-12-07 16:37:10 24061 6
原创 Android7.0 Vold 进程工作机制分析之由MountService发起挂载请求
Android7.0 Vold 进程工作机制分析之由MountService发起挂载请求一、MountService发起挂载请求上一篇Android7.0 Vold 进程工作机制分析之由Kernel发起挂载请求是讲解了kernel发起的请求,这一篇接着讲由MountService发起挂载请求的流程. 其实这个流程的大部分在上一篇已经被包含了,我还是写下吧.1.MountSe
2016-11-25 09:57:59 2981
原创 Android7.0 Vold 进程工作机制分析之由Kernel发起挂载请求
Android7.0 Vold 进程工作机制分析之由Kernel发起挂载请求一、MountService简介MountService是一个系统服务,负责与Vold进程通信的,运行在SystemServer进程,当收到Vold的挂载消息后,会通过广播的方式通知上层应用.它是在SystemServer的startOtherServices方法里启动的SystemServer路径——
2016-11-25 09:57:20 2152 3
原创 Android7.0 Vold 进程工作机制分析之整体流程
Android7.0 Vold 进程工作机制分析之整体流程一、Vold简介Vold是Volume Daemon的缩写,负责管理和控制Android平台外部存储设备,包括SD插拨、挂载、卸载、格式化等。它是通过init进程解析init.rc脚本所启动的进程.它处于Native层.二、基础架构这里引用Gityuan博客的一张图。SystermServer进程和Vol
2016-11-25 09:56:21 5433 3
原创 Android OpenGL ES学习笔记之添加纹理
texture在游戏制作里面指贴图,又称纹理。游戏制作需要用到大量的图片素材,尤其是3D游戏。游戏制作的时候会存放图片到texture里面,运行游戏时会读龋如果坏掉…
2016-08-10 10:42:57 4752 3
原创 Android OpenGL ES学习笔记之材质概念和添加光照
一、光照概念观察一个真实的3D物体,在不同的部位必然有不同的光照效果,有的地方暗一点,有的地方亮一点。而这种视觉差异是由光源和材质(物体的材料)共同决定的。光源强度由红、绿、蓝三色光强度共同决定,最终的光照效果由4部分组成: - Emitted(光源) - diffuse(漫反射光) - specular(镜面反射光) - ambient(环境光) 这里附上一张网上的图:
2016-08-10 10:33:14 5068 2
原创 Android OpenGL ES学习笔记之绘制一个立方体
前言前面已经讲了如何绘制点、线、面,现在就来绘制一个立方体,OpenGL ES中任何一个立体图形都是由很多面组成的,这个面指的就是三角形,所以绘制立方体就是绘制多个三角形而组合起来。绘制立方体有6个面,左、右、前、后、上、下。共有8个顶点,每个面有4个顶点,代码如下 PS:一定要注意顶点的顺序,不能随意选择 // 定义立方体的8个顶点 float[] cubeVe
2016-08-10 10:29:34 8284 6
原创 Android OpenGL ES学习笔记之添加颜色
一、分类添加颜色的种类有两种 - Flat coloring 单色 - Smooth coloring 平滑着色单色顾命思义就是一种单一的颜色,调用 glColor4f(float red, float green, float blue, float alpha)方法传入红、绿、蓝、透明度四个参数,取值0~1f。还是以An
2016-08-10 10:27:52 3999
原创 Android OpenGL ES学习笔记之图形变换
一、概念在OpenGl ES中,将一个3D模型显示到2D屏幕中有以下四个过程。 1. 视角(Viewing)变换 2. 模型(Modeling)变换 3. 投影(Projection)变换 4. 视窗(Viewport)变换视角(Viewing)变换相当于你拿着一台照相机移动,从不同的位置来观察一个人,比如下图模型(Modeling)变换此时相机不动,
2016-08-10 10:25:52 3584
原创 Android OpenGL ES学习笔记之绘制线、面
前言之前一篇文章讲了如何绘制点,所谓两点成线,三点成面。一个立体图形就是由很多面组成,在OpenGL ES中,面特指一个三角形。绘制调用glDrawArrays(int mode, int first, int count)方法mode的参数可以选择 - GL_POINTS ————绘制独立的点 - GL_LINE_STRIP————绘制连续的线段,不封闭 - GL_LINE_LOOP————绘制连
2016-08-10 10:21:29 7452
原创 Android OpenGL ES学习笔记之常用API
上一篇文章Android OpenGL ES学习笔记之绘制点涉及到了一些API,在这篇文章配合一些实例给大家详细的讲解下。缓冲区在OpenGL ES 中存在着三种缓冲区- 颜色缓冲区 ————包含了颜色索引或者RGBA颜色数据- 深度缓冲区 ————存储每个像素的深度值,当启动深度测试时,片段像素深度值和深度缓冲区深度值进行比较,决定片段哪些像素点数据可以替换到颜色缓冲区中
2016-08-10 10:17:47 2843 1
原创 Android OpenGL ES学习笔记之绘制点
一些基本概念 世界坐标系 世界坐标系就是3D绘图中像素的坐标。在3D绘图中,坐标轴遵循右手法则,让你右手手心正对自己,大拇指指向X轴正方向,拇指指向Y轴正方向,中指指向Z轴正方向。如下图所示点的表示 空间中一个点具有(x,y,z)坐标。在Android系统中,可以用一个float数组、int数组等来表示一个点,比如private float[] mArray = { 0f, 0f, 0f };而在
2016-08-10 10:12:42 6970
原创 Android OpenGL ES学习笔记之实现OpenGL ES接口
一、GLSurfaceView介绍在Android平台上实现OpenGL的view很简单,只需要用到GLSurfaceView和GLSurfaceView.Renderer。GLSurfaceView是用来连接OpenGL ES和android的view结构的.GLSurfaceView位于android.opengl包类,继承自SurfaceViewpublic class GL
2016-08-10 10:03:47 4789
原创 精彩案例-悬浮在桌面上的照相机
一、简介这个案例就是在桌面上开启一个悬浮窗,悬浮窗里实时显示照相机的内容,可以自由拖动,当在非桌面状态下自动隐藏.如下图所示(): PS:gif都失真了,凑合看,实际中这个窗口是不会闪烁的 我做这个是因为公司项目里在android系统的NavigationBar里显示了行车记录仪,实时录像.我想把类似的思路分享出来.通过这个可以学习TextureView和自定义悬浮窗口的知识.
2016-07-24 20:29:29 8656 5
原创 完全理解Android中的RemoteViews
一、什么是RemoteViewsRemoteViews翻译过来就是远程视图.顾名思义,RemoteViews不是当前进程的View,是属于SystemServer进程.应用程序与RemoteViews之间依赖Binder实现了进程间通信.二、RemoteViews的用法RemoteViews使用最多的场合是通知栏和桌面小插件. 以通知栏为例,讲解下它的用法.1、新建一个Notification这里要
2016-07-16 15:17:18 9805
原创 Android中Intent连接不同组件的原理
一、什么是Intent1、概念Intent翻译过来是”意图、目的”的意思,是连接四大组件的桥梁,作为中介传输信息.2、类型Intent分为两种,显示和隐示.显示需要指定目标组件信息,隐示则只需要指定被目标组件响应的信息(action和category等信息).3、属性component(组件):目的组件 action(动作):用来表现意图的行动 category(类别):用来表现动作的类别
2016-07-11 09:27:01 3318
原创 Java的ClassLoader加载机制
一、ClassLoader的概念Java程序在运行的时候,JVM通过类加载机制(ClassLoader)把class文件加载到内存中,只有class文件被载入内存,才能被其他class引用,使程序正确运行起来.二、ClassLoader的分类 Java中的ClassLoader有三种.1. Bootstrap ClassLoader 由C++写的,由JVM启动.启动
2016-06-29 13:44:53 5164 1
原创 Android系统窗口管理机制简介
一、概述Android系统窗口管理是由WindowManagerService负责实现的.WindowManagerService(后面简称WMS)的代码位于frameworks/base/services/java/com/android/server/wm/WindowManagerService.java.什么是窗口?窗口就是屏幕上的一块矩形区域,可以显示UI和与用户交互
2016-06-28 17:29:10 4641
原创 Android系统启动流程分析之启动应用
继上一篇Android系统启动流程分析之安装应用文章接着分析系统启动应用的过程.Android系统的启动流程简要分析里已经介绍了SystemServer在main方法里创建了一个线程ServerThread,并调用initAndLoop方法加载各种服务,ActivityManagerService(Ams)就是在这里加载的.那么,看下initAndLoop方法里关于AMS的核心代码.1
2016-06-24 17:37:27 1749
原创 Android系统启动流程分析之安装应用
跟随上一篇博客Android系统的启动流程简要分析继续分析android系统的启动.上一篇文章里讲了,SystemServer在main方法里创建了一个线程ServerThread,并调用initAndLoopf方法.ServerThread thr = new ServerThread();thr.initAndLoop();在initAndLoopf方法里加载各种服务,比如Win
2016-06-21 16:35:16 1393
原创 Android系统的启动流程简要分析
一.Android系统的架构介绍Android的整个系统分为四层,从上至下为应用层、框架层、系统库、Linux内核层.1.应用层各种系统应用,比如电话、浏览器、日历等2.框架层也就是Framework层,
2016-06-14 13:54:12 1479
原创 Android4.4-Launcher源码分析系列之搜索框/删除框
一、搜索框/删除框简介搜索框在手机桌面上方,当拖动一个快捷方式图标时就会隐藏搜索框并且显示删除框.如下图所示二、搜索框/删除框布局 屏幕上方的搜索和删除框是在一个布局里,名称为qsb_bar,位于res/layout-port/launcher.xml布局里,如果你的设备是横屏的,那么在res/layout-land/launcher.xml布局里.
2016-06-06 09:25:01 4344 5
原创 Android4.4-Launcher源码分析系列之Launcher界面修改、壁纸替换、图标替换、修改滚动指示器
一、Launcher加载布局的基本流程Launcher界面的内容展现是由default_workspace.xml决定的,它决定了每个屏幕显示的内容和布局.位于res\xml目录下.它是在LauncherProvider里的loadDefaultFavoritesIfNecessary方法进行解析,然后存储到数据库中.LauncherProvider继承自ContentProvider.看下这
2016-06-04 09:32:40 5141
原创 Android4.4-Launcher源码分析系列之Launcher启动简介
一、Launcher的启动首先启动LauncherApplication,这里面只有两行代码,初始化了LauncherAppState,LauncherAppState主要是初始化一些对象,注册广播和内容观察者等.比如你安装程序和卸载程序,里面都会监听这个广播.之后启动Launcher这个Activity,看它的oncreate方法. @Override prote
2016-06-03 21:01:36 1761
原创 Android4.4-Launcher源码分析系列之WorkSpace及屏幕滑动
一.WorkSpace是什么前面已经介绍了一个WorkSpace包含了多个CellLayout,再回忆下之前画过的图WorkSpace是一个ViewGroup,它的布局如下 <com.android.launcher3.Workspace android:id="@+id/workspace" android:layout
2016-06-03 10:46:15 10676 6
原创 Android4.4-Launcher源码分析系列之CellLayout
一.CellLayout是什么在前面的 Android4.4-Launcher源码分析系列之Launcher介绍分析了Launcher的布局,CellLayout继承自ViewGroup,一个Workspace由多个CellLayout组成,每一个CellLayout负责里面图标(favorite)和widget的显示.说白了,我们滑动屏幕的每一页就是一个CellLayout.二、Ce
2016-06-02 09:45:20 3808 1
原创 Android4.4-Launcher源码分析系列之关键的类和接口之DragScroller、DragController
一、DragScrollerDragScroller是一个接口,顾名思义是控制滑动的接口,它定义了4个方法public interface DragScroller { /** * 左滑 */ void scrollLeft(); /** * 右滑 */ void scrollRight(); /** *进入滑动区域
2016-06-01 10:37:25 2133
原创 Android4.4-Launcher源码分析系列之关键的类和接口之DropTarget、DragSource
一、DropTargetDropTarget是一个接口,它定义了一个可以接收被拖动对象的对象,意思是说实现了这个接口的对象是一个可以放置被拖动对象的容器.实现了这个接口的有ButtonDropTarget、Folder、Workspace三个.它内部定义了一个DragObject类,声明了一些与拖动有关的属性 class DragObject { publi
2016-06-01 09:13:29 3694
原创 Android4.4-Launcher源码分析系列之关键的类和接口之DragLayer
一、DragLayer布局上一篇文章分析过Launcher的布局,它是最外层的布局<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher
2016-05-31 19:36:44 3187
原创 Android4.4-Launcher源码分析系列之Launcher介绍
一.Launcher是什么Launcher是启动器的意思,最直观的就是手机上的桌面.其实它是个Activity. public class Launcher extends Activity implements View.OnClickListener, OnLongClickListener, LauncherModel.Callbacks, 它负责管理桌面,包括显示快捷方式,w
2016-05-19 16:08:55 6364
原创 教你学会Android的NDK开发
一.NDK是什么 NDK是Native Development kit的缩写,即本地开发工具包,它支持用C/C++方式来开发Android,而SDK是用Java来开发Android。这样在安卓平台上就实现了Java+C/C++的开发方式。两者可以通过JNI (Java Native Interface)来互相调用。关于它们的关系如下图所示: 二.NDK的作用 1.便
2016-05-14 12:42:22 814
原创 app动态引导页的制作
有一些app的引导页有些特别,不是常规的那种静态图。比如慕课网的引导页 PS:博客上传图片限制在2M以下,只能减少帧数了,所以有点快 我一开始想,这个不就是个gif吗,然后网上看了下Android实现gif的资料,基本都是自定义view然后解码gif,一帧一帧,效果也不是很 理想.于是我就反编译了app,发现这是三个短视频.
2016-05-03 10:51:36 11714 33
原创 android 语音合成的简单实现
语音合成也就是TextToSpeech,简称TTS,即把文本转换成语音的意思。安卓系统自带TTS引擎,默认为Pico引擎,如下图所示:
2016-04-25 20:13:01 6010
原创 高德地图搜索附近的实现
最近项目中有用到搜索附近4S店和加油站的功能,于是我写了个Demo,输入你想查找的内容,就可以显示相关的信息.效果如下: PS:listview中有两个纬度,后一个应该是经度的,不小心写错了名称。 这里使用的是高德地图,先需要去高德SDK网站申请一个key,下载相应的SDK导入工程,需要地图SDK和定位SDK,网站在此,然后配置AndroidManif
2016-04-23 17:04:00 12308 8
自定义悬浮窗显示照相机
2016-07-24
Xposed框架和开发用到的jar包
2016-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人