自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (10)
  • 收藏
  • 关注

原创 android HAL层崩溃排查记录

所以,通过修改版本的分析,就知道问题版本出问题的原因了。

2024-03-07 17:15:21 1123

原创 android 11添加服务编译错误的修改

1. 缺少非空判断Missing nullability on method `***` return [MissingNullability]修改:import android.annotation.NonNull;@NonNull String parameter实现对参数或返回值的注解参考:frameworks/base/services/print/java/com/android/server/print/UserState.javapublic Bundle pr

2022-02-23 09:35:01 4924

转载 由硬件支持的密钥库-Android keymaster

由硬件支持的密钥库借助系统芯片 (SoC) 中提供的可信执行环境,Android 设备可以为 Android 操作系统、平台服务乃至第三方应用提供由硬件支持的强大安全服务。寻求 Android 专用扩展程序的开发者应访问android.security.keystore。在 Android 6.0 之前的版本中,Android 已有一个非常简单的由硬件支持的加密服务 API(由 0.2 和 0.3 版的 Keymaster 硬件抽象层 (HAL) 提供)。该密钥库能够提供数字签名和验证操作,以及不.

2021-11-05 17:01:30 3013

原创 Android应用虚拟内存泄漏问题分析

Android应用虚拟内存泄漏问题分析android系统上,各种订制修改比较多,经常会遇到一些奇怪的内存泄漏问题。最近遇到一个比较少见的应用端泄漏,这边记录一下。首先,应用运行大概2小时左右,遇到如下崩溃:02-04 13:15:03.661 1070 1087 W libc : pthread_create failed: couldn't allocate 1069056-bytes mapped space: Out of memory02-04 13:15:03.661

2021-03-03 17:45:23 3630 2

原创 Android GDB调试system_server记录

这边直接在window系统上的Android SDK环境上调试,Ubuntu系统也类似,使用中有一些目录的差异。被调试的设备已经root. 设备端: 1.首先确认要调试进程的号: 这边准备使用使用system_server进程rk3399:/ # pidof system_server4422.使用gdbserver attach要调试的进程:...

2019-08-03 10:23:11 1470

原创 关于C_INCLUDES must be under the source or output directories

之前在Android N上的项目,正常编译,挪到O项目,就报这个异常,很是疑惑。直接翻译过来,就是被include的目录,必须在源码或者输出的目录内。Google一翻:There are a couple of other things that can trigger this check -- I've seen both of these in practice:1. Usi...

2019-07-03 09:08:14 8771

原创 记一次android native 内存泄漏分析

最近有客户反馈,使用平台的SDK,进行扫码时,使用几个小时后,内存就变占满了,然后呢,系统就重启了。于是,给客户脚本,ps之类拷机,定位,发现是system_server出现内存泄漏。这个大家伙,有java,有native.通过的抓取2分钟时间内dumpsys meminfo差异 :主要在Native Heap增加。好吧,确认是Native Heap出现内存泄漏无疑。Nat...

2019-05-25 16:36:33 5960

原创 Linux中的proc文件系统

Linux中的proc下的节点,可以看到内核的一些重要信息,也是用户空间与内核空间交互的媒介。比如/proc/PID节点,可以查看某个PID进程的相关信息:DIRECTORY DESCRIPTION /proc/PID/cmdline Command line arguments. /proc/PID/cpu Current and last cpu in whi...

2019-05-09 20:12:41 168

原创 android之JDWP调试使用

JDWP(java debug wire protocol)是dalvik VM的一个线程,可以建立在adb或者tcp基础上,与DDMS或debugger进行通信。 adb jdwp : list pids of processes hosting a JDWP transport1.通过执行adb jdwp,可以看本设备上可以使用JDWP调试的进程。如下 :通过设备上执行ps ...

2019-02-16 16:20:11 6968

转载 诊断原生代码崩溃问题

                                诊断原生代码崩溃问题以下部分包括原生代码崩溃的常见类型、对示例崩溃转储的分析以及有关 tombstone 的讨论。每种崩溃类型都包括示例 debuggerd 输出,其中突出显示的关键证据可以帮助您区分特定类型的崩溃问题。提示:如果您之前从未遇到过原生代码崩溃问题,请从调试原生 Android 平台代码着手。中止中止操作...

