自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (3)
  • 收藏
  • 关注

转载 安卓底层开发学习经验第二十期

这一期我们来学习一下Android  SystemServer所做的事情以及他的一个启动过程。首先我们要明白systemService是我们zygote孵化出来的第一个Android服务程序,而这个服务程序会在他的启动过程中,启动我们所有的Android的核心服务,下面我们来介绍几个主要的服务其中Android systemserver他会派生出下面几个主要服务,首先是我们的电源相

2016-11-30 22:22:46 926

转载 安卓底层开发学习经验第十九期

这一期我们来学习Android bootanim的一个启动过程首先我们来看一下Android bootanim的一个启动过程:首先我们会在init.rc中定义一个bootanim的服务,这个服务在最开始是被disable掉的,是因为我们Android的显示需要依赖于Android系统的surface管理服务,所以我们必须等待整个显示的硬件初始化完成,软件初始化完成,然后才能真正的试用And

2016-11-30 22:15:18 706

转载 安卓底层开发学习经验第十七期

这一期我们来分析一下Zygote是如何在我们的服务中创建一个APP应用的。下面我们来看一下Zygote创建应用我们的zygote再启动过程中,首先会创建一个本地套接字,他就用来接收消息,来创建应用。第二个就是load资源,把资源全部load进来,包括class等。第三就是创建我们的system server,然后这个服务会创建所有的系统服务,并且启动我们第一个lun

2016-11-30 21:08:52 441

转载 安卓底层开发学习经验第十六期

这一期我们来学习Zygote的一个启动过程,以及Zygote是如何启动system_server的下面我们来看一下Zygote服务在启动中做哪些事情首先我们的Zygote服务是被我们的AndroidRuntime这个类所启动的,启动的时候首先要创建一个虚拟机,然后得到我们zygote他的类名和方法,然后去启动我们的zygote服务,在启动过程中我们就会产生我们的第一个j

2016-11-30 21:00:08 404

转载 安卓底层开发学习经验第十五期

这一期我们来学习一下Android的一些基本的服务与Zygote的启动首先我们来看一下在init脚本中配置的一些服务       我们的服务包括netd服务,它主要做的是网络管理,第二个是比较重要的servicemanager,他就是通过一定的机制使我们的client与service服务进行通讯,第三个是我们的surfaceflinge,也就是我们显示的管理,首先要初始

2016-11-30 20:27:44 430

转载 安卓底层开发学习经验第十四期

这一期我们来看一下init进程是如何守护我们的服务我们init进程在守护阶段做的工作有三个,第一个是启动我们的服务,执行我们脚本的命令,第二个是接受shell或系统中的消息,来设置我们系统的prop,第三个就是守护我们的系统服务,如果服务退出,那么就会根据服务的设置状态重启推出的服务下面我们来看一下init进程是如何处理消息与守护服务的这就我们init进程与其他

2016-11-30 20:24:42 415

转载 安卓底层开发学习经验第十三期

这一期我们来看一下我们init进程是如何执行这些脚本,和创建服务、守护服务的。首先来看一下init进程在后期所做的一些工作当我们吧脚本解析完之后,就会把我们的解析结果放到两个结构中,一个是action_list,一个是service_list,在解析完之后我们会使用我们的action_for_each_trigger来将解析脚本中的相关操作添加到我们的action队列中

2016-11-30 17:33:34 535

转载 安卓底层开发学习经验第十二期

下面呢,我们接着上一期的内容来讲解lookup_keyword,下面我们来具体看一下这个函数的实现这个函数就是根据我们传进来的字符串来匹配一个和命令相关的结构体,我们来看一下我们结构体的定义第一个就是一个name,这个name和我们的命令相对应,第二个是我们这个命令所对应的一个函数,第三个对应的是我们args的一个参数,最后一个是结构体所对应的一个类型,我们

2016-11-30 17:11:37 695

转载 安卓底层开发学习经验第十一期

这一期呢,我们主要是学习我们的init进程脚本如何解析我们的启动脚本的,我们init进程做完一些初始化的工作之后就会解析我们的启动脚本,他的启动过程主要分为下面几个部分第一个就是使用init_parse_config_file函数来解析我们的启动脚本,把我们的启动脚本的每一个命令全部解析到我们的一个列表中;第二个就会调用action_for_each_trigger和que

2016-11-30 17:03:54 433

转载 安卓底层开发学习经验第十期

这一期呢我们来学习一下Android的启动脚本,也就是init.rc,那么我们首先来看一下我们的init.rc中都包含有哪些内容我们来看一下init.rc中都包含了哪些内容,先打开init.rc首先是录入了一些其他的脚本,有我们的init.environ.rc 、init.usb.rc等,剩下的就是我们脚本真正所做的内容了,首先是有一个on early-

2016-11-30 16:42:11 733

转载 卓底层开发学习经验第九期

芯灵思开发板INIT守护进程本章主要讲的是芯灵思开发板init守护进程,首先我们来看一下init进程源码的位置,他是放在:system/core/init/init.c ,当我们编译完生成init应用程序后,他会放在:/init下,init是内核起来之后,所启动的第一个进程,我们先将开发板和我们的pc机用USB线连接在一起,然后我们切换到cmd命令下,使用adb命令查看电脑有没有连接到我们

