Android
文章平均质量分 75
xcy2011sky
这个作者很懒,什么都没留下…
展开
-
Android应用层监听home键
在android的开发中,经常会出现应用层监听home键的情况,通过android的源码了解到在应用层时根本无法收到Home键的,因为InputManagerService在按键事件分发的过程中已经被PhoneWindowManager处理掉。根本不会通过InputChannel上报的Android应用的viewRoot中,更不会发送到Activity中。因此需要获取Home键,只能通过间接的方式原创 2015-11-10 11:20:46 · 1363 阅读 · 0 评论 -
Android的内存分析
1.内存分析常见的参数:原创 2014-10-11 14:36:11 · 1194 阅读 · 0 评论 -
SELinux框架
1. 内核架构 SELinux在所有内核资源上提供增强的访问控制,在它目前的格式下,SELinux是通过LSM框架合并到内核中的。 1.1 LSM框架 LSM框架的思想是允许安全模块以插件形式进入内核,以便更严格地控制Linux默认的基于身份的任意访问控制(DAC)安全性。LSM在内核系统调用逻辑中提供了一套钩子(hooks),这些钩子通常放在标准Linux访问检查转载 2014-09-24 16:12:29 · 1117 阅读 · 0 评论 -
Android 异步处理AsyncTask
AsyncTask和Handler对比1 ) AsyncTask实现的原理,和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:l 简单,快捷l 过程可控 使用的缺点:l转载 2014-08-27 10:35:31 · 535 阅读 · 0 评论 -
Java 设计摸索--访问者模式
访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。分派的概念 变量被声明时的类型叫做变量的静态类型(Static Type),有些人又把静态类型叫做明显类型(Apparent Type);而变量所引用的对象的真实类型又叫做变量的实际类型(Actual Type)。比如:Lis转载 2014-08-25 10:45:08 · 805 阅读 · 0 评论 -
Android 的Intent的解析
ActivityAndroid中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期(见http://www.cnblogs.com/feisky/archive/2010/01/01/1637427.html,由系统控制生命周期,程序无法改变,但可以用onSaveInstanceState保存其状态)。对于Activity,关原创 2014-07-30 10:25:11 · 641 阅读 · 0 评论 -
Android的代码同步repo
在工作中的经常使用repo命令,但是有时会忘记一些命令和遇到的一些问题,记录下来方便已经查询。问题1:找不到命令:repo方法:在下载android源码的时候用repo时提示找不到命令,可以用如下方法解决,在命令行中输入如下两行:echo 'export PATH=$PATH:$Home/bin' >>~/.bashrcexport PATH=$PATH原创 2014-05-27 10:44:25 · 3272 阅读 · 0 评论 -
Android的Framework分析---4硬件抽象HAL
android 的HAL硬件抽象层的原理原创 2014-05-22 14:58:09 · 973 阅读 · 0 评论 -
Android Framework 分析---2消息机制Native层
在Android的消息机制中,不仅提供了供Application 开发使用的java的消息循环。其实java的机制最终还是靠native来实现的。在native不仅提供一套消息传递和处理的机制,还提供了自定义文件描述符的I/O时间的监听机制。下面我们从具体代码中分析一下。Native层的关键类:Looper.cpp.该类中提供了pollOnce 和wake的休眠和唤醒集中。同时在构造函数中原创 2014-05-16 12:19:29 · 4442 阅读 · 0 评论 -
PackageManagerService详解
本篇主要分析了系统启动阶段包管理服务的启动流程,其中的几个接口在 apk 安装时也会被调用。包管理服务启动时主要做的工作大致有如下几方面: 1. 建立 java 层的 installer 与 c 层的 installd 的 socket 联接,使得在上层的 install,remove,dexopt等功能最终由 installd 在底层实现 2. 建 立 PackageHa原创 2014-09-03 17:29:23 · 1644 阅读 · 0 评论 -
Android 文件操作
在android中的文件放在不同位置,它们的读取方式也有一些不同。一、资源文件的读取: 1) 从resource的raw中读取文件数据:?1234567891011121314151617181920212223String res = ""转载 2014-11-20 13:49:57 · 677 阅读 · 0 评论 -
交叉编译工具链导致错误
这两天在搞opencl的适合,发现用用之前的交叉编译工具arm-linux-gnueabi-g++ ,一直报如下错误:arm-linux-gnueabi-g++ -fpic -shared -I../include/ -o libOpenCL.so opencl_stubs.c/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../原创 2015-11-06 19:08:51 · 4651 阅读 · 1 评论 -
Android系统添加config.xml 新配置
在日常系统开发中,经常需要在adroid的framework修改原创 2014-11-11 12:56:59 · 10958 阅读 · 1 评论 -
Android framework——Activity的启动和创建
最近学习Android相关知识,感觉仅仅了解Activity几个生命周期函数基本上没有任何意义的;于是想深入了解一下Activity到底是怎么一回事怎么运行来的;里面的东东真是叫个庞大;现在只能简单的了解其框架性的概念和流程;一 Activity概念 Android的核心不是Application而是Activity,至少在我们开发的时候是这样的; Activity就是被用转载 2014-10-11 15:48:51 · 1255 阅读 · 0 评论 -
Android Framework 分析---3PackageManager 分析
Android的PackageManger源码分析原创 2014-05-19 13:30:39 · 3123 阅读 · 0 评论 -
Android 内核安全机制-selinux简介
SELinux 一.简介SELinux全称是Security Enhanced Linux,由美国国家安全部(National Security Agency)领导开发的GPL项目,它拥有一个灵活而强制性的访问控制结构,旨在提高Linux系统的安全性,提供强健的安全保证,可防御未知攻击,相当于B1级的军事安全性能。比MS NT的C2等高得多。SELinux起源于自1980开始的微转载 2014-09-24 15:16:45 · 15939 阅读 · 0 评论 -
Android Framework------之PowerManagerService的功能
自从接触Android系统已经一年多了,这段时间内对于Android系统的Framework层的各个模块都有过接触,有时也做过分析,但是一直没能形成一个总结性的东西。这次下定决心,好好整理整理对于Android系统的学习梳理一下自己的思路。本文一方面是为了自己梳理下知识,文中涉及的内容,基本是拾人牙慧,很少有自己的东西,最多也就算是自己的总结;除此作用之外,如果能为后来者引玉,也算是一点功德吧。这转载 2015-04-13 20:23:57 · 1256 阅读 · 0 评论 -
Android的Framework分析---5 ActivityManager分析
Android的ActivityManager的源码分析原创 2014-05-22 16:24:10 · 4110 阅读 · 0 评论 -
Android系统开发必备知识
1、launcher的布局太居中,要想两边拉伸 apps_customize_pageLayoutPaddingLeft">40dp apps_customize_pageLayoutPaddingRight">40dpapps tab栏的宽度( Launcher2 icon 数目、大小) \packages\apps\Launcher2\res\layou原创 2014-11-11 12:00:27 · 5063 阅读 · 0 评论 -
Activity启动流程
最近学习Android相关知识,感觉仅仅了解Activity几个生命周期函数基本上没有任何意义的;于是想深入了解一下Activity到底是怎么一回事怎么运行来的;里面的东东真是叫个庞大;现在只能简单的了解其框架性的概念和流程;一 Activity概念 Android的核心不是Application而是Activity,至少在我们开发的时候是这样的; Activity就是被用转载 2014-05-22 16:39:03 · 1246 阅读 · 0 评论 -
Android Framework分析 ---- 1消息处理机制 java层
在Android的系统中,无论是App层还是native层都有处理任务需要放在单独的线程处理。各个线程直接的协调处理需要消息传递和处理。本文主要介绍一下Android的消息传递和处理的机制。原创 2012-05-08 14:17:49 · 2400 阅读 · 1 评论 -
Android 查看内存的方法
android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 native+dalvik 不能超过最大限制。android程序内存一般限制在16M,当然也有24M的。 用以下命令可以查看程序的内存使用情况: adb shell du转载 2014-05-21 14:03:13 · 682 阅读 · 0 评论 -
Android安装失败 Installation error code: -110
在系统开发过程中,开发的app管理器,发现怎么安装都是失败。详细的查看了log发现。I/ActivityManager( 899): START {dat=file:///mnt/sdcard/download_cache/1383894436201311081507168927.apk cmp=com.android.packageinstaller/.InstallAppProgre原创 2013-11-14 16:14:39 · 8410 阅读 · 0 评论 -
JNI中jstring 与 const char* 相互转换函数
JNI的类型转换原创 2012-05-08 14:39:22 · 8285 阅读 · 5 评论 -
Android自定义用户数据
首先,在/device/vimicro/v971/目录下新建custom目录,再创建目录overlay\frameworks\base\core\res\res\drawable 在下面放上你要准备替换的默认墙纸default_wallpaper.jpg 然后,在custom目录下创建device_custom.mk文件,在里面写上#设置覆盖目录DEVICE_PACKAGE_OVERLAY原创 2013-11-25 14:17:53 · 915 阅读 · 0 评论 -
Android BaseAadapter 异步加载图片方法
BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件,它是继承自接口类Adapter,1、Adapter类简介1)、Adapter相关类结构如下图所示:自定义Adapter子类,就需要实现上面几个方法,其中最重要的是getView()方原创 2012-05-13 20:28:04 · 2738 阅读 · 0 评论 -
Androd 添加新键值
最近几天,在一个项目项目要求在android设备上添加新的键值。我上网以及和同事交流。终于完成,现在主要介绍一下添加流程。Android添加新的键值主要分为两部分linux和framework层。linux层,主要是红外码和linux的值的映射。主要修改红外接受驱动和linux kernel内的input.h 文件。建议修改input。h中已经定义过的值。修改完成后,替换ko文原创 2012-09-27 15:38:56 · 2910 阅读 · 0 评论 -
HID驱动分析
一:前言继前面分析过UHCI和HUB驱动之后,接下来以HID设备驱动为例来做一个具体的USB设备驱动分析的例子.HID是Human Interface Devices的缩写.翻译成中文即为人机交互设备.这里的人机交互设备是一个宏观上面的概念,任何设备,只要符合HID spec,都可以称之为HID设备.常见的HID设备有鼠标键盘,游戏操纵杆等等.在接下来的代码分析中,可以参考HID的spec.这转载 2013-11-26 21:17:32 · 7971 阅读 · 2 评论 -
Android的源码的多产品分支
我们在日常的项目开发过程中,经常出现同一份源码,编译不同的产品和而且每个产品功能差别不大,只是在android的framework层修改一些地方。下面简单的介绍一下,多个产品分支的做法。1.在创建不同的产品目录例如:在device/xxx/xxx 产品目录。配置该目录下的Android.mk AndroidProducet.mk。2.LINK或者COPY原则(涉及以上第一点的目原创 2013-11-20 13:24:16 · 2746 阅读 · 1 评论 -
Android Drawable 和String 相互转化
在我们经常应用开发中,经常用到将drawable和string相互转化。注意这情况最好用于小图片入icon等。public synchronized Drawable byteToDrawable(String icon) { byte[] img=Base64.decode(icon.getBytes(), Base64.DEFAULT); Bitmap bi原创 2013-11-08 18:50:15 · 14458 阅读 · 2 评论 -
Android开机logo
ndroid(1.5及以上版本) 开机图片/文字/动画分析[转载、修改部分内容] 收藏 Android 开机会出现3个画面: 1. Linux 系统启动,出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片); 2. Android平台启动初始化,出现"A N D R I O D"文字字样画面; 3. Android平台图形系统启动,出现含闪动转载 2013-07-02 17:57:43 · 1416 阅读 · 0 评论 -
Android内核驱动-红外驱动IR
1、概述:对多种红外遥控器的信号进行分析,其发出的红外指令中,引导码各不相同,而且后面的控制指令也有较大差别,甚至指令码的位数也不相同,原因是这些红外设计没有遵守相同的红外标准。但是其基本思想是相同的,即采用不同周期和不同占空比的脉冲分别表示逻辑0及1,只要根据期占空比及脉冲周期进行解析即可得到具体的按键码值。2、协议种类:市面上基本上有如下几大类协议:NEC with sim转载 2013-07-02 17:42:46 · 9539 阅读 · 5 评论 -
如何查看ramdisk.img 的文件
1.file 命令查看文件格式 $ file ramdisk.img uramdisk.img: u-boot/PPCBoot image可以看出它并不是压缩文件,它是一个被添加了头信息的文件2,用dd命令还原 dd if=ramdisk.img of=ramdisk bs=64 skip=1 现在再用file查看: $file ra原创 2014-05-21 14:16:11 · 2716 阅读 · 0 评论 -
Linux的查看文件大小和磁盘大小
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 du可以查看文件及文件夹的大小。 两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。 下面分别简要介绍 df命令原创 2014-05-21 10:46:04 · 1479 阅读 · 0 评论 -
Android 的odex的文件反编译
Android的ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢? 如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反**,因为没有没有dex文件的apk是无**常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无**常导出使用可能想到的原创 2014-05-21 14:13:26 · 3943 阅读 · 0 评论 -
如何解包/编辑/打包boot.img文件
目录1、背景知识2、boot和recovery映像的文件结构3、对映像文件进行解包、编辑、打包的常规方法3.1、另一种解包、编辑、打包的方法4、将新的映像刷回到手机5、解包、编辑、打包为我们带来了什么6、本文讲的内容与使用update.zip刷机包不是一码事正文1、背景知识Android手机的文件系统有许多存储器组成,以下是在adb shell下面的转载 2014-05-21 14:11:40 · 1158 阅读 · 0 评论 -
Android 使用BaseAdapter实现异步图片加载
BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件,它是继承自接口类Adapter,1、Adapter类简介1)、Adapter相关类结构如下图所示:自定义Adapter子类,就需要实现上面几个方法,其中最重要的是getView()方原创 2014-05-19 17:40:31 · 5447 阅读 · 1 评论 -
内核级打印Printk
概述 对于做嵌入式或者熟悉linux内核的人来说,对printk这个函数一定不会感到陌生。printk相当于printf的孪生姐妹,她们一个运行在用户态,另一个则在内核态被人们所熟知。 printk是在内核中运行的向控制台输出显示的函数,Linux内核首先在内核空间分配一个静态缓冲区,作为显示用的空间,然后调用sprintf,格式化显示字符串,最后调用tty_write向终端进转载 2012-05-22 08:27:16 · 1850 阅读 · 0 评论 -
Android开发当中Parcelable接口的使用
对于Android来说传递复杂类型,主要是将自己的类转换为基础的字节数组,Activity之间传递数据是通过Intent实现的。 Android序列化对象主要有两种方法,实现Serializable接口、或者实现Parcelable接口。实现Serializable接口是JavaSE本身就支持的,而Parcelable是Android特有的功能,效率比实现Serializable接口高,而且还可以原创 2013-11-12 10:09:25 · 669 阅读 · 0 评论 -
Epoll模型
1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在 我用的2.6.15-25-386内核中,该值是1024,搜索内核源代码得到:include/linux/posix_types.h:#define __FD_SETSIZE 102转载 2014-05-15 18:05:28 · 550 阅读 · 0 评论