Android
Kslient
这个作者很懒,什么都没留下…
展开
-
android系统耗时关键字
android 系统耗时分析原创 2022-10-21 09:53:16 · 1491 阅读 · 1 评论 -
Priv-app permission异常
priv-app 权限异常原创 2022-06-30 17:38:50 · 753 阅读 · 0 评论 -
SeAndroid 整理
https://blog.csdn.net/qq_40083589/article/details/105328453https://blog.csdn.net/weixin_30469895/article/details/99894021https://www.jb51.net/article/144744.htmhttps://blog.csdn.net/fu_zk/article/details/41548647https://blog.csdn.net/tkwxty/article/det原创 2022-05-30 09:10:24 · 172 阅读 · 0 评论 -
AS 打开android源码跳转
https://www.jianshu.com/p/2ba5d6bd461e原创 2022-01-16 23:53:57 · 1864 阅读 · 0 评论 -
SeAndroid修改
----------【例子1】:通过修改shell的权限,使其无法设置属性:先来看shell的te,如下所示:[external/sepolicy/shell.te]Domain for shell processes spawned by ADBtype shell, domain;type shell_exec, file_type;#shell属于unconfined_domain,unconfined即是不受限制的意思unconfined_domain(shell)Run app_p原创 2022-01-16 23:15:32 · 1421 阅读 · 0 评论 -
sharedPreference特性
SharedPreference(下文简称sp)是一种轻量级的存储方式,是它的设计所决定的:sp在创建的时候会把整个文件全部加载进内存,如果你的sp文件比较大,那么会带来几个严重问题:第一次从sp中获取值的时候,有可能阻塞主线程,使界面卡顿、掉帧。解析sp的时候会产生大量的临时对象,导致频繁GC,引起界面卡顿。这些key和value会永远存在于内存之中,占用大量内存。子线程从文件中加载xml文件private void startLoadFromDisk() { synchroni原创 2021-12-20 20:19:24 · 1308 阅读 · 0 评论 -
SharedPreference中apply方法导致的ANR问题
crash 堆栈信息如下。从 crash 收集平台上来看,有几个类似的堆栈信息。唯一的区别就是 ActivityThread 的入口方法。除了 ActivityThread 的 handleSleeping 方法之外,还有 handleServiceArgs、handleStopService、handleStopActivity。ActivityThread 的这几个方法是 Activity 或 Service 的生命周期变化的时候调用的。从堆栈信息来看,组件生命周期变化,导致调用 QueueWork原创 2021-12-20 19:41:12 · 154 阅读 · 0 评论 -
android mFirstTouchTarget细节
此demo本质是一个viewgroup类型的控件,可以跟随手指的拖动而移动位置,内部可以包含一些子view来显示内容,同时子view可以响应点击事件。由于外层viewgroup要响应移动事件,故自然而然的想到了要在外层viewgroup中拦截move事件。于是有了下面的写法。@Overridepublic boolean onInterceptTouchEvent(MotionEvent event) {int action = event.getAction();switch (action)转载 2021-12-19 13:47:53 · 314 阅读 · 0 评论 -
WebView部分源码概览
Android与JS通过WebView互相调用方法(二者沟通的桥梁是WebView),实际上是:Android去调用JS的代码JS去调用Android的代码对于Android调用JS代码的方法有2种:通过 WebView.loadUrl()通过 WebView.evaluateJavascript()对于JS调用Android代码的方法有3种:通过 WebView.addJavascriptInterface() 进行对象映射通过 WebViewClient.shouldOverrideUr转载 2021-12-16 11:38:09 · 2384 阅读 · 0 评论 -
WebviewJavascriptBridge实现原理
一、什么是 JSBridge?JSBridge 是一种 webview 侧和 native 侧进行通信的手段,webview 可以通过 jsb 调用 native 的能力,native 也可以通过 jsb 在 webview 上执行一些逻辑。二、JSB 的实现方式在比较流行的 JSBridge 中,主要是通过拦截 URL 请求来达到 native 端和 webview 端相互通信的效果的。这里我们以比较火的 WebviewJavascriptBridge 为例,来解析一下它的实现方式。源码地址:h转载 2021-12-16 11:34:03 · 2020 阅读 · 0 评论 -
Android Surface
前一篇文章介绍了android的显示系统,这篇文章中,我们把视角往上层移动一下,研究一下framework是如何与surfaceflinger进行业务交互的。如何创建surface,如何显示窗口等等,所有的这一切都是通过系统服务WindowManagerService与surfaceflinger来进行的。android中的Surface机制这一块代码写的比较难理解,光叫Surface的类就有3个,因此本篇文章从两部分来分析,首先,想要理解Surface机制,还是需要首先理清各个类之间的关系。其次,在理解转载 2021-12-12 20:03:00 · 727 阅读 · 0 评论 -
android硬件加速基础
理解Android硬件加速原理的小白文 - 简书转载 2021-12-07 21:47:12 · 72 阅读 · 0 评论 -
Android gradlew 依赖树
查看依赖树注意不同flavor对应的依赖查看不同configuration(debug/release)对应的依赖查询所有依赖:./gradlew -q :app:dependencies查询所有依赖并写入文件:./gradlew -q :app:dependencies > log.txt查询某个configuration依赖:默认可以查询以下这些config:releaseRuntimeClasspath、debugRuntimeClasspathreleaseCompileC原创 2021-09-20 09:33:36 · 881 阅读 · 0 评论 -
As 2020.3.1 版本 git log 中文乱码
Android Studio 2020.3.1Mac版本git面板出现乱码解决方案:打开Preferences菜单选择Appearance,然后勾选Use custom font,点击右下角apply。(自己的本地的terminal 没问题, 只是 as 中的git log 有问题)原创 2021-09-15 11:22:36 · 181 阅读 · 0 评论 -
LiveData 粘性消息注意点
anroid Jetpack LiveData 注册过之后状态再次成为active时,会收到之前订阅过的旧消息具体源码分析 见下面这篇文章末尾源码部分https://tech.meituan.com/2018/07/26/android-livedatabus.html简单有效的解决方案是包装一层observer, 其中添加 version 字段来控制发布值得时候才增加version 号, 订阅的时候不升version 号参见:https://github.com/KunMinX/UnPeek原创 2021-08-21 19:12:20 · 177 阅读 · 0 评论 -
Android NDK 简介
使用NDK可以快速开发C、C++的动态库,并自动将这些so文件与其他内容一起打包成APK提供了把.so 和 .apk 打包的工具原创 2021-08-16 21:47:50 · 62 阅读 · 0 评论 -
Android gradle 变量定义
在根build.gradle 文件中 的 buildscript 和 allprojects直接 用变量名字即可访问,或者 在字符串中 使用 $变量名访问va 或者 $va 或者 rootProject.ext.va在根build.gradle 文件中 的 和 allprojects / buildscript 同级定义的变量使用该方式 访问同上在单个module 里面定义的build.gradle 是 局部的, 不能全部访问...原创 2021-08-16 19:51:50 · 781 阅读 · 0 评论 -
android 逆向
android 逆向中的概念和工具mobile sandboxDroid kong fuAndbugJDWP远程调试和安全APKinspectormercuryIDA proc32asmsmali 和 dalvik 指令集原创 2021-07-02 15:05:39 · 49 阅读 · 0 评论 -
anroid 热修复方式
https://mp.weixin.qq.com/s/uY5N_PSny7_CHOgUA99UjA?spm=a2c4g.11186623.2.2.35f2788fEoDr4e原创 2021-06-28 15:47:33 · 48 阅读 · 0 评论 -
android 官方网页源码查看
1. 地址https://cs.android.com/2. 搜索方式https://developers.google.com/code-search/user/search-files原创 2021-05-08 18:52:55 · 113 阅读 · 0 评论 -
Gradle plugin: 生成dimen 插件
该插件 是用来生成dimen.xml记录下 写该插件的遇到的一些问题1. groovy 语法不熟2. 搭建插件开发的环境(最终为了方便测试使用了BuildSrc的工程结构)BuildSrc 工程的结构 容易测试使用maven 发布到本地的方式 (测试太繁琐)markupBuilder 添加节点的方式markBuilder.resources { dimenPairs.each { item -> String new.原创 2021-01-13 15:43:35 · 113 阅读 · 0 评论 -
调试gradle 插件
1. 定义remote 类型新的 Run Configuration2, Build 配置里面 针对相应的Task 加上 对应的 Run Configuration(对应的VMOptions 使用1中的策略)3. 在gradle 脚本中打断点, 先运行1 中新的Configuration, 在运行2中的 对应的taskhttps://www.cnblogs.com/milovetingting/p/12364319.html...转载 2020-07-15 08:30:28 · 139 阅读 · 0 评论 -
android设置修改CheckBox框大小、颜色
首先:大小由java代码来设置;颜色由图片来决定;注意:如果有人的checkbox太大或太小,应该是选择的drawable文件夹不对,我这个是大尺寸的,放在了drawable-xxhdpi下。如果你用自己的图片,请根据美工做图的大小来放到相应的drawable下。准备:两张用作CheckBox选中和没有选中状态的图片到res的drawable-xxhdpi中,名称可以设置如下:...原创 2020-03-03 21:57:11 · 1949 阅读 · 0 评论 -
Android多进程程序抓trace文件
对于多进程程序需要注意:调用startMethodTracing的位置可能会导致生不成.trace文件确保在同一个进程中startMethodTracing()和stopMethodTracing()方法对应原创 2020-02-25 23:57:54 · 480 阅读 · 0 评论 -
ScrollView监听滑动的方法参数含义
1. Overrideprotected void onScrollChanged(int l, int t, int oldl, int oldt)l 代表滑动后当前ScrollView可视界面的左上角在整个ScrollView的X轴中的位置,oldl 也就是滑动前的X轴位置。t 代表滑动后当前ScrollView可视界面的左上角在整个ScrollView的Y轴上的位置,old t...转载 2020-02-13 18:47:30 · 665 阅读 · 0 评论 -
Android使用BusyBox
Android中使用adb shell进入命令操作,但是很多Linux命令是没有的,比如clear,vi等等,adb shel里面那些命令都是常见Linux命令的阉割缩水版,如果我们希望使用完整版的,就需要安装BusyBox,下面看看安装步骤。前提:手机已经Root1. 下载BusyBox的binary,打开这个地址 http://www.busybox.net/downloads/bin...转载 2020-02-12 11:27:09 · 1021 阅读 · 0 评论 -
SettingProvider
SettingsProvider 顾名思义是一个提供设置数据共享的 Provider,SettingsProvider 和Android 系统其它 Provider 有很多不一样的地方,如:SettingsProvider 只接受 int、float、string等基本类型的数据;SettingsProvider 由 Android 系统 framework 进行了封装,使用更加快捷方便...转载 2020-01-08 13:44:27 · 701 阅读 · 0 评论 -
android卡顿可能的原因
https://blog.csdn.net/c_z_w/article/details/86477186转载 2019-12-24 23:23:43 · 231 阅读 · 0 评论 -
关于Android Binder的理解
写给 Android 应用工程师的 Binder 原理剖析一. 前言记录阅读这篇文章的心得1.binder一次通信是如何实现只拷贝一次2.IPC-->内核支持-->(Linux)动态内核支持-->(Linux)内存映射3.Binder-->Parcel(对象序列化/字节码)-->IInterface Binder是一个可以跨进程传输的对...转载 2019-11-19 02:21:47 · 105 阅读 · 0 评论 -
Android 安装包存储路径分析
Android 文件系统在 Android Studio 可以在 DDMS 的 File Exploer 窗口中查看文件系统,下图就是一个 Android 文件系统目录。Android 文件系统Android 存储分类 (/data 目录和 /sdcard 目录)Android 的存储可以分为三类:内存、内置 SD 卡,外置 SD 卡一、内存对应的就是 /da...转载 2019-11-12 09:43:33 · 61871 阅读 · 2 评论 -
Android中的标题栏不显示问题的解决
今天遇到了在Android中的标题栏不显示的问题,最终解决了该问题。现对该问题总结以下。我使用的开发工具是Android Studio。标题栏不显示的原因是自定义Activity是继承自类库中Activity。而在res/styles.xml文件中的AppTheme如下:style name="AppTheme" parent="Theme.AppCompat.Light.DarkActi原创 2017-01-27 12:54:14 · 2832 阅读 · 3 评论 -
真机测试app时候就出现了INSTALL_FAILED_USER_RESTRICTED的安装错误
总结下今天遇到问题的解决方法:问题为:真机测试app时候就出现了INSTALL_FAILED_USER_RESTRICTED的安装错。详细报错为:It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-ins原创 2017-01-31 22:05:12 · 4404 阅读 · 0 评论 -
android studio中导入RecyclerView
在Android Stuido中引用RecyclerView的方法:修改/app/buid.gradle文件如下(加入如下的两条语句)compile 'com.android.support:recyclerview-v7:25.+'compile 'com.android.support:cardview-v7:25.+'这里需要注意的是:一定是在android/app/bui原创 2017-02-24 00:28:54 · 524 阅读 · 0 评论 -
Android菜单项图标不显示
mark下今天遇到的问题,在布局XML文件中设置了菜单项的图标,但测试时就是不显示菜单项图标。不显示菜单项图标的代码如下:menu xmlns:android="http://schemas.android.com/apk/res/android"> item android:id="@+id/menu_item_search" android原创 2017-02-01 22:09:38 · 2646 阅读 · 0 评论 -
<xliff>使用
2. 小红今年%d岁了,上%s年级!3. String test = String.format(getResources().getString(R.string.test_xliff), 7, "小学二");转载 2017-03-08 18:23:33 · 14697 阅读 · 0 评论 -
Px和dp之间的区别
相信每个Android新手都会遇到这个问题,希望这篇帖子能让你不再纠结。px:即像素,1px代表屏幕上一个物理的像素点;px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同,如下图所示(图片来自android developer guide,下同)。偶尔用到px的情况,是需要画1像素表格线或阴影线的时候,用其他单位如dp会显得模糊。dp:这转载 2017-03-18 23:59:58 · 1081 阅读 · 0 评论 -
屏幕相关的辅助类
import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Rect; import android.util.DisplayMetrics; import android.view.View; imp转载 2017-03-19 18:32:59 · 201 阅读 · 0 评论 -
在Android Studio中进行单元测试和UI测试
本篇教程翻译自Google I/O 2015中关于测试的codelab,掌握科学上网的同学请点击这里阅读:Unit and UI Testing in Android Studio。能力有限,如有翻译错误,请批评指正。如需转载,请注明出处。Github下载测试源码目录在Android Studio中进行单元测试和UI测试 - 1.概述在Android Studio中转载 2017-03-19 23:18:30 · 405 阅读 · 0 评论 -
android:ListView缓存机制及BaseAdapter的三重境界(逗比式,普通式,文艺式)
大家都知道listview的格式是一定的 而数据源确是多重多样的 这时候 就需要一种适配器来把数据源转换成listview要显示的格式baseAdapter就诞生了。listview和gridView的显示和缓存机制 如下图大家都知道屏幕的大小是有限的 可是listview中的数据却可能很多 所以手机不能一下子展示所有的数据 它只会加载屏幕上显示的数据 。如上图,当我们把屏转载 2017-03-10 19:53:08 · 369 阅读 · 0 评论 -
apk/dex文件
1. *.apk文件APK是Android Package的缩写,即Android安装包。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。使用Android打包工具(aapt)将DEX文件,资源文件以及AndroidManifest.xml文件组合成一个应用程序包(APK)。Dex是Dalvik VM executes的全称,即Android Dalvik执转载 2017-03-13 00:51:23 · 388 阅读 · 0 评论