android
文章平均质量分 78
cigogo
code,无处不在。。。
展开
-
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 · 4923 阅读 · 0 评论 -
由硬件支持的密钥库-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 阅读 · 0 评论 -
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 · 3625 阅读 · 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 · 1469 阅读 · 0 评论 -
关于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 · 8763 阅读 · 0 评论 -
记一次android native 内存泄漏分析
最近有客户反馈,使用平台的SDK,进行扫码时,使用几个小时后,内存就变占满了,然后呢,系统就重启了。于是,给客户脚本,ps之类拷机,定位,发现是system_server出现内存泄漏。这个大家伙,有java,有native.通过的抓取2分钟时间内dumpsys meminfo差异 :主要在Native Heap增加。好吧,确认是Native Heap出现内存泄漏无疑。Nat...原创 2019-05-25 16:36:33 · 5957 阅读 · 0 评论 -
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 · 6963 阅读 · 0 评论 -
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 阅读 · 0 评论 -
诊断原生代码崩溃问题
诊断原生代码崩溃问题以下部分包括原生代码崩溃的常见类型、对示例崩溃转储的分析以及有关 tombstone 的讨论。每种崩溃类型都包括示例 debuggerd 输出,其中突出显示的关键证据可以帮助您区分特定类型的崩溃问题。提示:如果您之前从未遇到过原生代码崩溃问题,请从调试原生 Android 平台代码着手。中止中止操作...转载 2019-01-31 17:15:00 · 2732 阅读 · 1 评论 -
android拷机获取内存使用的脚本
在android的SDK的开发过程中,经常会遇到内存泄漏的问题,这时候,我们需要一些手段进行排查定位。有时候,泄漏问题可能不是十分明显,需要长时间拷机才现复现到,这时候,我们可以让机器拷机时同步执行一些脚本,记录每个时间段内存情况,便于我们进一步分析。 下面的脚本,获取每5分钟的meminfo,ps进程情况:#!/system/bin/shINTERVAL=300TIM...原创 2018-09-26 17:25:56 · 435 阅读 · 0 评论 -
应用冷启动画面显示方式(转)
原标题: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 阅读 · 0 评论 -
Android 8.1 增加以太网设置功能
Android 自带EthernetService,默认ip获取方式是动态分配(DHCP),有时候需要手动设置静态IP,但系统没有此项配置,因此我们就自己给它添加一项,将此功能放在了设置应用中。看到有此人要代码,链接在文章最下面,请自行下载功能所在位置如下图:涉及到的修改: AndroidManifest.xml ...原创 2018-09-18 09:37:42 · 16928 阅读 · 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 阅读 · 0 评论 -
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 · 1356 阅读 · 0 评论 -
Android 文件级加密
Android 文件级加密,关于FBE相关内容转载 2017-12-29 16:49:36 · 15304 阅读 · 2 评论 -
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 阅读 · 0 评论 -
Android电池信息获得问题
之前有写过一笔记,但后面发现是错误的,感谢之前帮我指出错误的博友!设置应用的:PowerUsageSummary.java文件,会判断:if (mPowerProfile.getAveragePower(PowerProfile.POWER_SCREEN_FULL) < 10)即亮屏时的功耗。这边主要通过:power_profile.xml 进行配置,默认配置是一个很小的值,如0.1m原创 2013-06-20 16:39:41 · 1528 阅读 · 0 评论 -
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 评论