自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(186)
  • 收藏
  • 关注

原创 adb shell dumpsys window windows 打印的地方

函数(hide) public String toString(String prefix)

2023-05-06 14:27:29 277 1

原创 GitHub: invalid username or password解决方法

git

2023-01-10 13:32:25 8732

原创 解决编译错误 Could not find android.arch.navigation:navigation-fragment-ktx:2.3.1.

gradle

2022-11-30 16:57:22 669

原创 Koin 注入框架 - Android 使用方法 及 问题记录

Koin

2022-08-30 16:04:25 1684 2

原创 Java_内部类、匿名内部类、Lambda表达、方法引用(双冒号)

匿名内部类

2022-08-23 11:10:44 165

原创 Spinner (点击展示选项)使用方法

1. xml 使用spinner控件 <Spinner android:id="@+id/orientation_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 2. 代码加载spinner控件 val spinner = findViewById&...

2022-05-18 14:13:03 1172

原创 Android 屏幕尺寸、屏幕分辨率(px)、屏幕像素密度(dpi)、密度无关像素(dp/dip)、屏幕适配

参考:Android屏幕适配全攻略(最权威的官方适配指导)_赵凯强的博客-CSDN博客_android 屏幕适配Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因、重要概念、解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将不再有疑惑!Android屏幕适配出现的原因在https://blog.csdn.net/zhaokaiqiang1992/article/details/

2022-05-13 21:18:35 1212

原创 Android View Sample(1) - RecyclerView/ViewPager2/SwipeRefreshLayout/MultiWindow/ConstraintLayout

共享Github 比较好的代码示例, 代码规范 且 容易入手。并且,自定义了一套输出log的框架,可以在运行时展现在应用界面上,更容易掌握关键。1. RecylerView 基础使用(可动态修改LayoutManager 为 LinearLayoutManager或者GridLayoutManager)https://github.com/android/views-widgets-samples/tree/main/RecyclerViewhttps://github.com/android.

2022-05-12 15:26:56 280

原创 打开有systrace生成的网页 trace.html,显示空白

解决方法:使用Chrome 浏览器, 并且先做以下操作:chrome-设置-高级-网站设置-Cookie-取消的选『阻止第三方Cookie』然后,右键trace.html -> 选择使用 Chrome 打开即可参考:systrace 生成 trace.html,打开后一片空白 - 简书systrace 生成 trace.html,打开后一片空白 报错: 方法1: (1) python2 -m CGIHTTPServer #开一个http服务(2) 打开...https...

2022-05-11 11:25:00 1497

原创 (Python2.7.x) Systrace 使用的坑,出现 ImportError: No module named XXX

Systrace 使用出现 ImportError: No module named win32con参考:Systrace environment configuration under Win7 - Krybothttps://blog.krybot.com/a?ID=01600-eb9b4186-bfb0-4335-969d-9bb5764fad22需要下载pywin32-227-cp27-cp27m-win_amd64.whlsix-1.13.0-py2.py3-none-any.w

2022-05-10 14:01:02 1231

原创 Android Adb命令(6) - 启动应用(Activity)之显示启动时间与方式

1. 应用 的启动方式可以分为 冷启动 和 热启动:冷启动:当启动应用时,后台没有该应用的进程,这时系统会又一次创建一个新的进程分配给该应用热启动:当启动应用时,后台已有该应用的进程(例:按back键、home 键,应用尽管会退出,可是该应用的进程是依旧会保留在后台,可进入任务列表查看)这样的启动会从已有的进程中来启动应用2. 使用adb 命令:adb shell am start -W [package]/[activity]则可以看到输出中的 :LaunchState: 代表启动

2022-05-09 14:28:40 2612

原创 第三方应用调用系统SO 库失败Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library

在Android 31平台,尝试使用第三方应用调用系统SO 库,会报如下的错误Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib64/XXX.so" needed or dlopened by "/apex/com.android.art/lib64/libnativeloader.so" is not accessible for the namespace "classloader-namesp

2022-04-29 10:47:06 8851 5

原创 Gradle: Execution failed for task ‘:processDebugManifest‘

新增加一个Module(Android lib) 编译时,提示:Gradle: Execution failed for task ':processDebugManifest'在stackoverflow 上搜索到的答案,其实有很多种原因造成:android - Gradle: Execution failed for task ':processDebugManifest' - Stack Overflow例如在AndroidManifest 里重复声明了 一个activity, 或者m

2022-04-21 13:58:33 1648

原创 Android Adb命令(5) - find 查找设备文件

adbshellfind / -name "*userdata*" > d:\result.txt则可以把设备上 文件名 有包含 userdata 的所有文件信息, 输出到 d盘的 result.txt 文件中,例如result.txt 里的内容为:/sys/fs/f2fs/userdata/dev/sys/block/by-name/userdata/dev/sys/fs/by-name/userdata/dev/block/mapper/userdata/dev/blo....

2022-03-31 20:38:18 10582

