![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 92
Darksiderl
do it
展开
-
Android UI小技巧
1.文字阴影添加废话不多说,上代码:本文直接用的是style,也可以在TextView或者有文字的控件中直接使用这四种属性。<style name="ShadowStyle"> <item name="android:shadowColor">#66000000</item> <item name="android:shadowRadius">3.0</item> <item name="原创 2020-09-23 10:40:18 · 254 阅读 · 2 评论 -
莫名其妙的软键盘View内存泄漏
这个泄漏发生在我的Fragment页面销毁的时候,我既没有使用EditTextView,只有一个列表一个图片和一个视频播放View,刚看到的时候非常奇怪,我接受不了。这个问题可能发生在不同情况下,Fragment销毁只是一种然后找了一下网上有这么个解决方式:protected void fixSoftInputLeaks(final Activity activity) { //解决软键盘View内存泄漏Google的bug if (activity == null) r原创 2020-09-21 17:26:26 · 1127 阅读 · 0 评论 -
自定义Paging分页
自定义Paging分页原创 2020-09-21 16:30:26 · 541 阅读 · 2 评论 -
GridLayout结合RecyclerView.Adapter实现单页栅格列表的显示
xxxx原创 2020-09-21 14:58:02 · 733 阅读 · 0 评论 -
Android Persistent常驻内存分析
Persistence常驻内存分析简介通过官方注释我知道该属性用于是否让你的应用一直处于运行状态(通常说的常驻内存)。设置android:persistent属性为true的app具有如下特点:在系统启动的时候会被系统启动起来。在该app被强制杀掉后系统会重新启动该app,这种情况只针对系统内置app,第三方安装的app不会被重启这个地方在9.0以后包括9.0我不知道是否还有效,看源码我有点困惑。这里我们分析的代码是Android10.0的源码。使用在AndroidManifest文件下原创 2020-06-23 17:03:11 · 3546 阅读 · 18 评论 -
设计模式六大设计原则
优化代码第一步——单一职责原则**单一职责原则**Single Responsibility Principle(SRP)。 就一个类而言,应该仅有一个引起它变化的原因。原创 2020-06-20 13:54:55 · 145 阅读 · 0 评论 -
Dalvik和ART编译方式的演进以及Android N混合编译对热修复的影响
简介在 Android 中,Java 类被转换成 DEX 字节码。DEX 字节码通过 ART 或者 Dalvik 转换成机器码。而DEX 字节码 转换成机器码的编译方式,ART 和 Dalvik是不同的:Dalvik 使用 JIT(Just in time)编译而 ART 使用 AOT(Ahead of time)编译。而ART虚拟机在编译方式在7.0之后变成了AOT+JIT混合方式。为啥要了解因为Android中的热修复等技术会受到编译方式的影响,导致老的热修复方式失效。具体的影响还没有去看,后原创 2020-06-16 17:54:22 · 894 阅读 · 0 评论 -
Android个人使用adb命令总结(持续更新...)
常用命令关闭Appadb shell am force-stop 包名启动Appadb shell am start -n com.android.settings/.Settings列出包名 加 | grep xxxx 过滤adb shell pm list packages查找相关包的信息包括查找启动Activityadb shell dumpsys package | grep xxxx查找相应包信息中的版本号adb shell dumpsys pack原创 2020-05-20 11:16:41 · 411 阅读 · 0 评论 -
RxJava中遇到的坑持续更新...
RxJava中遇到的坑1.线程无限创建在轮询的请求中使用.subscribeOn(Schedulers.io())可能会导致无限创建线程问题。Schedulers是RxJava的主要组件之一。负责在不同线程上执行Observable的操作,便于将耗时任务分摊到其他线程。我们这里需要连了解下Schedulers下的Scheduler的属性:IOScheduler最常见的调度器之一。用于IO相关操作。比如网络请求和文件操作。IO 调度器背后由线程池支撑。它首先创建一个工作线程,可以复用于其他操作。原创 2020-06-16 16:21:01 · 1643 阅读 · 0 评论 -
(3)MQTT在Android端应用
前言我们搭建好并测通了MQTT.fx的Broker服务器,现在我们想要用Android客户点去和服务器通信。和Android通信有一套已有的库就是Paho Android Service。Paho Android Service是一个基于Java语言的Paho MQTT库开发的MQTT客户端服务包。接入在build.gradle中添加仓库地址maven { url "https://repo.eclipse.org/content/repositories/paho-snapsho原创 2020-06-04 17:12:15 · 887 阅读 · 0 评论 -
Android内存泄漏-LeakCanary源码原理分析
LeakCanary原理分析简介使用MAT来分析内存问题,有一些门槛,会有一些难度,并且效率也不是很高,对于一个内存泄漏问题,可能要进行多次排查和对比才能找到问题原因。 为了能够简单迅速的发现内存泄漏,Square公司基于MAT开源了LeakCanary总结来说LeakCanary是一个基于MAT用来检测内存泄漏的一个有效的简单好用的工具。不足申请大容量内存导致的OOM问题、Bitmap内存未释放问题,Service 中的内存泄漏无法检测等,需要我们用Mat。使用2.0之后只需要在gradle原创 2020-06-15 20:42:04 · 2794 阅读 · 0 评论 -
Android ANR问题产生和分析
ANR产生原因1.ANR(Application Not Response 应用程序无响应)。2.如果 Android 应用的界面线程处于阻塞状态的时间过长,会触发“应用无响应”(ANR) 错误。如果应用位于前台,系统会向用户显示一个对话框,如下图所示。ANR 对话框会为用户提供强行退出应用的选项。3.何时会触发InputDispatching Timeout:5秒内无法响应屏幕触摸事件或键盘输入事件BroadcastQueue Timeout :在执行前台广播(BroadcastReceive原创 2020-06-15 13:08:18 · 829 阅读 · 0 评论 -
Android生成和内置一个系统App
内置一个App到系统目录生成系统应用和配置1.Android系统签名,两种方式对Apk重新签名libconscrypt_openjdk_jni.dylib 是signapk.jar执行需要的动态库,是编译安卓源码生成的 mac环境在Android/aosp/out/host/darwin-x86/lib64/目录下,重新签名需要用到。platform.x509.pem 和 platform.pk8 为rom的证书,秘钥等信息,如果不一致会安装不了。使用signapk.jar和系统签名信息重新原创 2020-06-03 10:43:20 · 1685 阅读 · 0 评论 -
Android平台版本信息
Android平台信息平台版本版本名称SDK版本9Pie288.1Oreo278.0Oreo267.1Nougat257.0Nougat246.0Marshmallow235.1Lollipop225.0Lollipop214.4KitKat194.3Jelly Bean184.2.xJelly Bean174.1.xJelly Bean164.0.3-4.0.4原创 2020-05-26 16:58:45 · 252 阅读 · 0 评论 -
For security reasons, WebView is not allowed in privileged processes
Hook解决系统应用不能创建WebView问题分析问题首先我们在系统应用中创建WebView的时候会报UnsupportedOperationException异常并会抛出一个问题:“For security reasons, WebView is not allowed in privileged processes”我们根据抛出的问题去https://cs.android.com/源码网站找到和WebView相关的类找到类中具体抛出错误的代码如下:@UnsupportedAppUsage原创 2020-05-25 19:28:04 · 2290 阅读 · 2 评论 -
Android平台架构
平台架构Android 是一种基于 Linux 的开放源代码软件栈,为各类设备和机型而创建。下图所示为 Android 平台的主要组件。系统应用Android 随附一套用于电子邮件、短信、日历、互联网浏览和联系人等的核心应用。平台随附的应用与用户可以选择安装的应用一样,没有特殊状态。因此第三方应用可成为用户的默认网络浏览器、短信 Messenger 甚至默认键盘(有一些例外,例如系统的“设置”应用)。系统应用可用作用户的应用,以及提供开发者可从其自己的应用访问的主要功能。例如,如果您的应用要发短信原创 2020-05-25 18:30:13 · 545 阅读 · 0 评论 -
Android适配-最小宽度限定符
1、为什么要适配Android 的 系统碎片化、机型以及屏幕尺寸碎片化、屏幕分辨率碎片化严重,我们急需一种更优适配方式能够让界面视图在每个设备上能够正常显示。2、适配相关知识概念物理像素点(px) : 代表的是手机的物理像素点密度无关像素(dp): 密度无关像素等于160dpi 屏幕上的一个物理像素,这是系统的基线密度屏幕密度(dpi) : 屏幕每英寸上的像素点,Android 将所有的屏幕密度分组为6中通用密度:低(ldpi), 中(mdpi), 高(hdpi), 超高(xhdpi),xxhd原创 2020-05-25 14:44:15 · 2203 阅读 · 0 评论 -
基于原生SwipeRefreshLayout修改为横向刷新组件
网上有很多横向滑动的组件但是都是自己去实现的。于是我就想能不能偷个懒直接用原生的改一下哈哈。结果还真行。只不过可能不支持ListView。ViewGroup(RecyclerView)都是可以的,要是想支持ListView自己去实现下他们提供的OnChildScrollUpCallback中的canChildScrollLeft方法判断是否能从左边往右边滑动,top被我改成了Left因为是横向滑动...原创 2019-11-29 16:14:12 · 734 阅读 · 0 评论 -
IDEA中打Jar包的正确姿势
IDEA 中打Jar包方式,包括输出Jar包依赖第三方Jar包方式1.添加需要依赖的Jar包到库中2.command + ; 打开 Project Structure 或者点击File中也可以 选中module 在需要的jar包上打钩 添加依赖3.如果直接使用第3步就可以成功,那以上两步都是废话 安全起见都搞一下。command + ; 再次打开Project Structure再次打...原创 2019-01-29 17:07:43 · 3700 阅读 · 0 评论 -
RxJavaRxAndroid入门资料 基本方法
RxJava和RxAndroid原创 2016-03-24 12:52:05 · 1098 阅读 · 0 评论 -
Android基础&进阶(收藏)
Android面试题集(作者其他文章也很不错)Android面试题收集(内容也不错)转载 2017-03-02 11:10:42 · 596 阅读 · 0 评论 -
Android Studio Sha1获取
Android Studio Sha1获取 1.Debug 2.Release原创 2017-02-24 12:28:26 · 401 阅读 · 0 评论