2019-01-31 17:15:00 2733 1

原创 Android 8.0 添加开机启动服务

 Android 8.0 添加开机启动服务,主要涉及两个部分,一个是服务的添加,另一个是Sepolicy规则的添加。服务的添加:1.这边添加一脚本做为服务,定时读取芯片温控节点,获取在不同运行情况芯片的温度情况:monitor.sh#!/vendor/bin/shj=1jmax=800000000while [ $j -lt $jmax ];do cpu0=`cat ...

2019-01-22 10:46:16 7802

原创 Android 系统文件限制小探

我们可以通过ulimit -a 用来显示当前的各种资源限制。rk3399_all:/ # ulimit -atime(cpu-seconds) unlimitedfile(blocks) unlimitedcoredump(blocks) unlimiteddata(KiB) unlimitedstack(KiB) ...

2019-01-07 20:12:10 2709

转载 overview of Linux capabilities

NAME         top capabilities - overview of Linux capabilitiesDESCRIPTION         top For the purpose of performing permission checks, traditional UNIX implementations dist...

2019-01-04 16:17:55 486

转载 Linux errno详解

开发中经常需要确认返回的错误码,然后继续排查原因,这边记录一下。转自:https://www.cnblogs.com/Jimmy1988/p/7485133.htmlLinux中系统调用的错误都存储于 errno中,errno由操作系统维护,存储就近发生的错误,即下一次的错误码会覆盖掉上一次的错误。PS: 只有当系统调用或者调用lib函数时出错,才会置位errno!查看系统中所有的...

2019-01-04 10:53:01 1692

原创 字节对齐算法

