2012-04-20 10:10 by Terry_龙, 1898 visits, 网摘, 收藏, 编辑
摘要:在为Android 增加多分区的支持时,可能会需要获得当前 USB 连接的挂载口,可能标准的Android 框架并未提供这样的接口给开发者,这时就需要我们自己为它提供接口了。先来看一下上层(应用)如何得到一个IMountService 的。privatesynchronizedIMountServicegetMountService(){if(mMountService==null){IBinderservice=ServiceManager.getService("mount");if(service!=null){mMountService=IMountService.
阅读全文
2012-04-12 10:09 by Terry_龙, 1742 visits, 网摘, 收藏, 编辑
摘要:上一篇关于Mount的分析,分析了main的作用和一些挂载系统的分析。下面深入分析Mount的流程走法。Mount流程分为两个部分 主动挂载(插入SDCARD或者USB硬盘时系统自动挂载) 手动挂载(卸载SDCARD或者USB硬盘后,再点击加载设备的手动挂载)不同挂载走的流程并不相同,比如手动挂载是由上层发命令给vold 执行挂动作,而主动挂载是由kernel 分命令给vold 再由vold 发挂载消息给上层,上层得到挂载消息和状态后再发命令给vold 执行挂载。主动挂载较之复杂些。不过虽然流程不一样,但最终还是要调用Volume的挂载函数,下面将详细介绍两者的行走的流程。由于...
阅读全文
2012-04-05 11:01 by Terry_龙, 2076 visits, 网摘, 收藏, 编辑
摘要:前段时间对Android 的SDCard unmount 流程进行了几篇简短的分析,由于当时只是纸上谈兵,没有实际上的跟进,可能会有一些误导人或者小错误。今天重新梳理了头绪,针对mount的流程再重新分析一次。本篇大纲 android 系统如何开机启动监听mount服务 默认设备节点在Android 系统的哪个目录 vold.fstab 配置文件的分析 vold 里面启动页面main做了些什么android 系统如何开机启动监听mount服务android sdcard 热插拔监测和执行操作是由一个启动文件vold 所统领的,系统开机会读取初始化配置文件init...
阅读全文
2012-03-22 20:40 by Terry_龙, 1020 visits, 网摘, 收藏, 编辑
摘要:前篇地址Android SDCard UnMounted 流程分析(一)Android SDCard UnMounted 流程分析(二)前一篇讲到SDCard unmout onEvent 发送socket 到框架层,接下来分析框架层得到数据后的流程。MoutService当android 系统启动时,system将MountService 添加到启动服务里面,而MountService 会开启一个线程来运行NativeDaemonConnector,由它来监听vold的消息,代码:mConnector=newNativeDaemonConnector(this,"vold"
阅读全文
2012-03-22 15:47 by Terry_龙, 507 visits, 网摘, 收藏, 编辑
摘要:上一篇讲到通过NetlinkManager发送uevent 命令到NetlinkHandler 的onEvent,代码如下:voidNetlinkHandler::onEvent(NetlinkEvent*evt){VolumeManager*vm=VolumeManager::Instance();constchar*subsys=evt->getSubsystem();if(!subsys){SLOGW("Nosubsystemfoundinnetlinkevent");return;}SLOGD("NetlinkHandler:OnEventsubsy
阅读全文
2012-03-22 14:53 by Terry_龙, 1598 visits, 网摘, 收藏, 编辑
摘要:Android SDCard框架Android SDCard框架,我们修改一般涉及到四大模块 Linux Kernel 用于检测热拔插,作为框架开发者来说,这者不用涉及 Vold 作为Kernel 与 Framework 之间的桥梁 Framework 操作Vold ,给Vold 下发操作命令 UI 与Framework 交互,用于挂载/卸载SD卡框架涉及的源码位置Vold :System/vold 为vold 提供接口:System/Netd 其他涉及的部分:System/core/libsysutils/src Sys...
阅读全文
2012-03-09 15:45 by Terry_龙, 1477 visits, 网摘, 收藏, 编辑
摘要:这是一个关于RenderScript如何使用 Struct 的文章,是学习RenderScript 一个必须要掌握的基础知识点。大纲 如何定义Struct 如何得到指针长度并循环为指针赋值 整体DEMO代码如何定义StructRenderScript 里面定义结构有两种定义方法,参考如下:1.typedefstructtempArray{float2position;floatsize;}Array_T;Array_T*myArray;2.//定义一个structtypedefstruct__attribute__((packed,aligned(4)))tempArr...
阅读全文
2012-03-05 15:23 by Terry_龙, 1040 visits, 网摘, 收藏, 编辑
摘要:RenderScript 不仅可以用来画图,而且可以用来做密集的计算操作。目前的API可以使用到的是利用CPU的核心优势来帮我们做计算。在未来,可能会包括GPU和DSP处理器上做精密计算。创建一个Compute 的RenderScript 下面有一张图详细的介绍了勾划了一个Compute 的 RenderScript:图解:Andriod 有一个RenderScript Compute 的引擎来支持做精密计算,后期google 会不断扩展这个引擎让其支持更多的精密计算如上面提到的GPU、DSP等等,创建Compute RenderScript 同样的也必须写一个.rs 文件,做运行时生成对..
阅读全文
2012-03-02 15:15 by Terry_龙, 1656 visits, 网摘, 收藏, 编辑
摘要:RenderScript 是一种低级的高性能编程语言,用于3D渲染和处理密集型计算(3D播放等和关于CPU密集型的计算)。一直以来Android 在绘图性能的表现一直差强人意,引入NDK之后才有所改善,而在Honeycomb 中发布了RenderScript 这一杀手级在Framework 后,大大的增加了Android 本地语言的执行能力和计算能力。以下是参考一些网上总结的几点:编程语言和可移植性RenderScript 采用了c99语法(标准C来自1999年,最新标准是C11,来自2011年),新的应用编程接口(API)最终编译成原生代码。这意味着做为Android 图形开发者就不得不再系
阅读全文
2012-03-01 13:54 by Terry_龙, 1467 visits, 网摘, 收藏, 编辑
摘要:准备上4.0项目,最近接触API 的时候看到了RenderScript 。通过运行google 那几个项目发现这个真是一个非常不错的API,但是google 所提供的文档非常少,有助于了解计算机图形计算,虽然我们做应用编程的不一定要涉及这块,但涉猎一下总是不错的。RenderScript 是Android 平台上的一种类C脚本语言。要在我们程序上实现RenderScript 渲染功能,最少需要实现的几个功能如下,以一个Hello Wold 为例: helloworld.rs实现RenderScript 的代码 RenderScriptRS.java 一个辅助类,简化操...
阅读全文
2012-02-29 11:04 by Terry_龙, 605 visits, 网摘, 收藏, 编辑
摘要:网上看到的两个比较不错的HTML5文档,保存下来,以备以后查阅。HTML5 Canvas Cheat Sheet关于html5 Canvas的文件,可以用作参考。都是些如何操作canvas的方法和属性用法,还配有详细的图解 aboutHTML5 Canvas Cheat Sheet 详细地HTML 节点标签说明
阅读全文
2012-02-28 10:43 by Terry_龙, 1377 visits, 网摘, 收藏, 编辑
摘要:什么是 Canvas?HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。画布是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法Canvas 对象Canvas 对象表示一个 HTML 画布元素 - <canvas>。它没有自己的行为,但是定义了一个 API 支持脚本化客户端绘图操作。你可以直接在该对象上指定宽度和高度,但是,其大多数功能都可以通过 CanvasRenderingContext2D 对象获得。 这是通过 Canvas 对象的 getContext() 方法并且把直接量字符串 "
阅读全文
2012-02-27 16:26 by Terry_龙, 1423 visits, 网摘, 收藏, 编辑
摘要:继续为上篇的跑道树林添砖加瓦。本篇大纲 加载图像做为树干的背景 为树干实现渐变效果 使用背景图让跑道更加真实 1):使用HTML5的scale功能缩放树木 。2):使用rotate制造倾倒树木的效果 为树木添加阳光照射下的阴影效果 添加文本标题,并为文本增加阴影效果,使用Canvas Shadow API。加载图像做为树干的背景,功能点为:在canvas 中插入图片上篇使用矩形填充颜色的功能为树冠增加树干,但总体效果并不是很理想,达不到真正树木的要求。我们需要一张更带有树皮纹理的图片做为树干,基本的步骤分为: 创建图片对象 为图片...
阅读全文
2012-02-25 13:46 by Terry_龙, 1898 visits, 网摘, 收藏, 编辑
摘要:上篇通过对canvas 画对角线,了解了一些canvas画图基本原理。现在可以利用HTML5 canvas API创建一个场景:带有长跑跑道的树林。本篇大纲 用canvas API绘制树木的树冠 为树冠的边框架加粗并且填充树冠颜色 为树冠创造一个强大的树干 绘制跑道用canvas API绘制树木的树冠原理还是与上篇画对角线一样,只是步骤增多而已,先看代码:<scripttype="text/javascript">functioncreateCanopyPath(context){context.beginPath();context.moveTo(-25,..
阅读全文
2012-02-24 16:13 by Terry_龙, 2207 visits, 网摘, 收藏, 编辑
摘要:自从停博一段时间后,一直在思考特别是今年开年,在想学习什么技术做为未来的技术储备。本来想加强下Android 底层方面的知识,但觉得工作上跟这块有所涉及再学习的话有点懒,由于Windows Phone 7 开发工作上没有涉及,目前也算是入门,未来短时间内不会考虑将其应用于工作选择,故不做考虑。现选择了两个方向为:IOS和HTML5,手上的毛主席相对比较紧还没有买MAC,所以优先选择了HTML5先涉猎一下,以后再考虑精通或者再涉猎IOS,作为未来的技术储备。 关于HTML5的简介和推广者网上一大把资料这里就略过,直接进入主题。 在页面中加入HTML5->canvas 在HTML页面中插入.
阅读全文
2012-02-23 14:40 by Terry_龙, 2039 visits, 网摘, 收藏, 编辑
摘要:Android开发中,我们也会经常遇到段错误,也就是SIGSEGV(11),这个时候libc的backtrace会打印出对应的堆栈信 息,而你看到的仅仅是一对数字,好像无从查起。如下面这一从串断错误:ActivityManager(1105):Displayedactivitycom.android.browser/.BrowserActivity:2460ms(total2460ms)I/DEBUG(13002):************************************************I/DEBUG(13002):Buildfingerprint:'unk..
阅读全文
2012-02-20 10:54 by Terry_龙, 1360 visits, 网摘, 收藏, 编辑
摘要:Loader的特点和使用场所 Loader 可以在Activity 和Fragments 的界面下运行(本篇将结合上篇文章的Fragments的DEMO进行讲述如何在Fragments 下使用Loaders)。 它可以提供类似于AysncTask一样的异步请求数据加载的功能,实际上它就是来源于AysncTask 的扩展并增加了很多人性化的功能,例如加载进度框、更好的控制API等。 它拥有一个类似于Windows Phone 开发的MVVM一样的数据改变通知机制,当数据源做出改变时会及时通知。 当Cursor 发生变化时,会自动加载数据,因此并不需要再重新进行数据...
阅读全文
2012-02-17 14:29 by Terry_龙, 3902 visits, 网摘, 收藏, 编辑
摘要:Fragments 诞生初衷 自从Android 3.0中引入fragments 的概念,根据词海的翻译可以译为:碎片、片段。其上的是为了解决不同屏幕分辩率的动态和灵活UI设计。大屏幕如平板小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出来的空间存放UI使其会产生更多的交互,从而诞生了fragments 。fragments 的设计不需要你来亲自管理view hierarchy 的复杂变化,通过将Activity 的布局分散到frament 中,可以在运行时修改activity 的外观,并且由activity 管理的back stack 中保存些变化。 Frag...
阅读全文
2012-02-07 09:58 by Terry_龙, 2461 visits, 网摘, 收藏, 编辑
摘要:jni 的介绍JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。以下介绍Android 中如何使用jni移植开源库的技巧.JNI日志输出到Logcat中#include <android/log.h>#define LOG_TAG "===xcloud==="#def
阅读全文
2012-01-08 16:40 by Terry_龙, 2603 visits, 网摘, 收藏, 编辑
摘要:packagecom.wireme.activity;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Canvas;importandroid.graphics.Color
阅读全文