- 博客(19)
- 资源 (5)
- 收藏
- 关注
原创 ActivityManagerService分析——AMS启动流程
概述ActivityManagerService启动流程ActivityManagerServicemainint factoryTest函数分析1构造AMS2ActivityThreadsystemMain3ActivityManagerService的main函数总结ActivityManagerServicesetSystemProcess函数分析ActivityManagerS
2016-12-06 23:10:48
4377
原创 Dalvik虚拟机【3】——类加载
概述什么是类加载Dalvik执行应用时流程图Dex文件优化与验证Dex文件解析DexFile数据结构解析流程运行时类加载生成ClassObjectClassObject数据结构加载流程代码分析参考资料概述什么是类加载 Dalvik虚拟机从Dex文件提取一个类的数据以及字节码加载到内存中,这个过程就是类加载。 类加载的输入是Dex文件,输出是内存中的ClassObject
2016-07-16 17:43:19
791
原创 Dalvik虚拟机【2】——Dex文件格式
整个文件的布局文件头索引区string_idstype_idsproto_idsfield_idsmethod_ids数据区class_defclass_data_itemcode_itemdata附录测试用的Dex的java代码参考资料整个文件的布局整个Dex文件可以分成三部分,文件头、索引区、数据区,如下图所示。 文件头 记录Dex文件的概览、包含文件大小、校验
2016-07-16 17:25:55
2366
原创 Dalvik虚拟机【1】——介绍
什么是虚拟机Dalvik虚拟机执行应用流程Dalvik虚拟机的功能Dalvik虚拟机与Java虚拟机的区别什么是虚拟机虚拟机就是一个虚构出来的计算机, 是通过在实际的计算机上仿真模拟各种 计算机功能来实现的。它有自己完善的硬件架构,如处理器、堆栈、寄存器等。Dalvik虚拟机执行应用流程Dalvik虚拟机的功能进程管理 进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的
2016-07-16 17:24:20
450
原创 在Eclipse里利用javah把java代码声明的JNI方法自动生成成C\C++头文件
In Eclipse, open Run | External Tools | External Tools Configurations… Name: MyProject javah Location: ${system_path:javah} Working Directory: ${project_loc}/jni Argument
2013-03-28 14:18:34
1081
原创 在Eclipse中编译Android NDK代码的方法
已经安装好Eclipse、CDT、Android SDK、AndroidNDK (r7)方法:1,在菜单中打开 File | New | Other2,Under C/C++, select Convert to a C/C++ Project and click on Next3,选择当前工程 MyProject, 选择 MakeFile project 和
2013-03-28 14:15:07
560
转载 cocos2d-x屏幕适配原理分析
cocos2d-x作为著名的cocos2d游戏开发框架的C++实现者,最近一年发展迅猛。越来越多的app使用它实现快速多平台部署,从最初的ios,android,win32等到新近的html5,实现移动,客户端到浏览器全覆盖,不得了~~开发移动应用的屏幕适配和爱情一样是一个从洪荒时代就存在的永恒命题,根本目的是实现在不同设备上用户体验的统一。cocos2d-x在cocos2d-2.
2012-12-22 03:03:34
814
转载 cocos2d-x学习笔记-CCSprite(精灵)
cocos2d-x学习笔记-CCSprite(精灵)精灵是游戏中十分重要的组成部分,随处可见,如:游戏背景、NPC、人物、道具等。在cocos2d-x引擎中,只要是用图片展示的,基本上需要使用精灵类。1. 首先来了解一下跟精灵相关的几个类:(1) CCTexture2D可以把它看成一个纹理,它是cocos2d-x渲染图形的重要参数,用来贴图,因为cocos2d-x使用openg
2012-12-14 14:53:34
719
1
原创 cocos2d-x SimpleGame入门例程笔记
一,启动开发环境1,进入cocos2d-x的根目录,启动cocos2d-win32.vc2010.sln, 右键点击“Solution ’cocos2d-win32.vc2010’”,之后选择“Add->New Project” 根据选项创建新工程2,进入cocos2d-x的根目录,启动create-android-project.bat 输入包名字和andro
2012-12-14 14:37:06
1044
原创 Linux驱动程序学习笔记(7)—— 阻塞、POLL
一,阻塞型字符驱动程序1,等待队列的初始化在 Linux 中, 一个等待队列由一个"等待队列头"来管理, 一个 wait_queue_head_t 类型的结构, 定义在中. 可使用以下2种方法对等待队列初始化(1)静态方法,定义并初始化一个等待队列头:DECLARE_WAIT_QUEUE_HEAD(name); (2)动态方法:wait_queue_head_t my_qu
2012-12-01 14:35:41
874
原创 Linux驱动程序学习笔记(6)——ioctl函数的用法
一,函数原型用户空间的ioctl函数原型int ioctl(int fd, unsigned long cmd, ...); 驱动程序里的ioctl函数原型int (*ioctl) (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg);二,实现ioctl函数的方法
2012-11-30 16:55:59
2448
原创 Linux驱动程序学习笔记(5)——新版本的初始化
一,分配设备号1,静态分配设备号int register_chrdev_region(dev_t first, unsigned int count, char *name); first 是你要分配的起始设备编号(包含主和次设备号). first 的次编号部分常常是 0, 但是没有要求是那个效果. count 是你请求的连续设备编号的总数. 注意,
2012-11-27 17:23:11
504
原创 Linux驱动程序学习笔记(4)——使用中断的按键驱动程序
一,难点1,注册用户中断函数int request_irq(unsigned int irq,irq_handler_t handler,unsigned long flags,const char *devname,void *dev_id); 用户(即驱动程序)通过request_irq函数向内核注册中断处理函数,request_irq函数根据中断号找到ir
2012-11-26 14:41:55
1103
原创 Linux驱动程序学习笔记(3)——点亮LED
一,难点1,ioremap 和 iounmap要操作硬件,首先要操作相关IO寄存器,知道寄存器的物理地址后,要经过Io映射到虚拟地址里才可以使用,所以要用到ioremap 和 iounmap两个函数。(1)void __iomem * ioremap (unsigned long phys_addr, unsigned long size),第一个参数为物理地址,第二个参数为要映
2012-11-24 19:38:10
665
原创 遇到的一些问题
(1)目标板的linux系统的shell上 insmod 等命令不存在查看 ls -l /bin 发现没有insmod 但是查看 ls -l /sbin发现有insmod解决方法在etc目录下init.d目录下的rcS里面添加如下内容PATH=/sbin:/bin:/usr/sbin:/usr/binrunlevel=Sprevlevel=Numask 022exp
2012-11-23 13:42:00
306
原创 Linux驱动程序学习笔记(2)——自动创建设备文件
PS:内核版本为2.6.22.6,我的mini2440开发板使用的是韦东山视频上的系统内核1,声明结构体class指针变量和结构体class_device指针变量 (注意是 结构体指针)static struct class *firDrv_class;static struct class_device *firDrv_class_device;2,在加载模块初试函数里先
2012-11-23 13:35:47
545
原创 最简单的点亮LED灯驱动程序
一,驱动程序:#include #include #include #include #include #include #include #include #include #include #include #include #define GPBCONADDR 0x56000010 //GPBCON物理地址#define GPBDATADDR 0x56000
2012-10-08 23:25:00
1323
转载 linux2.6.32 class_device_create
之前写的字符类设备驱动,没有自动创建设备节点,因为只使用了register_chrdev()函数,只是注册了这个设备。然后在系统启动后,就要自己创建设备节点mknod,这样虽然是可行的,但是比较麻烦。于是想在__init函数里面,自动创建设备节点。 经过查阅资料,发现创建设备节点使用了两个函数 class_create()和class_device_create(),当然在__ex
2012-10-08 01:23:16
589
原创 Linux驱动程序学习笔记(1)
一,编写驱动程序的大概过程 (1)构造file_operations结构中要用到的各个成员函数(write,open,ioctl等等)(2)编写加载模块的初始化函数和退出函数,在初始化函数里注册驱动程序 (3)声明初始化函数和退出函数二,最简单的驱动程序例子#include #include #include #include #include #inclu
2012-10-07 21:57:36
666
图解Spark核心技术与案例实战.pdf 完整高清扫描版
2018-02-07
Pro.OpenGL.ES.for.Android pdf
2012-05-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人