Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Android中的2D引擎skia之 -- SkBitmap的内存管理分析

Android中的2D引擎skia之 -- SkBitmap的内存管理分析

Android使用的2D图形引擎skia,是一个高效的2D矢量图形库,google已经把skia开源:http://code.google.com/p/skia/。SkBitmap是skia中很重要的一个类,很多画图动作涉及到SkBitmap,它封装了与位图相关的一系列操作,了解它的内存管理策略有助于我们更好的使用它,了解它的初衷是要想实现对skia中的blitter进行硬件加速。1. SkBitmap的类结构:2. SkBitmap的内嵌类Allocat...
JNI (Java Native Interface)是什么

JNI (Java Native Interface)是什么

JNI是Java Native Interface的缩写。从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。 使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧...
Android学习笔记2——布局与事件响应

Android学习笔记2——布局与事件响应

Andorid的界面,需要写在res/layout的xml里面,一般情况下一个xml对应一个界面。做Android的界面有点像写html(连注释代码的方式都一样),要先给android定框架,然后再在框架里面放控件,android提供了几种框架,AbsoluteLayout,LinearLayout,RelativeLayout,TableLayout,FrameLayoutFrameLayout:里面只可以有一个控件,并且不能设计这个控件的位置,控件会放...
Android AsyncTask理解

Android AsyncTask理解

AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦。阅读AsyncTask的源码可知,AsyncTask是使用java.util.concurrent 框架来管理线程以及任务的执行的,concurrent框架是一个非常成熟,高效的框架,经过了严格的测试。这说明AsyncTask的设计很好的解决了匿名线程存在的问题。 AsyncTask是抽象类,其结构图如下图所示: AsyncTask定...
分析Android动画模块之Tween动画

分析Android动画模块之Tween动画

Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果;第二类是 Frame 动画,即顺序播放事先做好的图像,跟电影类似。本文分析了 Tween 动画的实现原理。 主要思路Tween 动画通过对 View 的内容完成一系列的图形变换 (包括平移、缩放、旋转、改变透明度)来实现动画效果。具体来讲,预先定义一组指令,这些指令指定了图形变换的类型、触发时间、持续时间。这些指令可以是以 XM...
Linux下另类内存缓冲池设计(CBufferPool)

Linux下另类内存缓冲池设计(CBufferPool)

本文所说的缓冲池的构建与一般的开辟一个大的内存,需要申请内存时就直接在该大内存中再划分出小内存出来使用不同,CBufferPool使用的是队列链表,程序按出队/入队的方式对内存进行读写.设计该类的目的是因为在需求中,我有一个写入线程和一个读取线程,读取线程会挨个读取写入线程写入的数据,于是想到使用队列,按先入先出的方式可以顺序读取已写入的数据,由于考虑到可能需要动态增加队列的大小,故采用了环形链表形式的队列.第一个问题解决,即决定了所要使用的数据结构--环...
Android Launcher——UI框架

Android Launcher——UI框架

这是我正在研究的一个800*480的launcher的ui框架图,对应的桌面显示效果如下:下面一行应用是我修改桌面后的结果,在前面我的ui框架图中没有。闲话不多说,下面就一一做出讲解1.DragLayer--DragLayer继承FrameLayout,并在此基础上组合了DragController实现拖放功能,DragLayer主要监听下面两个用户事件onInterceptTouchEventonTouchEvent交给DragController进行处...
Android workspace分析

Android workspace分析

在Workspace.Java类实现,相关方法有:1) computeScroll():重写了父类的computeScroll();主要功能是计算拖动的位移量、更新背景、设置要显示的屏幕(setCurrentScreen(mCurrentScreen);)。2) dispatchDraw():重写了父类的dispatchDraw();主要功能是判断抽屉是否打开、绘制指定的屏幕,可以绘制当前一屏,也可以绘制当前屏幕和下一屏幕,也可以绘制所有的屏幕,这儿的绘制...
Android开发学习 : 多点触摸

Android开发学习 : 多点触摸

其实多点触摸并没有想象中的那么神奇。处理2个手指一般就已经够用,放上3个手指显得有点滑稽,依赖更多手指进行操作绝对不是一个好的主意。 理论上 Android可以处理 多达256 个手指的触摸,大概只有章鱼哥能享受这种技术带来的便利。就编程人员来说,编写多点触摸和单点触摸的方式几乎一模一样。其奥秘在于MotionEvent不仅可以封装单点触摸的消息,也可以封装多点触摸的消息。在处理单点触摸中,我们用到MotionEvent.ACTION_DOWN、ACTIO...
Android对图片的压缩读取和保存

Android对图片的压缩读取和保存

在开发图片浏览器等软件是,很多时候要显示图片的缩略图,而一般情况下,我们要将图片按照固定大小取缩略图,一般取缩略图的方法是使用BitmapFactory的decodeFile方法,然后通过传递进去 BitmapFactory.Option类型的参数进行取缩略图,在Option中,属性值inSampleSize表示缩略图大小为原始图片大小的几分之一,即如果这个值为2,则取出的缩略图的宽和高都是原始图片的1/2,图片大小就为原始大小的1/4。 然而,如果我...
基于 Android NDK 的学习之旅-----Java 调用C

基于 Android NDK 的学习之旅-----Java 调用C

随便谈谈为什么要Java调用C 吧:我认为:1、 有些公司开发Android项目的时候, 许多组件功能可能是C中已经实现了,所以我们没必要同样的功能又在java中实现一遍。例如我之前做的一个项目,公司C引擎已经很成熟了,所以直接在java中封装好接口,由C去实现。2、 C的速度一般是java的10-20倍把,有些对速度要求高的就需要在C中实现。例如我以前在Android项目中有要求批量(10000++)生成MD5的值,由于测试对java中直接生成的效果不满...
<< 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 >>