
android
文章平均质量分 88
android 注意点小结,android总结 root 专栏
私房菜
独乐乐不如众乐乐!!!!
展开
-
Android ART 虚拟机简析
用来执行显示GC,例如 system.gc() 接口;,用来执行并行GC,只能被 ART 运行时内部的GC 守护线程调用;,ART运行时内部调用的GC 接口,可以执行各种类型的GC;ART runtime 将空间划分:Image Space、Malloc Space、Zygote Space、Bump Pointer Space、Region Space、Large Object Space。原创 2024-05-20 13:52:35 · 1318 阅读 · 0 评论 -
Android GKI 架构简介
本文简单介绍下GKI 相关的知识点,方便更快的了解GKI 概念和架构,如果想要了解细节,还是要看官网并结合实际。原创 2022-08-15 16:28:21 · 17785 阅读 · 0 评论 -
Android.bp 中添加宏控
代码基于:Android R0. 前言在Android.mk 中有时候需要根据某个条件添加宏:ifeq ($(ENABLE_USER2ENG),true)LOCAL_CFLAGS += -DALLOW_ADBD_DISABLE_VERITY=1LOCAL_CFLAGS += -DENABLE_USER2ENG=1endif但是Android.bp 只是纯粹的配置文件,不包括分支、循环等流程控制。如果想要在Android.bp 中添加宏控,也是可以做到的。...原创 2021-12-01 16:02:59 · 5583 阅读 · 7 评论 -
Android start stop 命令使用简介
0. 前言我们经常在修改framework 重要东西不是直接reboot 平台进行验证,而是使用命令:原创 2021-11-02 09:23:29 · 3881 阅读 · 0 评论 -
论android 中list erase用法
今天同事碰到一个有关list segment 的问题,大神们可以一起讨论下。void clearBufList(){ pthread_mutex_lock(&mMutex); DataBuf *buf; List<DataBuf *>::iterator item = mBufList.begin(); for ( ; item != mBufList.end(); item++) { buf = *item; f...原创 2021-06-11 16:51:10 · 423 阅读 · 1 评论 -
C++单元测试框架Google Test系列(gtest)
目录1. 前言2. 断言示例操作符<<布尔值检查数值型数据检查字符串检查显示返回成功或失败异常检查Predicate Assertions浮点型检查类型检查3. 事件机制全局事件TestSuite事件TestCase事件4. 参数化旧方案使用参数化后的方案参数化后的测试案例名类型参数化5. 死亡测试...转载 2019-11-01 16:38:47 · 3922 阅读 · 0 评论 -
Android APK 反编译操作详解
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对该应用的APK进行反编译查看。获取到源码,就能获取到很多信息,如加密解密算法、应用的逻辑实现等等。原创 2015-08-18 16:00:38 · 4842 阅读 · 0 评论 -
CTS/GTS 常见问题汇总
从log 中可以直接看出问题,应该是对应package 中某些权限是runtime permission,但是该package 的SDK 版本小于23.修改方法就是将其SDK 的版本设为 >= 23 即可。原创 2018-07-31 15:20:26 · 5931 阅读 · 0 评论 -
GTS 中testPersistentProcessMemory fail 详解
进入测试函数 testPersistentProcessMemory():首先通过calculatePersistentMemoryUsage() 函数确定经过 dupmsys -t 30 meminfo 之后所有 Persistent 进程的内存,存放在变量 memoryKb 中。接着通过getMaxPersistentMemoryAllowed() 函数,确定 GTS 允许的最大 persistent memory,存放在变量 maxMemoryKb中。原创 2023-09-14 17:13:33 · 384 阅读 · 0 评论 -
GTS 中testPeakPssOfAllApps fail 详解
GTS 在测试 case armeabi-v7a GtsMemoryHostTestCases 的时候出现下面异常,本文总结一下。com.google.android.memory.gts.AllAppsMemoryHostTest#testPeakPssOfAllApps原创 2023-09-14 20:50:56 · 557 阅读 · 0 评论 -
GTS 中testForBlacklistedApps fail 详解
来源:https://blog.youkuaiyun.com/shift_wwx/article/details/81565909 GTS 在测试case armeabi-v7a GtsAppBlacklistDeviceTestCases 的时候出现下面异常,本文总结一下。com.google.android.appblacklist.gts.GtsAppBlacklistDeviceTes...原创 2018-08-10 16:49:05 · 3362 阅读 · 5 评论 -
GTS 中 testNumberOfHeadedApplications fail 详解
来源:https://blog.youkuaiyun.com/jingerppp/article/details/81569196 GTS 中 测试case armeabi-v7a GtsPlacementTestCases 的时候会出现下面的异常,本文总结一下。com.google.android.placement.gts.PreloadHeadedAppsTest#testNumberO...原创 2018-08-10 20:27:05 · 1501 阅读 · 0 评论 -
GTS 中testCoreGmsAppsPermissionsWhitelisted fail 详解
来源:https://blog.youkuaiyun.com/shift_wwx/article/details/81304574 GTS 中 测试case armeabi-v7a GtsPlacementTestCases 的时候会出现下面的异常,本文总结一下。com.google.android.placement.gts.CoreGmsAppsPrivappPermissionsTest...原创 2018-07-31 15:43:20 · 3453 阅读 · 0 评论 -
GTS 中 testServicesLibHostAppSignedCorrectly fail 详解
来源:https://blog.youkuaiyun.com/shift_wwx/article/details/81240876 GTS 测试 armeabi-v7a GtsOsTestCases 的时候会出现两个fail:com.google.android.os.gts.RequiredComponentsTest#testServicesLibHostAppSignedCorrectl...原创 2018-07-27 17:23:25 · 1535 阅读 · 0 评论 -
GTS 中testDefaultGrantsWithRemoteExceptions fail 详解
最近在做GMS 的验证,其中测试case的时候出现了异常,有些注意点这里总结一下。1. framework 中轮询到的app,test 中也要能轮询到,这要求轮询的条件要一样。这个就是问题2 的原因2. framework 中grant 的app 默认runtime permission 在test 中也必须是一样的。这就要求,默认的DefaultPermissionGrantPolicy.java 文件不能多做权限方面的添加,这个就是问题1 的原因。原创 2018-07-23 19:19:31 · 8241 阅读 · 16 评论 -
Android 系统中WatchDog 日志分析
Android 系统中的 WatchDog 详解一文中通过source code详细的分析了 WatchDog 的软件设计原理和监测过程,这一篇结合实例对WatchDog 做进一步的分析。原创 2018-07-13 14:23:51 · 6431 阅读 · 0 评论 -
Android 系统中的 WatchDog 详解
Watchdog字面上是“看门狗”的意思,有做过嵌入式低层的朋友应该知道,为了防止嵌入式系统MCU里的程序因为干扰而跑飞,专门在MCU里设计了一个定时器电路,叫做看门狗。当MCU正常工作的,每隔一段时间会输出一个信号给看门狗,也就是所谓的喂狗。如果程序跑飞,MCU在规定的时间内没法喂狗,这时看门狗就会直接触发一个reset信号,让CPU重新启动。在Android系统的framework中,设计了一个系统服务Watchdog,它类似于一个软件看门狗,用来保护重要的系统服务。原创 2018-07-12 20:08:27 · 22055 阅读 · 1 评论 -
java.lang.IllegalStateException: Not allowed to start service Intent
先来看下log:11-05 04:47:32.468 911 911 E AndroidRuntime: FATAL EXCEPTION: main11-05 04:47:32.468 911 911 E AndroidRuntime: Process: com.shift.phonemanager, PID: 91111-05 04:47:32.468 911 ...原创 2018-08-31 16:59:00 · 6389 阅读 · 0 评论 -
protected-broadcast 规范使用(ERROR: Sending non-protected broadcast)
这是我在一次开发中出现的,系统中需要发送一个应用自定义的广播,send 之后会报出Sending non-protected broadcast 的异常。借此机会来解析protected broadcast 的使用,我们在中了解了broadcast 发送的整个过程,通过Context 的接口最终会调用到AMS 中broadcastIntent()。原创 2018-09-03 16:26:10 · 57940 阅读 · 13 评论 -
Context.startForegroundService() did not then call Service.startForeground()
从 Android 中service 详解 和Android service 启动篇之 startForegroundService 中我们知道在android 8.0 禁止启动后台服务。提出通过startForegroundService() 启动前台服务。但是必须要配合在service 中调用Service.startForeground(),不然就会出现ANR 或者crash。ANR l...原创 2018-09-07 17:34:57 · 13014 阅读 · 0 评论 -
logcat 命令小结
文章出处:http://blog.youkuaiyun.com/shift_wwxlogcat是android系统中的一个命令,是一个可执行的bin文件,放置在/system/bin目录下。root@android:/system/bin # ls -l logcat -rwxr-xr-x root shell原创 2013-09-05 14:29:57 · 1918 阅读 · 0 评论 -
Android中 logd 详解
logd 是Android L版本提出来的概念,其作用是保存Android运行期间的log(日志)。在Android L之前,log由kernel的ring buffer 保存,在Android L之后,log保存在用户空间。源码基于:Android P。原创 2019-04-09 11:21:30 · 22923 阅读 · 1 评论 -
Android Runtime Permission 详解
前言:在Android 6.0 之前权限管理存在一些弊端:权限系统只会在安装的时候询问一次,用户可以选择性的授予应用相关权限。但是一旦安装了,应用软件会在用户毫不知情的情况下访问权限内的所有东西。 在Android 6.0 之前权限都称为install time permission,应用软件在安装以后用户不能修改permission 的授权情况,也不允许对permission 进行单独...原创 2018-05-04 15:31:34 · 10123 阅读 · 3 评论 -
Android 9.0中sdcard 的权限和挂载问题
Android 从6.0 开始引入了,应用对于storage 进行读取、存储的时候,需要注册、申请对应的权限。Android 8.0中对于sdcard 读写只需要申请权限即可使用,可以在Android 9.0 中同样的应用执行同样的步骤,却提示了Permission denied。本文将借此对sdcard 进行简单地剖析。代码基于版本Android 9.0正常使用storage 读写操作,需要注意一下几步:1、申请对应的storage 权限2、确定应用获取到正确的mount mode。原创 2019-01-02 19:37:42 · 38613 阅读 · 23 评论 -
论Android 9.0 外置sdcard 读写
前言在上一篇博文 Android 9.0中sdcard 的权限和挂载问题 中分析了Android 9.0 中sdcard 挂载和权限问题,大概知道外置sdcard 读写失败的因素。但是在预置的应用(例如DocumentsUI)中有很多都是可以直接对外置sdcard 读写而并不需要对应的权限,甚至是storage 的两个runtime permission都无需申请,这个是为什么呢?本文会针对这...原创 2019-01-08 19:34:37 · 15622 阅读 · 10 评论 -
Android P 对非 SDK 接口的限制
前言:Android 9(API 级别 28)引入了针对非 SDK 接口的使用限制,无论是直接使用还是通过反射或 JNI 间接使用。 无论应用是引用非 SDK 接口还是尝试使用反射或 JNI 获取其句柄,均适用这些限制。 有关此决定的详细信息,请参阅通过减少使用非 SDK 接口提升稳定性。一般来说,应用应当仅使用 SDK 中正式记录的类。 特别是,这意味着,在您通过反射之类的语义来操作某个...原创 2019-01-11 16:30:28 · 2198 阅读 · 0 评论 -
数据加密在Android 中的使用实例 ---- 总篇
算法可以看下博文:数据加密 ---- 总篇 应用实例:Android 中数据加密 ---- RSA加密Android 中数据加密 ---- SHA加密Android 中数据加密 ---- MD5加密Android 中数据加密 ---- 3DES加密Android 中数据加密 ---- DES加密Android 中数据加密 ---- DES加密Android 中数...原创 2018-11-21 16:32:58 · 861 阅读 · 0 评论 -
fragment 实现按键监听
前言:最近项目需要在fragment 中实现系统的按键监听,网上很多都是通过对ListView 进行监听,但是这种依赖focus的效果不是很好。这里总结下自己的实现方式。 先来段网上分享: @Override protected View initView(LayoutInflater inflater, ViewGroup container, Bundle ...原创 2018-10-29 10:00:58 · 4833 阅读 · 1 评论 -
android PMS 如何解析 APK
文章来源:https://blog.youkuaiyun.com/shift_wwx/article/details/80430259 前言:PMS 是android 系统管理的核心,这一篇主要就是分析PMS 是如何解析APK 中的所有信息。请大神不吝指教~~ scanPackageLI()PMS 的构造中会通过 scanDirTracedLI() 对各个指定的目录进行扫描: ...原创 2018-05-24 12:56:16 · 2874 阅读 · 0 评论 -
Android 中的SparseArray
SparseArray是专门为Android提供了一种更加适合Android开发的数据结构,与HashMap比较效率会更高。初看之下,好像是一种数组,其实不然。数组的index是连续的。而SparseArray可以不连续,所以导致SparseArray就具有HashMap的一些特性,但是比HashMap的性能要好。既然性能要好很多,那是不是所有可以用HashMap的地方都可以用SparseArray代替呢?也不尽然。SparseArray的value可以是任意类型,但它的key只能是Integer类型。原创 2015-08-10 19:49:49 · 1242 阅读 · 0 评论 -
android 中的一些小case
最近在看android的source code,中间碰到了一些基础的小case,觉得还是可以的,就总结下来方便以后倒腾。1. string 中几个可能用到的函数---------见SystemKeyServices.java private String stringToAscii(String value) { StringBuffer sbu = new Str原创 2014-11-25 18:45:43 · 1055 阅读 · 0 评论 -
android 从sdcard启动小结
前言:最近在搞pxp,需要从sdcard启动android,虽然之前原创 2014-07-25 11:01:24 · 4146 阅读 · 0 评论 -
adb命令大全
Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器的状态。 可以通过下列几种方法加入adb:在设备上运行shell命令 通过端口转发来管理模拟器或设备 从模拟器或设备上拷贝来或拷贝走文件 下面对adb进行了介绍并描述了常见的使用. Android 调试系统是一个面对客户服务系统,包括三个组成部分: 一个在你用于开发程序的电脑上原创 2013-06-21 22:46:20 · 2260 阅读 · 3 评论 -
android 4.4 shareactionprovider小结
最近碰到一个问题,在gallery中播放一个图片,原创 2014-07-11 11:13:33 · 3105 阅读 · 0 评论 -
android ActionBar小结
文章来源:https://blog.youkuaiyun.com/shift_wwx/article/details/37822199前言:最近遇到ActionBar,之前没有研究过,所以就做了一下总结。网上碰到了几个博文挺好的,就保存了。1、什么是Action BarAction Bar被认为是新版Android系统中最重要的交互元素,在程序运行中一直置于顶部,主要起到的作用在于:1)突出显示一些重要操作(...原创 2014-07-15 18:48:38 · 1813 阅读 · 0 评论 -
AndroidManifest.xml补充之:andorid:configChanges
android:configChangesLists configuration changes that the activity will handle itself. When a configurationchange occurs at runtime, the activity is shut down and restarted by default, but declaring原创 2014-02-19 15:40:23 · 1739 阅读 · 0 评论 -
android am 命令总结
Android在shell中提供了am命令来发送Intent,它的源码为位于frameworks/base/cmds/am.它本身是用JAVA代码来实现的。执行am命令其实是通过运行shell脚本frameworks/base/cmds/am/am,然后在该脚本中运行app_process命令来启动am这个java程序的。frameworks/base/cmds/am/原创 2013-04-28 15:28:20 · 4788 阅读 · 0 评论 -
Activity之间的叠加
最近,碰到一个UI,要求是在点击某个button的时候,弹出另一个界面。然后这个界面并不是一般dialog就可以实现的。所以,这个界面需要用一个activity做,比较方便,更好维护。但是现在问题就出现,怎么能实现在一个activity上叠加另一个activity呢?经过一番调查研究后,发现只需要将弹出来的界面的theme设置为android:theme="@android:style/T原创 2013-04-28 14:45:28 · 4331 阅读 · 2 评论 -
android pm 命令总结
跟am命令一样,它的源码为位于frameworks/base/cmds/pm.pm CommandDescriptionlist packages [options] Prints all packages, optionally only those whose package name contains the text in.Options原创 2013-09-06 18:17:40 · 2755 阅读 · 0 评论 -
activity重复调用
由于部分原因,今天研究了一下在activity里面重复调用本activity。记录一下分析的过程和接口。UI上添加一个button,点击button重新启动本activity。code如下:Intent intent = new Intent();intent.setClassName("com.shift.teststartactivity", "com.shift.teststar原创 2013-04-28 15:27:02 · 1709 阅读 · 0 评论