自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android P zygote 原理分析之SystemServer的启动

SystemServer 在android中的核心服务之一,系统中的大多数服务都运行在这个进程,所以当zygote 启动后第一个启动的就是SystemServer ,因为SystemServer 的重要性,如果SystemServer启动失败或者中间出现异常导致崩溃,都会引起Zygote 的自杀,zygote的自杀将会引起init进程杀死所以子进程,然后重启zygote ,导致android上层重...

2018-11-18 12:00:59 235

原创 Android P zygote 原理分析之app_process

Android系统内核初始化完毕后,进入用户空间启动的第一个进程叫init 他是Android系统所有进程的祖先,这个进程启动后会初始化文件系统,然后养育很多娃,比如系统中许许多多的服务,其中有一个服务名字就叫zygote ,zygote 翻译过来其实就叫做受精卵,它应该是init的所有娃中比较特殊的一个,其他的娃多大是一些底层服务,而zygote 这个娃的特殊之处在于它负责启动java虚拟机,并...

2018-11-10 23:08:13 2709

原创 Android P property_service 分析

android 系统的属性贯穿整个系统,可以说是android 系统的重要特性之一,属性有很多作用比如启动服务,因为属性在android系统中是全局的,所以任何一个进程都可以读取,但是却有权限的控制,早期版本对于属性的读取都是可以的,但是写入却要按照用户组权限来控制。最新的版本所有的属性的读取和写入必须满足selinux的控制,因此安全性更高。早起版本的属性在init中初始化,并且建立sock...

2018-11-04 20:31:16 608

原创 双屏双触控

frameworks/base/services/input/EventHub.cpp

2017-02-20 15:15:55 957

原创 android 空中OTA升级

android完整包升级,包括本地升级和网络升级。 本地升级比较简单,选择升级包后调用系统api RecoverySystem.installPackage函数开始升级。 网络升级主要设计上传更新包和下载更新包。升级方式跟本地升级一样。 如果需要OTA 查分升级,可以研究一下RecoverySystem.installPackage函数。

2016-09-18 13:42:23 753

原创 android 4.4 授信安装

android4.4 授信安装,只能安装指定证书的应用 如果打开设置–>安全–>验证应用 后,系统在安装apk时默认会检查系统中是否存在符合条件的广播接受者,然后发送apk信息。这个广播接受者可以完成验证安装。 我们的思路是在系统中新建一个ContentResolver 用于存储系统中支持的应用证书信息。apk安装的时候会查询并校验apk。确定是否同意安装。 packageManagerSer

2016-08-31 16:02:58 1258

原创 Android 5.1 SystemUI 状态栏修改

由于工作需要,希望修改android5.1的SystemUI,默认Android5.1的SystemUI状态栏,下滑的时候,只会出现的屏幕中间的。不管你下拉从屏幕顶端哪里下滑状态栏。我们需要状态栏出现的位置由下滑的位置决定,因为我们的机器是15.6寸的,所以必须这样修改。 android5.1SystemUI的statusBar 实际上主要布局文件是super_status_bar.xml

2016-07-29 18:03:27 7327 1

原创 Android1.6 启动init.c分析

android的启动大致分为6步 第一步:上电后boot启动 第二步:boot启动内核 第三部:内核运行根目录下的init,加载init.rc 第四部:init 启动启动各个service 包括servicemanager,vold,mount等,然后启动papp_process -Xzygote 启动java虚拟机。 第五步:zygote启动SystemServer,然后由System

2016-05-29 21:04:47 403

原创 busybox 中文支持--记录

高版本的busybox 的中文支持,需要修改两个文件,libbb/printable_string.c 和libbb/unicode.c 把打印问号的那几行个注释掉。然后修改配置 support Unicode 下面的Range of supported unicode characters 调大一点,我直接改为 0xffff 就是65535 因为中文最低就是0x7f 所以不能显示。参考 ht

2015-02-06 16:57:29 468

原创 安卓 hal 串口驱动学习。。。

安卓是一个基于linux的系统,说的明白点其实安卓就是linux的应用程序。只是它对linux进行了封装。最底层的内核 其实并没有什么变化,开发安卓的驱动,最底层的跟linux没有任何分别。差别就在这个驱动要让java虚拟机里面跑的应用程序调用,并且正常使用。在安卓里实现的方法是 hal jni server  然后是客户端。这个hal曾其实就是典型linux平台下的操作底层驱动的编程。可以理解为

2014-12-16 17:32:03 1308

原创 atomic_add_return 函数分析

这个函数实现原子的加操作,并同步。

2014-10-21 23:20:25 2925

原创 tick_init 函数分析。。。

static struct notifier_block tick_notifier = {.notifier_call = tick_notify,};/** * tick_init - initialize the tick control * * Register the notifier with the clockevents framework */

2014-10-19 21:53:45 999

原创 MACHINE_START 调用 系统初始化 分析

我们的在arch 目录下可以看到很多的板级支持包  核心的就是

2014-10-18 16:17:34 545

原创 container_of 分析 记录

#define container_of(ptr, type, member) ({ \const typeof( ((type *)0)->member ) *__mptr = (ptr);\(type *)( (char *)__mptr - offsetof(type,member) );})这句话的const typeof( ((type *)0)->member )

2014-10-17 16:22:26 402

原创 自旋锁 spin_lock 分析

static inline void spin_lock(spinlock_t *lock){raw_spin_lock(&lock->rlock);}

2014-10-17 11:05:49 435

原创 sunxi A20 内核源码阅读笔记---记录

今天我决定阅读sunxi a20 cubian的linux内核源代码,首先一头雾水,不知从何开始读起,

2014-10-16 21:54:41 814

原创 patch 去除补丁。。

patch -RE -p0