2016-11-30 15:32:32 467

转载 安卓底层开发学习经验第八期

从这章开始,我们来分析Android的一个启动过程的分析我们首先来看一下Android的整个系统的启动分析,首先我们得先给我们的设备通电(Powon),上完电CPU内部会有一个bootloader,这个是在生产的时候就已经烧录好了,它会根据我们的硬件GPIO的一些设置来判断我们的系统是在U盘,SD卡,或者是在内置Flash中启动,然后去引导我们的uboot,我们的ubo

2016-11-30 14:33:21 588

转载 安卓底层开发学习经验第七期

这一期我们继续探索Android.mk ,主要讲的是如何编译jar包,如何编译APK,APK中如何导入jar包和库文件,如何在Android.mk中添加判断语句首先我们看一下如何编译生成APK,下面我们来看一下编译生成APK的主要程序代码:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_F

2016-11-30 14:22:51 477

转载 安卓底层开发学习经验第六期

这一期我们继续学习Android.mk的一些语法,主要讲的是如何引入系统库、如何引入第三方库、如何引入静态库、如何进入头文件首先呢,我们先进入我们的Android目录,配置我们的环境变量 .build/envsetup.sh 配置lunch,我们这里依然选择的是19(这里不再细说)然后进入我们的代码目录,cd external/test/  然后用tree命令看一下代码目录,这个目录下有一

2016-11-30 13:42:24 727

转载 安卓底层开发学习经验第五期

这一期我们还是继续来学习Android.mk,下面我们来思考几个问题:[size=10.5000pt]1.如果说我们一个工程下面有多个源码文件,我们要如何把这些源码文件统一的做个管理,一起来进行编译呢?[size=10.5000pt]2.我们如何在一个.mk文件中编译多个目标文件?[size=10.5000pt]3.如何编译生成一个动态库和静态库我们要将工程下的源码

2016-11-30 11:28:06 537

转载 安卓底层开发学习经验第四期

这一期呢主要讲的是如何编写自己的Android.mk首先呢,我们来看一下Android.mk的作用,如果我们想要在Android的环境下编译生成自己想要的文件,我们可以生成二进制的可执行文件,可以生成动态库、静态库,这是对于C、C++层来说,那么对于我们得java层来说,Android.mk编译生成jar包或者Android.apk这些Android.mk的编写都是我们基于Andr

2016-11-30 11:06:07 705

转载 卓底层开发学习经验 第三期

这一期呢主要讲的是Android编译过程及脚本的分析,主要包括三个方面(1).build/envsetup.sh 的分析  (2)lunch做了什么,如何增加或者删除lunch[size=10.5000pt](3)Android编译命令使用首先呢我们先来看一下Android的编译过程:[size=10.5000pt]1.初始化参数设置[size=10.5000pt]

2016-11-30 10:52:43 806

转载 安卓底层开发学习经验 第二期

这一期呢主要讲的就是安卓开发前的一些环境搭建,首先是有一台Ubuntu的pc机,然后是相关命令的安装,及源码的下载编译,和源码目录的介绍[size=10.5000pt]一、Ubuntu的安装Ubuntu的安装其实就是一个系统的安装,自己只需要去Ubuntu的官网下载一个Ubuntu的iso镜像,然后按照官方的文档进行安装就行了,安装完之后呢我们需要用Ubuntu的sudo apt-ge

2016-11-30 10:16:35 1507

转载 安卓底层开发学习经验第一期

最近想学习一下安卓了,于是在网上买了一块安卓开发板,我买的是芯灵思的开发板,核心板是全志的A31S,感觉性能挺好,而且老板还给了很多的资料,而且还带学习的视频,下面是我在学习完第一期之后的一个经验,希望能跟大家分享一下,也希望各位大神能多多的帮助小弟,小弟在此谢过了。大家可以去芯灵思官方网站看一下安卓开发我们要学习的包括四个部分:[size=10.5000pt]1.安卓开发环境的搭

2016-11-30 10:04:23 4011

转载 安卓底层开发学习经验第十八期

这一期我们学习Zygote在启动过程中的预加载分析与优化下面我们来看一下我们preload加载资源的一个过程我们加载资源分为三种,第一个就是preloadClasses预加载我们的系统类,这个系统类定义的文件是在frameworks/base/preloaded-classes,我们加载的一个过程其实是Class.forName来真正的加载这个类,加载完之后我们就会在zyg

2016-11-30 09:44:57 601

转载 Linux环境下段错误的产生原因及调试方法小结

http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的

2016-11-12 22:58:52 30188

转载 linux 段错误调试方法

1.如果崩溃在程序中,例如  SMH kernel: process_name[32183]: segfault at 24 ip 0000000000412b13 sp 00007fffaab744e0 error 6 in process_name[400000+6e000]   1> 可以通过  addr2line -e process_name 0x412b13 -f   具体定位到源

2016-11-12 22:57:47 767

16位CRC校验原理与算法分析

16位CRC校验原理与算法分析,供使用参考

2014-04-21

单片机外围电路设计PDF电子书

单片机外围电路设计包括基本的基础单片机外围电路设计,还有高级的电路设计

2009-06-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除