每日心得
文章平均质量分 80
TheGameIsFives
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 字符串string操作
相比于C语言而言,C++提供了太多的写好了的类型和方法,其中string类型就是用起来特别方便的一种。那么问题来了,既然有C语言的char型,为什么还要学习string类型呢?我碰到过的也是最主要的一个原因就是string类型更节省空间,用多少开多少,而char类型的数组就不是了,必须开最大值。其次还有一个重要的原因就是C++中的map容器等不支持char型数组的,只能写map<string...转载 2020-04-19 16:25:53 · 547 阅读 · 0 评论 -
Zygote Service
在本章我们会接触到这两个单词:Zygote [生物] 受精卵, 接合子, 接合体Spawn:产卵通过这两个单词,我们就可以大体知道Zygote是干什么的了,就是叫老母鸡下蛋。通过“Zygote”产出不同的子“Zygote”。从大的架构上讲,Zygote是一个简单的典型C/S结构。其他进程作为一个客服端向Zygote发出”孵化”请求,Zygote接收到命令就“孵化”出一个Acti转载 2013-11-01 17:17:43 · 848 阅读 · 0 评论 -
Android 启动过程详解
Android从Linux系统启动有4个步骤;(1)init进程启动(2)Native服务启动(3)System Server,Android服务启动(4)Home启动总体启动框架图如: 第一步:initial进程(system\core\init) init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,转载 2013-11-01 17:00:48 · 718 阅读 · 0 评论 -
Android核心分析: Service深入分析
上一章我们分析了Android IPC架构,知道了Android服务构建的一些基本理念和原理,本章我们将深入分析Android的服务。Android体系架构中三种意义上服务: Native服务 Android服务 Init空间的服务,主要是属性设置,这个IPC是利用Socket来完成的,这个我将在另外一章来讨论。Navite服务,实际上就是指完全在C++空间完成的服务,主要转载 2013-11-01 16:40:33 · 759 阅读 · 0 评论 -
Android : 基本空间划分 & IPC框架分析
一些概念1. Andoird AIDLaidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/docs/guide/developing/tools/ai转载 2013-11-01 15:52:36 · 2180 阅读 · 1 评论 -
UML类图关系大全
1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。转载 2013-10-31 16:11:34 · 885 阅读 · 0 评论 -
在Android4.2.2中添加对exFAT文件系统的支持
原文: http://blog.sina.com.cn/s/blog_3e4774e30101mhfk.html最近在自己做的Android4.2.2系统ROM,发现使用64GB的TF卡无法识别到,查看了下格式化后的文件系统格式,发现原来不再是以前的FAT32了,而是exFAT,该文件系统能支持超过4GB的单个文件,查了一下相关系统,Linux系统对于NTFS和exFAT的支持,暂时还是在转载 2013-10-31 13:37:19 · 28310 阅读 · 1 评论 -
ARM汇编: ldr与mov 、 b与bl
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地原创 2013-10-25 15:32:42 · 1922 阅读 · 0 评论 -
linux- API
kernel 3.4 中没有vfs的实现了,都是用sysfs. linux所有操作都是通过文件方式的, 所以API定义都在fs/目录下: SYSCALL_DEFINE来定义的原创 2013-10-24 14:36:04 · 791 阅读 · 0 评论 -
cpuidle—Do nothing, efficiently. . .
Processor power management can be broadly classifiedinto two classes.Processor active – various states a processor can be inwhile actively executing and retiring instructions.Processor frequen转载 2013-10-24 10:19:33 · 1000 阅读 · 0 评论 -
android的ram console(目前没有使用)
android的ram console是一个辅助调试的内核机制,它用一段物理内存虚拟一个console设备,这样printk的时候会把调试信息写一份到这块ram,最后通过/proc文件系统输出。Ram console 类似于普通的串口console, printk()的内部实现都是向已注册和打开的console输出信息的,console可以基于串口实现,当然也可以基于内存实现,区别是数据流转载 2013-10-24 14:31:39 · 3335 阅读 · 0 评论 -
atomic_cmpxchg
1424 while (atomic_cmpxchg(&kgdb_active, -1, cpu) != -1) 1425 cpu_relax(); atomic_cmpxchg()函数实现了一个比较+交换的原子操作(原子就是说cpu要不就不做,要做就一定要做完某些操作才能干别的事情,对应这里就是比较和交换要一次过做完).atomic_cmpxchg()比较kgdb_activ原创 2013-10-24 14:03:49 · 4052 阅读 · 1 评论 -
EMMC pre-defined && open-ended
In order to start a multiple block read with pre-defined block count the host mustuse the SET_BLOCK_COUNT command (CMD23) immediately preceding theREAD_MULTIPLE_BLOCK (CMD18) command. Otherwise th原创 2013-10-24 13:59:18 · 1905 阅读 · 0 评论 -
android USB绑定(待补充)
android2.3添加usb绑定菜单: 1. ro.tether.denied=false,可以在device/sec/products/sec_smdkc210.mk中加2. frameworks/base/core/res/res/values/config.xml "usb.*" "eth\\d"原创 2013-10-24 13:48:17 · 1384 阅读 · 0 评论 -
Uboot 设置启动参数
setenv bootcmd ' '注意单引号。。。。显示cmd:print原创 2013-10-24 13:46:10 · 1268 阅读 · 0 评论 -
Android GWES 消息系统
Android GWES基本框架篇 我这里的GWES这个术语实际上从Microsoft 的Window上移植过来的,用GWES来表示Android的窗口事件系统不是那么准确,在Android中Window是个弱化了的概念,更多的表现在View这个概念上。在很大程度上,Android的View的概念可以代替Microsoft Window这个概念,有点和Microsof暗中较劲的意味,你转载 2013-11-05 11:37:50 · 870 阅读 · 0 评论 -
Android GWES之Android窗口管理
Android GWES之Android窗口管理1基本构架原理 Android的窗口管理是C/S模式的。Android中的Window是表示Top Level等顶级窗口的概念。DecorView是Window的Top-Level View,这个View我称之为主View,DecorView会缺省的attach到Activity的主窗口中。主View被加入到WindowManage转载 2013-11-05 13:45:56 · 897 阅读 · 0 评论 -
Android输入系统
依照惯例,在研究Android输入系统之前给出输入系统的本质描述:从哲学的观点来看,输入系统就是解决从哪里来又将到哪里去问题。输入的本质上的工作就是收集用户输入信息并放置到目标位置。 Android在源代码分类上,并没有输入系统分类。本章的输入系统研究是一个综合的分析,前面的GWES的分析,特别是View的Focus Path以及Window Manager Proxy是本章分析的基础,如转载 2013-11-05 13:56:11 · 1073 阅读 · 0 评论 -
fork,vfork,clone创建子进程用法
fork,vfork,clone都是linux的系统调用,用来创建子进程的(确切说vfork创造出来的是线程)。先介绍下进程必须的4要点:a.要有一段程序供该进程运行,就像一场戏剧要有一个剧本一样。该程序是可以被多个进程共享的,多场戏剧用一个剧本一样。b.有起码的私有财产,就是进程专用的系统堆栈空间。c.有“户口”,既操作系统所说的进程控制块,在linux中具体实现是task_st转载 2014-12-07 20:57:15 · 1377 阅读 · 0 评论 -
心有猛虎 细嗅蔷薇
呵呵原创 2014-04-22 15:08:02 · 1029 阅读 · 0 评论 -
android UEventObserver
UEventObserver是Android Java层利用uevent与获取Kernel层状态变化的机制。通过grep发现framework有如下模块使用UEventObserver的功能来提供服务:电池状态:services/java/com/android/server/BatteryService.java耳机状态:services/java/com/android转载 2014-04-23 09:00:36 · 1062 阅读 · 0 评论 -
devfreq
A device may have a list of frequencies and voltages available. devfreq, a generic DVFS framework can be registered for a device in order to let the governor provided to devfreq原创 2014-03-18 15:14:42 · 2977 阅读 · 0 评论 -
spinlock
spinlock本身是原子操作的。会禁用抢占和避免multi-core竞争.它不能长期持有。1. spinlock哪些场合需要?不能进入睡眠的情况下: 中断处理中,tasklet中。还有有些很短的临界区,如果用信号量,会有进程睡眠和再次唤醒,代价很高,可以用spin_lock.使用时要先初始化: SPIN_LOCK_UNLOCKED2. 为什么用户空间不需要spinlock原创 2013-05-23 13:05:45 · 1153 阅读 · 0 评论 -
Linux进程的睡眠和唤醒
今天查看mmc驱动,发现关于下面的进程状态的设置:static int mmc_queue_thread(void *d){ struct mmc_queue *mq = d; struct request_queue *q = mq->queue; current->flags |= PF_MEMALLOC; down(&mq->thread_sem); do {转载 2013-05-15 15:15:29 · 1081 阅读 · 2 评论 -
Debugfs的使用简介
DebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据。类似的虚拟文件系统还有procfs和sysfs等,这几种虚拟文件系统都并不实际存储在硬盘上,而是Linux内核运行起来后才建立起来。通常情况下,最常用的内核调试手段是printk。但printk并不是所有情况都好用,比如打印的数据可能过多,我们真正关心的数据在大量的输出里不是转载 2014-02-10 14:46:42 · 1153 阅读 · 0 评论 -
repo & get andoird souce code
android 4.3源码下载【自己下载成功的步骤、其中遇到很多你可能会遇到的很多问题】作者:haojunming更新于 09月15日访问(1303)评论(0)[html] view plaincopy 1 2 3 4 5 6 7 8 91011jianguoliao@jianguoliao-Lenovo-IdeaPad-Y4转载 2014-02-24 10:16:39 · 6835 阅读 · 1 评论 -
ftrace 简介
ftrace 简介ftrace 的作用是帮助开发人员了解 Linux 内核的运行时行为,以便进行故障调试或性能分析。最早 ftrace 是一个 function tracer,仅能够记录内核的函数调用流程。如今 ftrace 已经成为一个 framework,采用 plugin 的方式支持开发人员添加更多种类的 trace 功能。Ftrace 由 RedHat 的 Steve Rost转载 2014-02-10 14:52:05 · 869 阅读 · 0 评论 -
DIFF 与 PATCH命令使用
diff -uprN a/ b/ >cpatch -p1 patch -p0 -p NUM --strip=NUM Strip NUM leading components from file names.原创 2013-10-24 10:37:22 · 938 阅读 · 1 评论 -
Android Application
Android Application Android提供给开发程序员的概念空间中Application只是一个松散的表征概念,没有多少实质上的表征。在Android实际空间中看不到实际意义上的应用程序的概念,即使有一个叫Application的类,这个也就是个应用程序上下文状态,是一个极度弱化的概念。Application只是一个空间范畴的概念,Application就是Activit转载 2013-11-11 11:12:26 · 874 阅读 · 0 评论 -
android4.0触摸屏滑鼠模式解决方法-添加idc文件
原文地址: http://my.oschina.net/f839903061/blog/85183最近在调试A10开发板-android4.0的触摸屏,因为最开始的时候只有鼠标管用,触摸屏是不管用的 当我们点击触摸屏的时候,终端是有数据显示的,但是就是在显示器上面没有响应操作 我们那时用的是触摸屏的接口是4pin连接线(专业术语不知道是什么),搞了很久也没高通,移植tslib什么的转载 2013-11-07 10:51:11 · 1155 阅读 · 0 评论 -
Android应用程序框架之无边界设计理念
Android应用程序框架1 无边界设计理念 Android的应用框架的外特性空间的描述在SDK文档(http://androidappdocs.appspot.com/guide/topics/fundamentals.html#acttask)有十分清楚的描述,Android应用的基本概念,组件生命周期等等有详细的描述。在外特性空间中,Android提供了Activity,Servic转载 2013-11-06 13:12:26 · 1307 阅读 · 0 评论 -
android应用安装路径默认设置
adb shell pm setInstallLocation 2 设置应用默认安装路径到sd卡原创 2013-10-24 10:42:33 · 1219 阅读 · 0 评论 -
关于Linux文件权限
444 r--r--r--600 rw-------644 rw-r--r--666 rw-rw-rw-700 rwx------744 rwxr--r--755 rwxr-xr-x777 rwxrwxrwx三位数字代表9位的权限,分成3部分,第一部分3位表示所有者的权限,第二部分3位表示同组用户权限,第三部分3位表示其他用户权限,r代表读取权限等于4,w代表写转载 2013-10-24 10:32:32 · 759 阅读 · 0 评论 -
An overview of the ARM architecture
ARM architecture versionsThe ARM architecture has been through several revisions since its emergence in the mid 1980’s. The most recent version, ARMv7, is implemented in the Cortex range of processo转载 2012-07-23 14:43:53 · 1660 阅读 · 0 评论 -
ARM TRUSTZONE 续
1.ARM有user ,supervisor , fiq, irq, undef,abort, system mode, 为了支持trustzone, arm 增加了一种mode : security monitor mode , 通过smc指令,进入这个mode 来进入 security world(state)--security monitor mode本身是属于security w原创 2012-06-25 10:11:56 · 3881 阅读 · 0 评论 -
kernel启动失败的调试方法
最近porting linux kernel ,系统起不来,没有打印 搞了一两天,发现对kernel 启动调试已经很生疏了, 有点收获记录下来: 启动流程 首先是执行自解压,解压后重新跳转到0x40008000执行arch\arm\kernel\head.s : __HEADENTRY(stext) setmode PSR_F_BIT |原创 2012-03-21 14:58:28 · 5792 阅读 · 1 评论 -
ARM Trustzone
What is TrustZone?The term "TrustZone" is somewhat confusingly used when referring to any of the following: The security extensions to the ARM architecture and the protection type signals in转载 2012-03-21 14:14:32 · 2750 阅读 · 0 评论 -
GFP_ATOMIC & GFP_KERNEL kmalloc& vmalloc
GFP_ATOMIC means roughly "make the allocation operation atomic". Thismeans that the kernel will try to find the memory using a pile of freememory set aside for urgent allocation. If that pile do转载 2012-03-04 12:15:35 · 3283 阅读 · 1 评论 -
git 服务器
自己在ubuntu10.10建了个git 玩玩。根据网上的那些文章,走了不少弯路,记录下来过程:1)安装 apt-get install git git-core 安装git apt-get install git-daemon-run 安装git deamon run 服务apt-get install gitk 这个gitk命令可以查看当前代码分支的结构,和window原创 2012-02-29 13:14:58 · 868 阅读 · 0 评论 -
WINCE上蓝牙立体声
要通过蓝牙立体声耳机听音乐: 1. A2DP 是通过串口向蓝牙发送音频数据(最高可以1.3m)--CE6 上有支持2. 使用audiogate来支持 handfree(蓝牙手机通话)---通话质量不如A2DP。在CE5上可以有两种方法: a) 音乐通过speaker 输出然后直接由mic输入,蓝牙耳机端听到mic输入的声音。相当于蓝牙语音通话。(声音通过串口走handf原创 2010-02-08 10:41:00 · 1949 阅读 · 0 评论
分享