2014-07-16 18:03:32 1232

原创 i.MX6qSabreLite内核源码阅读笔记-----mx6q_sabrelite_init_uart 分析

内核uart初始化的启动代码如下:static inline void mx6q_sabrelite_init_uart(void){imx6q_add_imx_uart(0, NULL);imx6q_add_imx_uart(1, NULL);}这个函数初始化了 uart 0 和

2014-07-12 01:32:45 2022

原创 i.MX6qSabreLite内核源码阅读笔记-----board-mx6q_sabrelite.c 分析----2

现在我们逐行分析mx6_sabrelite_board_init 里的内容

2014-07-07 16:10:57 2284

原创 i.MX6qSabreLite内核源码阅读笔记-----board-mx6q_sabrelite.c 分析----1

这个文件是sabrelite板子的bsp支持文件。大致阅读分析如下,记录

2014-07-07 15:06:13 5499

原创 a20 和imx6q

用过a20 也用过imx6q,我自己感觉a20 本地化一点,imx6q技术支持好一点,a20是双核的,imx6q是四核的,a20gpu使用mile400mp,imx6q 用viv,我感觉不出来这两个gpu的差距。就支持度来说,a20的gpu和摄像头硬解码对linux的支持不够好,imx6q对linux的支持比a20强多了,各大论坛,各个服务社区的a20技术资料对3d和硬解码的资料少之又少,或者不够

2014-05-26 22:44:51 2843

原创 cadence学习之旅

cadence是一款非常复杂,非常强大的pcb设计软件。比以前学习的99se ad10 要难太多了,如果99se是

2014-05-26 22:26:49 949

原创 ubuntu 13.10 搭建 嵌入式 debian 交叉编译工具

debian 交叉编译工具构建

2014-03-24 10:56:08 1589

原创 EETI_eGTouch cubieTruck 配置实用 linux-3.4.61

diff --git a/drivers/input/touchscreen/usbtouchscreen.c b/drivers/input/touchscreen/usbtouchscreen.cindex e32709e..721fdb3 100644--- a/drivers/input/touchscreen/usbtouchscreen.c+++ b/drivers/inp

2014-01-13 12:20:09 2319

原创 cubieTruck 移植qt4.8+opengl_eglfs+3d效果显示

由于项目原因,我们要用到qt下的3d,刚开始使用三星的6410,后来使用三星的210,但是都不行,linux下的gpu驱动都是没有的,也许有但是我没有找到。后来采用全志的a20开发板,采用a20开发板就是一个悲剧的开始,这个开发板,说的很好,但是没有具体的技术 支持,技术论坛发表问题,也没人回。好在用的人挺多的。采用这块开发板主要由于他有linux下的gpu驱动。但是当我移植qt的opengl的时

2014-01-08 17:50:41 3687 1

原创 qt ok6410 gprs模块发送中文短信

ok6410自带的模块没有发送中文短信的测试程序,里面的测试程序时text模式的只能发送英文短信,由于工作中用到这个模块,而且需要发送中文短信,经过一段时间的调试,而且在网上找了很多的资料,终于调试通过了,现在把代码贴出来,记录一下。发送中文短信,其实只有几步,使用串口发送AT+cmGF=0 回车,at+cmgs=发送的长度 然后就是pnone+unicode的短信内容了。代码如下:#in

2013-08-26 18:17:29 1394

原创 _CRT_SECURE_NO_DEPRECATE

use _CRT_SECURE_NO_DEPRECATE         项目|属性|配置属性|C/C++|命令行|附加选项,加入【/D "_CRT_SECURE_NO_DEPRECATE" 】(注:加入中括号中完整的内容)

2013-01-03 12:21:38 672

原创 wince 驱动 双屏lcd解决方案--我的工作经验记录

我是一个刚毕业的学生,走进了嵌入式行业。我的第一份工作是在一家做会议系统的公司做软件开发,我本来在学校是读电子的,其实我感觉我更能做好一个硬件工程师,因为我没有学过c++,java,操作系统原理,编译原理等等,但我学过模拟电子,数字电子,电机学,电磁论等等,但是选择了做一个嵌入式软件工程师我就不得不,不停的学习新东西。为此感觉很开心,刚开始到这个公司做了我踏入社会第一个产品,双面桌牌。这个桌牌是具

2012-12-30 19:13:49 1260 1

原创 wince6.0 ok6410超频800MHZ

修改文件:platform\common\src\soc\s3c6410_sec_v1\oal\inc\Soc_cfg.h和 platform\common\src\soc\s3c6410_sec_v1\oal\inc\S3c6410.inc文件

2012-10-16 18:45:30 565

原创 linux 3.1.4 移植 mini2440 在终端上没有打印信息

make menuconfigkernel features---->>>* provide old way to pass kernel parameters配置了这个选项 就可以了。。

2012-08-31 13:10:17 477

原创 关于 ok6410sd卡usb不能烧写的问题

更改dnw的地址为50030000 就可以了。诶!手册里都没说清楚。

2012-08-21 16:06:30 1451

tq2440 wince qt程序 开机启动

tq2440 wince 开机启动 qt程序--个人学习记录

2012-08-03

mini2440 wifi驱动移植 linux-3.1.5

本人移植wifi驱动过程 使用内核3.1.5

2012-02-09

基于stc125a60s2 ucos ii 移植

基于stc12c5a60s2 单片机的ucos ii 多任务操作系统

2011-07-24

qt4 手写输入法 可以在任何平台上移植

基于qt4.5的手写输入法,可以在任何平台上移植。

2011-05-13

qt4.5 拼音输入法 在tq2440上移植成功

在qt4.5 拼音输入法在tq2440上移植成功

2011-05-05

空空如也

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

TA关注的人

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