在开发中经常要用到字节对齐的操作,这边介绍了一种简单实现:int ALIGN(int value, int align){ // y must be a power of 2. return (value + align - 1) & ~(align - 1);}     一般的字节对齐的大小都为2的整数倍,所以能够被整除的地址的后几位一定是0,如: 8字节...

2019-01-03 17:47:49 435

转载 do...while(0)在宏定义中的作用

下面这个DUMP_WRITE定义,使用了do...while(0):#define DUMP_WRITE(addr,nr) do { memcpy(bufp,addr,nr); bufp += nr; } while(0)do...while(0)是先执行后判断的,那这边使用这个的作用是什么?do-while循环是先执行后判断循环条件。所以,这个定义意味着每当引用这个宏 操作时会执行...

2018-09-27 17:46:57 171

原创 android拷机获取内存使用的脚本

    在android的SDK的开发过程中,经常会遇到内存泄漏的问题,这时候,我们需要一些手段进行排查定位。有时候,泄漏问题可能不是十分明显,需要长时间拷机才现复现到,这时候,我们可以让机器拷机时同步执行一些脚本,记录每个时间段内存情况,便于我们进一步分析。    下面的脚本,获取每5分钟的meminfo,ps进程情况:#!/system/bin/shINTERVAL=300TIM...

2018-09-26 17:25:56 435

原创 在Linux中源码tab与空格的转换

在Linux中,可以使用一些工具,来实现文本中tab与空格的转换。 使用sed: sed -i 's/\t/    /g' filename,此方法将所有tab替换为4个空格。 在vi中使用替换命令 :%s/\t/    /g,将所有tab替换为4个空格。      3.使用expand和unexpand命令  将文件中的tab扩展为4个空格:expand -...

2018-09-26 17:17:05 2391

转载 应用冷启动画面显示方式(转)

原标题:Splash Screens the Right Way(Author:Chris Stewart)即启动时先显示应用图标,然后进行内容显示,先上效果:The very idea of the splash screen makes me a little angry. Just saying the phrase makes me cringe.Splash screen...

2018-09-25 16:13:35 345

原创 Android 8.1 增加以太网设置功能

Android 自带EthernetService,默认ip获取方式是动态分配(DHCP),有时候需要手动设置静态IP,但系统没有此项配置,因此我们就自己给它添加一项,将此功能放在了设置应用中。看到有此人要代码,链接在文章最下面,请自行下载功能所在位置如下图:涉及到的修改: AndroidManifest.xml ...

2018-09-18 09:37:42 16929 25

原创 gdb调试Android native代码

调试环境:    Ubuntu 16.04,win10,android 7.1    其中,win10主机通过USB与被测试机连接,Ubuntu16.04上有android 7.1 SDK代码及编译环境,通过本地网络与被测试机连接。第一部分:代码示例:test.cpp:#include <stdlib.h>#include <iostream>...

2018-09-12 09:48:34 414

原创 Android logcat反向过滤方法

Android logcat的常用方式,是过滤出指定需要的TAG信息,如:logcat -s TAG:V如果需要反向过滤,可以结合grep 命令使用。grep反向过滤需要使用参数:-vgrep --helpUsage: grep [OPTION]... PATTERN [FILE]...Search for PATTERN in each FILE or standard in...

2018-08-31 15:49:30 1357

转载 Android 文件级加密

Android 文件级加密,关于FBE相关内容

2017-12-29 16:49:36 15304 2

原创 初识optee 在QEMU平台上的编译、运行

1.安装依赖的工具先安装repo。然后在Ubuntu中启动一个Terminal,执行如下命令,安装依赖的其他工具。$ sudo apt-get install android-tools-fastboot autoconf bison cscope curl \flex gdisk libc6:i386 libfdt-dev libglib2.0-dev \libpixman-

2017-12-05 17:47:50 1677

原创 android内存泄漏分析的一种方式

最近在处理项目的拷机问题,发现在测试24小时内,都是正常的,但是超过24小时后,重启一大片,让人抓狂。分析了logcat打印,发现重启是因为系统服务已经被watchdog kill掉:03-06 22:27:49.541   710  1064 W Watchdog: foreground thread stack trace:03-06 22:27:49.542   710  106

2016-03-09 16:30:10 9408

原创 Android电池信息获得问题

之前有写过一笔记,但后面发现是错误的,感谢之前帮我指出错误的博友!设置应用的:PowerUsageSummary.java文件,会判断:if (mPowerProfile.getAveragePower(PowerProfile.POWER_SCREEN_FULL) < 10)即亮屏时的功耗。这边主要通过:power_profile.xml 进行配置,默认配置是一个很小的值,如0.1m

2013-06-20 16:39:41 1528

转载 android:sharedUserId问题

android:sharedUserId问题Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户Shared User id通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访

2012-04-21 10:20:18 23541 6

原创 android Exchange帐户设置

<br />android  Exchange帐户设置<br /> 在手机 设置——数据同步<br /><br />下面开始设置:<br /> <br /><br />电子邮件地址:[email protected] (name 为你的邮箱名)<br /> <br /><br />Exchange 服务器:m.google.com<br />域名/用户名:name(邮箱前的名字)<br />密码:***             (不用再输入,和刚才前一界面一样)<br /><br />【打钩】此服务器要就加密SS

2010-07-14 19:36:00 34371 3

转载 Android开发工具使用之adb

Android开发工具使用之adb关键字: android 工具使用 adbadb(Android Debug Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作:1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;2、在设备上运行shell命令;3、管理设备或手机模拟器上的预定端

2010-05-07 19:45:00 997

转载 用 snprintf / asprintf 取代不安全的 sprintf

用 snprintf / asprintf 取代不安全的 sprintf在 C 語言裡,要建立一個字元陣列的字串,常常會使用 sprintf() 這個函數來做格式化的處理。但是實際上,這個函式卻不是那麼「安全」。怎麼說呢?sprintf() 的整個介面長的樣子的是:int sprintf ( char * str, const char * format, ... )也就是在使

2010-05-06 17:00:00 2732

转载 typedef和#define的用法与区别

方便以后自己查找,把网上看到的两篇文章都转载到这里。一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef    int       INT;typedef    int       ARRAY[10];typedef   (int*)   pINT;t

2010-01-03 12:26:00 1774

转载 Linux 杀死进程方法大全(kill,killall)

*杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。 首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令: # kill -pid 注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前

2009-12-29 11:04:00 59727

转载 shell 读取配置文件

<a onclick="function onclick(){tagshow(event, shell);}" href="javascript:;" target="_self">shell 读取配置文件来取参数的值. 在许许多多<a onclick="function onclick(){tagshow(event, %D7%D4%B6%AF%BB%AF);}"

2009-12-29 11:02:00 3919

转载 linux开机启动

 linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。阅读之前建议先看一下附图。本文中假设inittab中设置的init tree为:/etc/rc.d/rc0.d/etc/rc.d/rc1.d/etc/rc.d/rc2.d/etc/rc.d/rc3.d/etc/rc.d/rc4.d/etc/rc.d/rc5.d/etc/rc.d/rc6.d/etc

2009-12-22 08:51:00 854

原创 Ubuntu操作相关

>>Ubuntu桌面图片保存位置:/usr/share/backgrounds/Kubuntu桌面图片保存位置:/usr/share/wallpapers/Ubuntu通过apt下载的软件包的保存位置:/var/cache/apt/archives/>>访问网上位居的主机:smb://192.168.1.37 >>apt-get命令的详细说明常用的APT命令参数

2009-12-11 09:40:00 977

转载 Ubuntu编译驱动程序的准备(转)

ubuntu不带linux内核源码,需要自己下载安装。1,查看自己的内核版本uname -r2,查看源内的内核源码类表apt-cache search linux-source 3,下载安装内核源代码sudo apt-get install linux-source-2.6.27      //我选的是这一个,自己看着办吧4,等待........下载完成后,在/us

2009-12-09 14:31:00 869

原创 用vim格式化代码

格式化全文: gg=G自动缩进当前行: ==这个是原文节选:14.6. How do I format/indent an entire file?You can format/indent an entire file using the gg=G command, where     gg - Goto the beginning of the file     =   -

2009-11-27 11:22:00 992

转载 如何使用gettext, po, mo制作多语言应用程序 (转)

一、翻译档制作部分 1、制作po档(1)生成template文件xgettext -k_ -o ui_pref.pot ui.c pref.pot head.#, fuzzymsgid ""msgstr """Project-Id-Version: PACKAGE VERSION/n"

2009-10-28 16:11:00 3291

转载 #pragma once与 #ifndef的区别

为了避免同一个文件被include多次1   #ifndef方式2   #pragma once方式在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。    方式一:     #ifndef __SOMEFILE_H__    #define __SOMEFILE_H__    ... ... // 一些声明语句    #endif    方式二:

2009-07-15 10:05:00 554

转载 C#日写点滴(4)

Array类:   用括号声明数组是C#中使用Array类的记号。在后台使用C#的语法,会创建一个派生于抽象蕨类的Array的新类,这样,就可以使用Array类为每个C#数组定义的方法和属性了。如:Length属性、Rank属性、及foreach语句迭代数组。   由于Array是一个抽象类,所以不能使用构造函数来创建数组。除了可以使用C#语法创建数组实例外,还可以全用静态方法Crea

2009-05-25 11:15:00 682

native_heapdump_viewer.py

am dumpheap -n pid后,方便进行native调用分析。 native_heapdump_viewer.py origin.heap > after.heap

2019-05-25

android 8.1设置添加Ethernet功能选项

+ &lt;meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.EthernetSettings" /&gt;

2018-09-18

android FBE应用验证

Android 7.0 及更高版本支持文件级加密 (FBE)。采用文件级加密时,可以使用不同的密钥对不同的文件进行加密,并且可以对这些文件进行单独解密。

2017-12-29

C++.STL中文版

C++.STL中文版,不错的资料,有需要的可以看看。

2013-09-24

如何成为Android高手

如何成为Android高手,分享,不错的东东。

2013-09-22

Linux设备驱动程序第三版2.6

Linux设备驱动程序第三版2.6+中英文+样例代码

2013-09-22

Linux程序设计第四版

linux 开发必读书目,特别是对初学者,深入浅出

2012-09-11

Linux_C_函数

Linux C 函数 使用手册 本手册由Linhan整理,编写。版权所有者为Linhan。

2010-12-03

makefile中文手册

makefile中文手册本,文比较完整的讲述 GNU make工具,涵盖 GNU make的用法、语法。同时重点讨论如何 为一个工程编写 Makefile。为徐海兵翻译的。

2010-12-03

空空如也

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

TA关注的人

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