- 博客(68)
- 资源 (14)
- 收藏
- 关注
转载 高通thermal-engine配置文件格式详解
本文基于高通msm8939/8994平台文档及源码。 说明文档: vendor/qcom/proprietary/thermal-engine/readme.txt; 源码文件: venror/qcom/proprietary/thermal-engine/thermal_config_v2.c; 实际配置文...
2019-09-19 15:18:14
5812
2
原创 Android P keyguard 初始化,Pattern解锁等介绍
Android P keyguard 初始化,Pattern解锁等介绍学习就需要带着问题去看书看源码,针对keyguard 有如下几个问题:问题1:keyguard是什么?问题2:keyguard的初始化流程问题3:Pattern验证方式的解锁流程?本文使用到的调试方法,请点击查看 -> Android Framework 常用的调试方式keyguard是什么KeyGuard源...
2019-09-07 23:56:10
3317
原创 Android Framework 常用的调试方式
Android Framework 常用的调试方式JDB-> Android JDB 调试system_server方式Java直接通过log库打印当前执行堆栈android.util.Log.d("TAG",android.util..getStackTraceString(new Throwable()));NativeC++也是支持异常处理的...
2019-09-07 17:03:11
731
转载 sw-xxxx-dp的计算方法
Android应用里里,大家一定饱受各种layout-sw480dp layout-sw600dp-land layout-sw720dp-port之苦,往往不知道自己的平板加载的是哪个Layout而不得不一个个尝试,网上一大堆说不清的教程。本人查阅很多资料,给大家分享一种计算方法确定自己平板所加载哪个dp的资源。 事实上,sw不是software的,意思,我猜是shortest wi...
2019-09-03 14:55:59
2284
原创 Android P zygote 启动过程
Android P zygote 启动过程Zygote 概述在Android系统中,DVM,ART应用程序进程以及运行系统的关键服务System_server 进程都是由Zygote进程来创建的。我们将其称之为孵化器。它通过fork的形式创建应用程序进程和system_server 进程。由于zygote进程在启动的时候会创建DVM或者ART,因此通过fork而创建的应用程序进程或者syste...
2019-09-01 20:48:02
461
原创 Background execution not allowed 广播无法接收问题的解决方法
Background execution not allowed,广播无法接收原因及解决方法出现此报错的原因是Android O中对隐式广播做了限制,请看源码如下:frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java829 final void processNextBroadcas...
2019-08-15 17:07:54
14987
2
原创 Android P PackageManagerService 初始化流程
Android P PackageManagerService 初始化流程概述解析AndroidManifest.xml,主要包括AndroidManifest中节点信息的解析和target-name的分析和提炼,这部分和ActivityManagerService和WindowManagerService都有紧急的联系。关于AndroidManifest.xml中的属性设置,会单独拎出...
2019-08-11 00:17:22
764
原创 Android JDB 调试system_server方式
Android JDB 调试方式将如下代码保存为 jdb_debug.sh#!/bin/bashpackageName=$1echo $packageNamepid=`adb shell ps | grep $packageName | awk '{print $2}'`echo $pidadb forward tcp:1234 jdwp:$pidjdb -attach local...
2019-08-04 20:33:39
1617
1
原创 MediaProvider流程分析
MediaProvider流程分析1. 概要Android MediaProvider 使用 SQLite 数据库存储图片、视频、音频、文档等多媒体文件的信息,供视频播放器、音乐播放器、图库、文档编辑器使用。按照谷歌的要求,Android上其他应用获取文件列表的时候修需要通过contentprovider来读取.类似的还有TelephonyProvider、CalendarProvider、C...
2019-08-04 20:08:09
9633
原创 Android 9 源码查看 - Ubuntu 16.04 搭建Opengrok 查看Android 9 源码
Ubuntu 16.04 搭建Opengrok 查看Android 9 源码前面一篇文章介绍了下载源码 ->Android 9 -源码下载编译1.安装 tomcat8通过APT源安装sudo apt-get install tomcat8 tomcat8-docs tomcat8-examples tomcat8-admin安装完成后的配置文件放置在/var/lib/...
2019-01-13 13:53:56
2257
原创 Android 9、10 -源码下载编译
Android 9 -代码下载编译1.背景:背景:现在Android framework 开发的同学,整体在公司里面解一些无关痛痒的bug,对于Android framework模块详细流程,可能只有在工作之外的时间去分析Android源码。由于某墙的原因,这里我们采用国内的镜像源进行下载.目前,可用的镜像源一般是科大和清华的,具体使用差不多,这里我选择清华大学镜像进行说明。...
2019-01-12 22:27:46
19024
20
转载 如何提交Code到google open source android gerrit
也许你在进行android开发的时候会发现一些android原生的问题,那么你可以提交issue到google issue网站上,当然在提交的时候最好能先搜一下在google issue上是否已经有相关的CR已经提交过了,那么有就可以参考一下遇到该问题的Coder们都怎么分析的,申请一个gmail帐号你也可以和大家一起讨论,那么如果你想要将自己对该问题的修改提交到android的仓...
2018-04-23 13:28:19
1704
转载 GIT 常用命令
A.换工作之后开始使用GIT 半年前我开始使用git,之前一直在用svn。 git命令很多,看起来很复杂,但在最开始的时候了解几个简单的就够用了。相信很多人在使用git之前都使用过svn,这里不讨论git和svn的不同,也不对这两个代码管理软件进行比较和评论,只是在我个人使用的角度做的一些记录。svn需要搭建一个svn服务器(HTTP/SVN),搭建sv
2015-07-22 20:13:44
590
转载 获取目录下面的文件以及相关属性
#include #include #include #include #include int readFileList(char *basePath){ DIR *dir; struct dirent *ptr; char base[1000]; if ((dir=opendir(basePath)) == NULL)
2015-07-20 23:44:17
1737
原创 Ubuntu 12.04 SVN 服务器搭建
Ubuntu12.04下搭建SVN服务器svn://1、服务器的搭建安装软件包:sudoapt-get install subversion之后选择SVN服务文件及配置文件的放置位置。我放在了/opt下的svn目录。cd/optsudomkdir svn我的svn版本仓库叫consumeSourcecd/opt/svnsudomkdir consumeSou
2015-07-12 11:48:11
1142
原创 C 基础数据结构---队列 ADT
最近闲来无事,不想浪费青春,就动手翻看之前的笔记和书本,将做一些记录下面是通过C语言实现的队列:#include #include #include typedef struct Node { int data; struct Node *next;}*Node;typedef struct Queue { int size; struct Node *fir
2014-03-20 12:44:31
928
原创 C 基础数据结构---栈 ADT
#include #include #include #define MAX_SIZE 20/** 使用ADT实现栈模型的出栈和入栈* 函数中返回值 -1 表示失败, 0 表示成功* */typedef struct NODE { int data; struct NODE *pre;}*Node;typedef struct STACK { int siz
2014-03-20 10:47:17
844
转载 a++为什么不能作为左值?
1)首先说左值和右值的定义:变量和文字常量都有存储区,并且有相关的类型。区别在于变量是可寻址的(addressable)对于每一个变量都有两个值与其相联:1).它的数据值,存储在某个内存地址中。有时这个值也被称为对象的右值(rvalue,读做are-value).我们也可认为右值的意思是被读取的值(read value)。文字常量和变量都可 被用作右值。2).它的地址值——即
2014-03-01 11:53:32
4870
1
转载 Android中C/C++打印堆栈的方法
Java可以方便的打印函数的调用栈。C/C++也可以为了显示在vm/Misc.cpp中谁调用了函数dvmAllocRegion,在这个函数中加入下面红色代码:点击(此处)折叠或打开#include ...void *dvmAllocRegion(size_t byteCount,int prot, const char *name){..
2013-12-10 22:33:44
8404
原创 Android getprop 读取的属性哪里来的?
在公司没事情做,就只有自己自觉慢慢学习自己想到的感兴趣的东西了,唉 说道这都是伤心泪啊、Android getprop 和 setprop 可以对系统属性进行读取和设置。通过串口执行以下 geyprop 打印出来的属性让你一目了然。属性出来了,但是在哪里设置的呢,这里有两个地方:一个是配置文件读取的,一个是系统动态获取的1、在android源码目录下的: system/c
2013-12-10 14:12:15
12520
原创 Linux 上如何创建新的用户,并让其在首次登陆后修改密码,并限制其允许使用的磁盘空间
Linux 上如何创建新的用户,并让其在首次登陆后修改密码,并限制其允许使用的磁盘空间闲来无事玩的,有错误请纠正,thanks!主要步骤:建立用户账户 强制用户帐号过期 限制其磁盘使用大小一、先创建用户吧:1. 使用useradd添加用户 2. 使用passwd设置用户密码 3. 使用usermod -L来锁密码 4. 强制用户帐号过期chage
2013-12-04 17:20:22
7785
原创 vmware linux无法正常上网
不知道自己怎么搞的整的vmware里面的fedora 12 不能正常上网,但是在宿主机上ping XXX,是正常的。当service network restart 的时候提示MAC有问题。网上百度了一下,找到解决方案。vmware虚拟机启动出错,就把这个虚拟机删除掉重新建立,系统虚拟硬盘使用之前的,启动系统后不能上网,通过ifconfig查看网卡没启动,遂启动网卡服务,但是出错,就是:d
2013-12-04 14:22:51
1453
转载 Android aidl项目中服务端与客户端aidl文件不一致引起的问题
Android aidl项目中服务端与客户端aidl文件不一致引起的问题 前几天和林工联调的时候发现远程调用我的aidl接口时候,有的接口总是调用不正确,本来是想调用我的A接口,却实际调用出来却显示调用的我B接口。仔细检查了,没问题啊,不可能会把名称写错的啊。Aidl文件在最开始是固定的,但是接口在后面有增有减,就导致了我这边的aidl接口与他的aidl接口数量和顺序上都有差异了。后面怀疑
2013-09-26 09:35:25
4976
原创 Vmware 占用宿主机硬盘空间只增不减
问题: vmware 占用硬盘空间只增大不减少。即使你删除虚拟机系统里面的文件,占用宿主机的硬盘空间也不释放。用了一段时间后空间不够了。解决办法: 方法一: 把一部分*sxxx.vmdk文件剪切到其他盘符下。用ultraEdit 打开Debian_Lenny.vmdk, 你会看到一个文件列表。重新定位你剪切的文件。启动虚拟机即可。这方法没有释放空间。方法二: 在
2013-09-20 23:24:38
6936
原创 android 隐藏API 在源码下编译报错cannot find symbol symbol
应该是我对android 不熟悉的缘故,今天使用源码编译了一个调用了隐藏api的应用程序始终报错:cannot find symbolsymbol : class IPackageInstallObserverXXXXXX而我将android 源码编译出来的:out\target\common\obj\JAVA_LIBRARIES\framework_intermedia
2013-09-11 00:55:36
4388
2
原创 javah 命令记录
今天看了《android框架揭秘》一书中的jni这块,按照书上的写法试了试javah命令, 今天通过javah生成h文件时遇到各种问题。不管是javah -classpath参数啊还是别的什么,一直都无法成功通过class文件生成h文件。 想了想应该是路径问题,现在终于成功编译出来了~ 先在cmd命令行里面切换到工程的目录 调用javah命令时,j
2013-06-27 10:34:12
890
原创 Deskclick 闹钟界面实现
Deskclick 闹钟界面实现 对于deskclock闹钟的界面的绘制:在activity中public class MainActivity extends Activityimplements OnItemClickListener实现内部类:class MyAdapter extends BaseAdapter并重写getCount,getItem,getIte
2013-06-26 16:36:29
1480
原创 Listview绘制原理 与adapter
Listview绘制原理 与adapter ListView绘制的过程如下:首先,系统在绘制ListView之前,将会先调用getCount方法来获取Item的个数。之后每绘制一个Item就会调用一次getView方法,在此方法(getView)内就可以引用事先定义好的xml来确定显示的效果并返回一个View对象作为一个Item显示出来。也正是在这个过程中完成了适配器的主要转换功能
2013-06-26 16:30:53
4285
原创 JAVA 环境变量设置
1.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;2. 选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录
2013-06-24 11:09:35
818
转载 Linux core 文件介绍
Linux core 文件介绍1. core文件的简单介绍在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。2. 开启或关闭core文件的生成用以下命令来阻止系统生成core文件:ulimit -c 0下面的命令可以检查生成core文件的选项是否打开:ulimit -
2013-06-20 23:48:17
670
原创 QT如何编译出带调试信息的qtwebkit库
因为在编译QT的时候默认是不编译成带调试信息的qtwebkit库的,不论如何设置参数都是没有用的。后面在一博客中查找到相关信息1、编译带debug 信息的webkit 库 注释或者删除qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/WebCore.pro 中的红色两行代码还有JavaScrip
2013-06-19 23:58:03
3128
原创 增加linux虚拟机硬盘方法
增加虚拟机linux硬盘容量方法有好几种先记录我使用过的一种方法:1、 关闭虚拟机里面的linux系统2、 在vmware 软件的VM->Settings 选中harddisk 选中右侧的utlities 下面有expand选项。3、 对弹出的对话框输入你要扩展到的硬盘容量(包括原有的容量)。4、 成功后重新启动linux系统。5、 以root用户登录对文件系统进行操
2013-06-19 10:50:17
1042
转载 linux framebuffer 显示bmp图片
framebuffer简介 帧缓冲(framebuffer)是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。framebuffer是LCD对应的一中HAL(硬件抽象层),提供抽象的,统一的接口操作,用户不必关心硬件层是怎么实施的。这些都是由Framebuffer设备驱动来完成的。 帧缓冲设备对应的
2013-05-06 23:08:20
1247
原创 如何使用ssh来运行linux的GUI程序
如何使用ssh来运行linux的GUI程序 错误:webkit: cannot connect to X server1. 编辑sshd_config:# vi /etc/ssh/sshd_config确保有如下的行:X11Forwarding yes这样配置的作用就是允许 SSH的X转发。2、下载Xming-6-9-0-31-setup.exehttp://sou
2013-03-21 21:25:31
4481
原创 samba服务器配置及常见错误解决(fedora)
Samba服务器配置及错误解决1)首先检查系统是否安装好了samba。[root@localhost mnt]# rpm -qa | grep samba如果出现下面三行内容,则表示已经安装好了Sambasamba-winbind-clients-3.4.2-47.fc12.i686samba-common-3.4.2-47.fc12.i686samba-3.4.2-47.
2013-03-21 21:13:37
3166
原创 QT程序编译
我手上的qt源码包为:qt-everywhere-opensource-src-4.7.0.tar.gz在linux下编译比较容易,解压后直接 ./configure,一般会报缺少什么库这些。自己遇到缺什么酒安装什么,我这个fedora里面安装了比较多的库这些吧。configure一次通过。然后是make;make install至于configure选项这些就自己 ./configu
2013-03-16 00:05:44
2209
原创 webkit 设置body背景色为透明的方法
在浏览器中需要将body透明,而body上面的控件或者字等不透明,寻找了很久。现在终于找到了,记录下来备用,原因在于webkit浏览器的内核在判断body是否有背景色的时候,如果alpha为0.会将其背景改为baseclor,就不再透明了。在RenderBoxModelObject.cpp文件中有函数 :voidRenderBoxModelObject::paintFillLaye
2013-03-09 12:55:15
4082
原创 QT 与 网页的交互
旨在将我见到的记录下来:通过qt查找页面中的元素:QWebElement e = this->page()->mainFrame()->findFirstElement("div[id=pause]"); rect = e.geometry();找到 id=pause 的div ,并获取其属性。待续:
2013-03-04 17:08:49
1335
原创 QT 等待对话框/进度--
用QT的,加载的一张gif图片。记录下来以后免得忘记。#ifndef DIALOG_H#define DIALOG_H#include #include #include#includeclass Dialog : public QDialog{ Q_OBJECTpublic: explicit Dialog(QWidget *parent = 0);
2013-02-19 11:17:20
9540
1
原创 QT学习记录-进度条:
QT学习记录-进度条:在QT中可以用QProgressBar或着QProgressDialog来实现进度条。 QProgressDialog:QProgressBar: // progress.h#ifndefPROGRESS_H#definePROGRESS_H#include#include#include#include#includeclassp
2013-01-30 10:11:49
2143
spice_style.pdf
2015-05-12
spice_redhat_summit_2009.pdf
2015-05-12
jni-example.zip
2014-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人