原创 Android Adb命令(4) - ps 查看进程信息

1. 查看所有进程信息:adb shell ps -A则得到:USER PID PPID VSZ RSS WCHAN ADDR S NAMEroot 1 0 12510356 5276 ep_poll 0 S initroot 2 0 0 0 kthreadd 0 S [kthreadd]...s

2022-03-03 15:15:44 12233

原创 Android studio: Could not resolve com.android.tools.build:gradle:3.2.1

Android studio 导入旧项目, 编译时出现:Could not resolve com.android.tools.build:gradle:3.2.1原因可能是由于连接仓库时,网络不太好修改build.gradle,改成阿里云的仓库,注释Google 官方的仓库 repositories {// mavenLocal()// jcenter()// maven {// url 'https://m..

2022-02-13 12:50:30 2800

原创 Android adb(0) 命令官网

https://ihax.io/adb-fastboot-commands/#ADB_Shell_Commands_Listhttp://adbcommand.com/adbshell/amC:\Users\XX>adb helpAndroid Debug Bridge version 1.0.41Version 31.0.2-7242960Installed as D:\02_sofeware_install\Sdk\platform-tools\adb.exeglobal op

2021-11-08 18:03:08 2358 1

原创 ApkTool 反编译Android apk (加固逆向)

下载 bat 和jar 地址(选择release版本相对稳定):GitHub 下载地址https://github.com/iBotPeaches/Apktoolhttps://github.com/iBotPeaches/Apktool/releases/tag/v2.6.0一、安装使用简单指南1. 拷贝 apktoo.bat 和 apktool_2.6.0.jar 到系统windows根目录:C:\Windows(如果无法打开C:\Windows, 则把该路径添加到 系统环境变量 里)

2021-11-07 22:31:59 2913

原创 Context/ContextImpl 获取APP存储空间路径

ContextImpl // type=null, return storage/emulated/0/Android/data/com.test.demo/files @Override public File[] getExternalFilesDirs(String type) { synchronized (mSync) { File[] dirs = Environment.buildExternalStorageAppFiles...

2021-11-02 23:40:36 1226

原创 Android Adb命令(3) - Activity界面 相关

使用 adb 查看当前界面情况(结合正则表达式命令grep), 分析界面启动问题。0. grep常用选项:  -E :开启扩展(Extend)的正则表达式。  -i :忽略大小写(ignore case)。  -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。  -n :显示行号  -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker  -c :显示总共有多少行被匹配到了,而不是

2021-11-02 22:59:02 484

原创 Android startActivity_Android 30

resolveIntentInternal:6431, PackageManagerService (com.android.server.pm)access$8500:466, PackageManagerService (com.android.server.pm)resolveIntent:24747, PackageManagerService$PackageManagerInternalImpl (com.android.server.pm)resolveIntent:701, Activi

2021-10-28 23:23:16 209

原创 ResolverActivity / ChooserActivity的联系与区别

提供 “仅一次” 和“始终选项”。选择了始终后的逻辑ResolverActivity.onTargetSelected pm.addUniquePreferredActivity(filter, bestMatch, set, intent.getComponent())pm = getPackageManager(); //实际上是ApplicationPackageManager实例, 封装了真正的PMS-> ContextImpl. getPackageManager()

2021-10-26 23:12:52 2397

原创 Activity Flag

参考:Activity 启动模式及常见启动Flag总结_ws6013480777777的博客-CSDN博客其中,常用的Flags 定义在Intent /** * If set, this activity will become the start of a new task on this * history stack. A task (from the activity that started it to the * next task activ

2021-10-16 09:07:18 72

原创 Activity启动(startActivity)流程图之WMS(2) - UI体系原理解析

【Android进阶】2021最详细的Android系统UI体系原理解析!_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Vb4y1z7FR参考:(47条消息) Activity启动流程图之WMS_whjk20的专栏-CSDN博客https://blog.csdn.net/whjk20/article/details/119768870...

2021-10-05 14:33:55 250

原创 Launcher Api参考

package com.android.server.pm;public class LauncherAppsService extends SystemService {1. 查询特定intent 所符合的Activity private boolean hasDefaultEnableLauncherActivity(@NonNull String packageName) { final PackageManagerInternal pmInt = ...

2021-09-28 00:04:26 112

原创 binder- 代码路径(kernel)

Binder的驱动:kernel\drivers\staging\android\ --> kernel\drivers\android\源码下载:https://github.com/aosp-mirror/kernel_commonBinder的Jni:./base/core/jni/android_util_Binder.cppBinder的include文件frameworks/native/include/binder/Binder的核心库:Service..

2021-08-29 19:08:16 203 1

原创 Android Adb命令(2) - media store 相关

Adb - media store 相关1. 查询数据adb shell content query --uri content://media/external/file/ --projection _data --user 02. 删除用户pm list userspm remove-user IDhttps://stackoverflow.com/questions/63448483/how-to-remove-a-stored-user-account-in-adb3. 查询进程.

2021-08-28 15:03:27 41651

原创 Android Binder 通信机制

Binder 与传统IPC 对比

2021-08-28 09:44:06 172

原创 Linux 文件权限

1.adb 查看及更改文件权限参考: https://blog.csdn.net/pihailailou/article/details/781867812.linux 给文件夹下所有文件赋予权限:https://jingyan.baidu.com/article/b0b63dbfe4cff84a48307033.html3.Linux 给文件夹或者文件增加权限https://www.cnblogs.com/anloveslife/p/8719693.htmlchmod -R777...

2021-08-23 22:01:50 46

原创 Android FileProvider 应用间共享媒体资源

先参考以下两个文档:官网介绍:https://developer.android.google.cn/training/data-storage/use-casesTX 介绍:https://developers.weixin.qq.com/community/develop/doc/0004886026c1a8402d2a040ee5b401然后基于以上的文档做一个例子介绍:从FileProviderSender Apk共享一张保存在 应用专属空间 (Android/data/....

2021-08-23 20:47:24 704

原创 Linux 挂载mout 基本概念

mount /dev/cdrom /mnt/cdrom挂载源: 光驱 /dev/cdrom挂载点:目录 /mnt/cdrom

2021-08-22 17:41:06 190 3

原创 Handler学习

一.Handler 面试题:![请添加图片描述](https://img-blog.csdnimg.cn/3c2d829d617c4ac2809e8fe64a1d2bcf.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3doamsyMA==,size_16,color_FFFFFF,t_70)1 一个线程可以有多个Handler, 例如主线程中可

2021-08-22 12:03:29 81

原创 Activity启动(launchActivity/startActivity)_(1)_流程图之WMS

绘制流程View刷新流程

2021-08-17 23:41:32 291

原创 Android Adb命令(1) - 查看所有的Apk包 / 安装install 和卸载uninstall

1、打印本机所有软件包 adb shell pm list packages2、输出和安装包相关联的文件(包括apk的路径) adb shell pm list packages -f3、输出本机禁用的包 adb shell pm list packages -d4、输出本机启用的包 adb shell pm list packages -e5、打印输出系统包名 adb shell pm list packages -s6、打印输出第三方安装包 adb shell pm list package

2021-08-06 13:58:20 11217

原创 Android_获取网络图片之 Piccaso库

参考:https://www.geeksforgeeks.org/how-to-use-picasso-image-loader-library-in-android/使用Piccaso 库,可以为ImageView 设置图片,并且图片是从网络下载下来的。无需自己开启线程下载,只需提供网络图片的url1. app build.gradle 添加依赖implementation ‘com.squareup.picasso:picasso:2.5.2’然后同步gradle2. An...

2021-07-09 13:49:44 517

原创 Java 线程池理解

1. 使用线程池的原因(侧面) 创建一个线程花销大:https://stackoverflow.com/questions/5483047/why-is-creating-a-thread-said-to-be-expensive/5483105#5483105必须为线程堆栈分配和初始化一大块内存。 需要进行系统调用,以便在主机操作系统中创建/注册本机线程。 需要创建、初始化描述符并将其添加到jvm内部数据结构中。...

2021-05-19 15:32:42 103

原创 Android 动画实例1_星星

ObjectAnimator 实现基本动画操作public final class ObjectAnimator extends ValueAnimator {1. 旋转 // 旋转, 顺时针从-360 到0, 原始状态是0 private fun rotater() { val animator = ObjectAnimator.ofFloat(star, View.ROTATION, -360f, 0f) animator.duration.

2021-04-19 11:07:49 245

原创 Android 自定义View 实例2_Clipping Canvas

上一篇 Android 自定义View 实例_ 画图 参考:https://blog.csdn.net/whjk20/article/details/115639448这里是Canvas 的裁剪 (同时可以控制可见性)1. 相关概念(1)Render 渲染https://developer.android.com/topic/performance/rendering(2)Clipping 裁剪 (只绘制可见部分,提升性能)https://en.wikipedia.org/wik..

2021-04-14 17:11:59 191

原创 Android studio 编译错误:CreateProcess error=206, 文件名或扩展名太长。

Android studio 编译错误:CreateProcess error=206, 文件名或扩展名太长。原因为 bin 文件的路径层级太多解决方法:Android Studio -> Run -> Edit Configurations -> Templates -> Application-> shorten command line: 选择 JAR manifest -java -cp classpath.jar classname [args]..

2021-04-13 16:28:40 4950 14

原创 Android 自定义View 相关官方文档

View视图:https://developer.android.com/reference/android/view/View.htmlCanvas画布:https://developer.android.com/reference/android/graphics/Canvas.htmlBitmap位图:https://developer.android.com/reference/android/graphics/Bitmap.htmlPaint画笔:https://develop...

2021-04-13 14:41:24 102

空空如也

空空如也

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

TA关注的人

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