- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 Android日志能力之持久化转储及回传的闭环方案(下)
Android日志能力之持久化转储及回传的闭环方案(下)上帝反馈后在碰到一些奇奇怪怪的系统问题时,如视频无法播放、网络异常、触摸无响应等等疑难杂症单单靠应用级别的异常信息怕是不能正常分析的,如果没有相应的日志获取能力,那面对用户的应该就是一块板砖,而面对我们的可能就是来自上帝的批判,因此如何在上帝反馈问题后第一时间能够获取到有用的信息并给予用户正向的反馈是及其重要的。因此,在系统层面设计了一种持久化转储日志信息的三把刀方案:logdump、kdump、xdump。logdumplogdump最初的
2021-10-25 10:46:24 1637
原创 Android日志能力之持久化转储及回传的闭环方案(上)
Android日志能力之持久化转储及回传的闭环方案(上)背景在现如今Android市场的半壁江山下各ODM厂商OEM厂商谁要是没点获取问题日志的能力那可能会被这快速的更新迭代大浪淘沙掉,尤其是一款新上市的产品初期,必定是有各种各样的售后问题反馈,俗话说-用户即上帝,在上帝反馈前和反馈后及时获取对于开发者有用的全面的信息必定是推动产品软件快速更新迭代和赢得上帝信任好评的关键。今天我们就来聊聊一种持久化日志转储及回传的闭环设计方案。Android系统中常用的日志信息众所周知,logcat作为Andro
2021-10-25 10:44:16 1064
原创 计算机网络学习(三)— 传输层
计算机网络学习(三)— 传输层一、传输层协议的应用场景TCP保证可靠传输,需要分段,并对每个分段编号,具有流量控制功能,需要建立会话。UDP传输不编号,一个数据包就能完成数据通信,不建立会话,多播。1.1 场景分析在使用微信聊天与传输文件时分别采用什么协议?在聊天时不需要知道对方是否存在,是面向无连接的通信,因此使用UDP协议进行通信。而在传输文件时,一个数据包并不能传输完成,并且...
2019-09-01 10:46:54 660 1
原创 计算机网络学习(二) — TCP_IP模型分层
计算机网络学习(二) — TCP_IP模型分层一、TCP/IP与OSI参考模型TCP/IP与OSI在分层模块上稍有区别,最主要的区别就是TCP/IP将OSI七层模型中的会话层、表示层、应用层全部整合为应用层进行处理。1.1 物理层与数据链路层物理层与数据链路层的实现是通过具体网卡与设备的驱动程序和网络接口进行实现的。1.2 网络层TCP/IP中的网络层包括IP、ARP、ICMP协议。...
2019-09-01 10:40:48 358
原创 字符串唯一前缀
字符串唯一前缀题目描述给定一组字符串,为每个字符串找出唯一能够识别该字符串的最小前缀。输入输入n串唯一的字符串,n为2到100之间,字符串用","隔开,字符串长度不超过100。样例:meituanapp,meituanwaimai,dianpingren,dianpingjieguo输出可以唯一区分字符串的最小前缀,用","隔开。样例:meituana,meituanw,di...
2019-08-23 11:35:07 1075
原创 约瑟夫环的多种解决方案
约瑟夫环的多种解决方案一、问题描述n个人(n > 2)围坐一圈,从第i个人开始报数,报到m的人出圈,直到全部人出圈。要求编程模拟出圈过程,并输出出圈人的编号(不是下标)的顺序。这就是约瑟夫环问题。要求程序段的核心功能行数最好控制在10行以内。解决该问题有多种方案,可以采用循环数组的方式,也可以采用数组链表的方式。二、循环数组首先申请一个n个元素的数组空间,全部设置为0,表示所有人都...
2019-08-18 14:50:16 440
原创 方块着色问题
方块着色问题问题描述长度为n的方格,刷3种颜色的颜料,相邻的方格颜料颜色不能相同,且首尾方格颜色不能相同。每个方格必须涂色。计算一共有多少种涂色方式。递推法数学分析n=1时,从三个颜色中选出一个,结果为C31=3C_3^1 = 3C31=3;n=2时,结果为C31×C21=6C_3^1 \times C_2^1 = 6C31×C21=6n=3时,结果为C31×C21×C11=6...
2019-08-06 09:57:31 2228
原创 NETPACK使用说明
NETPACK使用说明描述NETPACK是一款基于NETCAT与ZLIB库开发的一个用于打包压缩日志文件并传输的工具使用说明在我们的SEEWO Book上已经集成了NETPACK的工具,因此你不需要重新下载 netpack: [v1.00] Usage: np 192.xxx.xxx.xxx:0000 [file[s] || dir[s]] option:...
2019-08-03 19:35:51 263
原创 计算机网络学习(一) — OSI模型及概述
计算机网络学习(一) — OSI模型及概述一、计算机网络的分类计算机网络根据其规模可以分为WAN(Wide Area Network,广域网)和LAN(Local Area Network,局域网)。二、OSI七层模型为了解决不同厂商生产的异构机型无法使用不同的协议互相通信的问题,ISO(International Organization for Standards,国际标准化组织)制定...
2019-07-27 09:04:14 1066
原创 查找不重复字符最长子串的长度
查找不重复字符最长子串的长度一、问题描述今天在做一道牛客上的笔试算法题目,题目是这样的:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。其中给出了几个示例:示例 1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度...
2019-07-26 21:38:17 450
原创 Chrome OS Power Manager 剩余电量时间估计
Chrome OS Power Manager 剩余电量时间估计Chrome OS系统调用内核的sysfs接口/sys/class/power_supply/BAT*/*获取到power_manager电池的状态,之后系统通过Dbus将power_manager状态字发送给浏览器端,浏览器根据不同的lable显示在界面上。Chrome浏览器代码中有在cros/src/chrome_root/...
2019-07-16 10:10:54 395
原创 Virtual Tablet Mode Switch
Virtual Tablet Mode Switch. 项目描述我们开发的Seewo Book 有两种模式:平板模式(tablet mode)和笔记本模式(laptop mode),根据键盘翻转进行切换。为了方便开发及测试人员更高效的工作,需要一个无需手动翻转键盘就可以切换平板模式的工具。. 实现原理在SeewoBook的底座和屏幕上分别安装了一个加速度传感器,每个加...
2019-07-16 10:10:15 774
原创 实模式与保护模式
实模式与保护模式实模式1.什么是实模式在计算机上面,实模式存在的时间非常之短,所以一般我们是感觉不到它的存在的。CPU复位(reset)或加电(power on)的时候就是以实模式启动,在这个时候处理器以实模式工作,不能实现权限分级,也不能访问20位以上的地址线,也就是只能访问1M内存。之后一般就加载操作系统模块,进入保护模式。处理器8086 有 20 根地址线(不清楚8086的童鞋,可以...
2019-07-05 16:23:14 423
原创 使用远程终端连接一个服务器
使用远程终端连接一个服务器一、开启SSH服务如果需要使用远程终端连接服务器,首先服务器需要开启ssh服务。一、使用Putty连接使用Putty连接无法使用小键盘的问题在Putty的设置中进入Features选项,将Disable application keypad mode选项勾选即可。...
2019-07-05 15:55:48 227
原创 python学习笔记(5)- 模块
python学习笔记(5)- 模块Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。下例是个简单的模块 support.py:def print_f...
2019-07-05 15:55:14 393
原创 python学习笔记(4)- 函数
python学习笔记(4)- 函数定义一个函数函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。函数内容以冒号起始,并且缩进。return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。...
2019-07-05 15:55:01 102
原创 python学习笔记(3)- 异常
python学习笔记(3)- 异常python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。异常处理断言(Assertions)什么是异常异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Pyt...
2019-07-05 15:54:46 118
原创 Git学习笔记(一)
Git学习笔记(1)一、取得项目的的Git仓库有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。1.1 在工作目录新建仓库要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行: $ git init初始化后,在当前目录下会出现一个名为 .git 的目录,所...
2019-07-05 15:53:58 89
原创 C++学习中的一些问题
C++学习笔记C和C++中struct的区别C语言中的结构体不能为空。C语言中的结构体只是一个复杂的数据类型,只能定义成员变量,不能定义成员函数,但是可以定义函数指针;C++可以定义成员函数和成员变量。C++的结构体和类体现了数据结构和算法的结合。C语言中定义结构体变量时,struct不可以省略:C++中定义结构体变量时,struct可以省略。C++中struct与class的区别...
2019-07-05 15:53:43 124
转载 在Linux kernel Makefile 中添加宏定义
在Linux kernel Makefile 中添加宏定义如何在Linux kernel Makefile中添加宏定义:CFLAGS_object.o += -DMACRO_NAME在编译object.o时定义宏MACRO_NAME,在kernel中添加自己的模块时比较有用。另外,要想对所以将编译的文件都添加一个宏的定义,可以使用EXTRA_CFLAGS += -DMY_DEBUG这样...
2019-07-05 15:52:45 967
原创 python学习笔记(2)- 运算符
python学习笔记(2)- 运算符Python语言支持以下类型的运算符:算术运算符比较(关系)运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级算术运算符以下假设变量: a=10,b=20:+,-,*,/,%**表示乘方— a**b 为10的20次方, 输出结果 100000000000000000000//向下取整—返回商的整数部分 : 9//...
2019-07-05 15:52:07 109
原创 python学习笔记(1)- 基础语法及变量
python学习笔记(1)- 基础语法及变量概述Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python 源代码同样遵循 GPL(GNU General Public License)协议。中文编码Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。解决方法为只要在文件开头加入 # -*- codin...
2019-07-05 15:51:53 201
原创 Chromium OS Autotest 服务端测试
Chromium OS Autotest 服务端测试(Server side test)概述在这篇文档中,我们将会论述服务端的测试。在下面我么你将会创建一个测试用例,用来测试被测机器的背光亮度在以下情况下是否可以恢复到初始值:用户注销和重新登陆情况下设备暂停和恢复的情况下在开始下面的工作之前你需要具备以下条件:懂得python的语法有一个Chromium OS的被测设备(...
2019-07-05 15:51:42 382
原创 Chromium OS Autotest 客户端测试
Chromium OS Autotest 客户端测试(Client side test)概述背景Autotest是一个用来测试Linux内核的开源项目。Autotest作为一个分布式系统,通过集成web接口、数据库、服务器和客户机本身负责管理多个客户机的状态。Autotest查找client/tests和client/site_tests中的所有目录,查找以“control.”开头的简...
2019-07-05 15:51:28 816
原创 Chromium OS Autotest 概述
Chromium OS Autotest 概述Autotest是一个完全自动化测试的框架,主要用于测试Linux内核,但对许多其他功能也很有用。Autotest简化框图Web interface and command line interfaceWeb接口(WEB)和命令行接口(CLI)是与autotest交互和创建任务的互补方式。都是为了用户便捷,这两种接口允许你:管理任务...
2019-07-05 15:51:01 288
原创 Ebuild 学习笔记
Ebuild 学习笔记1、Ebuild文件格式一个ebuild文件的命名必须以 “软件包名称-版本号.ebuild”命名。名称部分应仅包含小写的非重音字母,数字0-9,连字符,下划线和加号字符。强烈建议不要使用大写字符,但技术上有效。Ebuild标题信息所有提交给树的ebuild应该在开始时立即有两行标题,表示版权,然后是空行。这必须是 header.txt Gentoo存储库顶级目...
2019-07-05 15:50:47 126
原创 Chromium OS Autotest 编码风格
Chromium OS Autotest编码风格语言尽可能使用python在host命令的调用中会使用少量的shell命令一些测试会在测试的依赖项中使用C/C++缩进和空行保证你的代码在80个字符的屏幕宽度内。缩进是4个空格,这是python的标准。函数参数另起一行并使用8个空格的缩进:#标准写法,参数另起一行,并且使用8空格的缩进return 'class: %s, hos...
2019-07-05 15:50:35 142
原创 (二)驱动设计之接口与总线
(二)驱动设计之接口与总线一、串口RS-232、RS-485、RS-422都是串行数据接口标准,最初由电子工业协会(EIA)制定发布。RS-232RS-232标准为连接DTE(数据终端设备)与DCE(数据通信设备)而制定,有25条线,其中4条数据线,11条控制线,7条备用和未定义线,常用的只有9根线,分别为:RTS/CTS(请求发送 流控制)用来表示DTE请求DCE发送数据,当中...
2019-07-05 15:49:54 781
原创 (一)驱动设计的硬件基础
(一)驱动设计的硬件基础一、体系结构中央处理器的体系结构分为两类:冯诺依曼(普林斯顿)体系结构和哈佛体系结构。冯诺依曼体系结构:程序存储器和数据存储器合并在一起,程序指令存储器地址和数据存储器地址指向同一存储器的不同物理位置,因此程序指令和数据的宽度相同。哈佛体系结构:程序指令和数据分开存储,指令和数据可以有不同的宽度。采用独立的程序总线和数据总线,分别作为CPU与每个存...
2019-07-05 15:49:39 106
原创 内存寻址(二)
内存寻址(二)一、硬件中的分页分页单元(paging unit)把线性地址转换成物理地址。其中的一个关键任务是把所请求的访问类型与线性地址的访问权限相比较,若此次内存访问无效,则产生一个缺页异常。为了高效工作,线性地址被分成以固定长度的页(page)。页内部连续的线性地址被映射到连续的物理地址中。“页”指的是一组线性地址,或者指的是这组线性地址中包含的数据。分页单元将所有的物理内存分成固定长...
2019-07-05 15:47:25 459
原创 内存寻址(一)
内存寻址(一)一、内存地址使用80x86微处理器时需要区分一下三种不同的地址:逻辑地址:包含在机器语言指令中用来指定一个操作数或一条指令的地址,每一个逻辑地址都由一个段标识符或叫段选择符(16位)和偏移量(32位)组成线性地址:又称作虚拟地址,是一个u32的整数,可以用来表示高达4GB的地址物理地址:是一个u32或u64的整数,与从微处理器的地址引脚发送到内存总线上的电信号相...
2019-07-05 15:44:25 1271
原创 Chrome OS D-Bus
Chrome OS D-BusD-Bus用于在Chrome OS上执行进程间通信。本文档介绍如何使用D-Bus在Chrome和系统守护(daemon)程序之间进行通信。共享常量(Sharing constants)system_api库包含了C++常量和协议缓冲器( protocol buffer)的.proto文件,这些文件在浏览器(chrome)和系统(chrome OS)之间进行共享...
2019-04-29 16:04:10 386
原创 Ebuild 学习笔记
Ebuild 学习笔记1、Ebuild文件格式一个ebuild文件的命名必须以 “软件包名称-版本号.ebuild”命名。名称部分应仅包含小写的非重音字母,数字0-9,连字符,下划线和加号字符。强烈建议不要使用大写字符,但技术上有效。Ebuild标题信息所有提交给树的ebuild应该在开始时立即有两行标题,表示版权,然后是空行。这必须是 header.txt Gentoo存储库顶级目...
2019-04-29 16:03:23 1362
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人