android
文章平均质量分 69
写bug的蚊子
我只是搬运工,存存笔记而已
展开
-
android_进阶_viewModel自定义scope
转载自: https://blog.csdn.net/xiangang12202/article/details/122841245目录前言搞清楚activityViewModels的本质定义Application作用域的ViewModeApplicationViewModelLazyBaseViewModelApplication使用方法自定义Application继承BaseViewModelApplicationapplicationViewModels获取ViewModel实例.转载 2022-04-13 16:52:55 · 1408 阅读 · 0 评论 -
android_基础_onSaveInstanceState()和onRetainNonConfigurationInstance()
Android中转屏与Activity状态的保存有很多种方法,其中onSaveInstanceState()和onRetainNonConfigurationInstance()比较常用,此处比较这两种方式适用地方。针对Android平台,不论出于哪种目的,都或多或少需要在多个Activities中的跳转操作,其中包括为了获得某些系统资源和必要信息,而通过启动(startActivity()、startActivityForResult())Child Activity来提供一个选择器或者作为用户输入信息转载 2022-04-13 15:45:12 · 823 阅读 · 0 评论 -
android_进阶_Jetpack-ViewModel原理解析
转载自: https://www.jianshu.com/p/674d35e91925一、ViewModel介绍ViewModel 作为 Jetpack 组件库首屈一指的高频组件之一,ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。它的出现释放了 Activity/Fragment 管理数据的压力,ViewModel 经常会搭配 LiveData 一起用于 MVVM 的开发模式。Tips:配置变更主要是指:.转载 2022-04-13 14:55:29 · 523 阅读 · 0 评论 -
android_进阶_Stream、Rxjava、Reactor对比
Stream, RxJava, Reactor之比较转载自: https://www.csdn.net/tags/MtTaEg4sNTE3NTcwLWJsb2cO0O0O.html如果你熟悉Java 8,同时又了解反应式编程(Reactive Programming)框架,例如RxJava和Reactor等,你可能会问:“如果我可以用Java 8 的Stream, CompletableFuture, 以及Optional完成同样的事情,为什么还要用RxJava 或者 Reactor呢?”原转载 2022-04-01 17:08:15 · 793 阅读 · 0 评论 -
android_进阶_websocket基本原理和基本方法
websocket转载自: https://www.cnblogs.com/cangqinglang/p/8331120.html初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。[外链图片转存失败,源站可能有防盗链机制,建议转载 2022-03-29 10:22:09 · 2699 阅读 · 1 评论 -
android_框架_Rxjava_应用场景
rxjava应用场景转载自:https://blog.csdn.net/a910626/article/details/79311611rxjava in retrofit未使用rxjava时,我们如何使用retrofit以一个登录请求为例:在一个interface中声明一个接口请求 /** * 登陆账号 */ @FormUrlEncoded @POST("/maoyan/login") Call<ApiResponse<Lo转载 2022-03-27 09:19:34 · 579 阅读 · 0 评论 -
android_框架_Rxjava_timer代替handler
Rxjava timer转载自: https://blog.csdn.net/lihenair/article/details/50386442最近项目需要引入RxJava,需要转换代码思路。先在项目中看看哪里能使用这些api,发现有个handler可以被替换,迅速使用。原来的代码是这样: private Handler mHandler = new Handler() { @Override public void handleMessage(Messa转载 2022-03-27 09:14:14 · 856 阅读 · 0 评论 -
android_框架_Rxjava_RxBus
RxBus转载自: https://blog.csdn.net/qq_34015596/article/details/86477220我们传统事件消息发布是使用EventBus来实现,它的工作机制类似于观察者模式,通过通知者去注册观察者,最后由通知者向观察者发布消息,在Android开发中,使用EventBus可以解耦AsyncTask,Handler,Thread,Broadcast等各个组件,还可以用于Fragment之间的通信。但是EventBus内部是基于反射来获取订阅方法,订阅事件,订阅转载 2022-03-27 09:05:26 · 559 阅读 · 0 评论 -
onMeasure与onSizeChanged获取尺寸区别
转载自: https://blog.csdn.net/sinat_31057219/article/details/80592171自定义view如下: public class MyView extends View { private static final int DEFAULT_WIDTH = 100; private static final int DEFAULT_HEIGHT = 100; private Paint paint;.转载 2022-03-06 19:00:21 · 590 阅读 · 0 评论 -
android_基础_canvas api详解
转载自:https://blog.csdn.net/feather_wch/article/details/79783182View绘制详解版本: 2018/4/3-1View绘制详解CanvasPathPaint文本绘制Canvas的范围裁剪和集合变换View的绘制顺序知识储备-考考你参考资料Canvas1、View的自定义绘制包含哪些部分方式:重写绘制方法(onDraw)Canvas的绘制类方法:drawXXX()-关键参数PaintCanvas的辅助类.转载 2022-03-02 10:07:30 · 913 阅读 · 0 评论 -
androidstudio_kotlin_设置自动导入包
转载自: https://www.jianshu.com/p/2c22102d3f83转载 2022-02-21 17:11:01 · 733 阅读 · 0 评论 -
android_混淆_详解
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/69388246本文出自【赵彦军的博客】文章目录混淆的基本概念开启混淆混淆规则理解1、有一些固定的混淆规则不需要更改:2、理解通配符3、保证指定包名下的所有类及子包中所有的类不被混淆4、保证指定的类不被混淆5、不混淆指定类的子类6、指定接口不混淆7、指定接口的实现类不混淆8、指定类的内部类不混淆9、构造函数不混淆10、指定类的属性和方法不被混淆11、不混.转载 2022-02-21 13:42:17 · 941 阅读 · 0 评论 -
android_基础_android studio 中svn配置
目录转载自:https://blog.csdn.net/qq471208499/article/details/105196646上结果Android Studio 版本具体操作记得Apply上结果Android Studio 版本具体操作原始配置.hprof;.pyc;.pyo;.rbc;.yarb;~;.DS_Store;.git;.hg;.svn;CVS;pycache;_svn;vssver.scc;vssver2.scc;修改后配置.hprof转载 2022-02-21 09:59:01 · 726 阅读 · 0 评论 -
android_进阶_自定义View汇总
转载自: https://juejin.cn/post/6844903492390240269自定义view总结一个高级Android工程师除了要会使用Google原生的view,必须会根据实际项目的酷炫效果自己去写一些自定义view来解决问题,自定义view已经写了不少了,今天来给大家带来一些自定义view总结自定义view速查表Canvas常用操作速查表Path常用操作速查表Matrix常用操作速查表贝塞尔曲线常用操作速查表贝塞尔曲线对应的方法演示动画一.转载 2022-02-11 16:30:03 · 461 阅读 · 0 评论 -
android_框架_Retrofit使用详解
转载自: https://juejin.cn/post/6844903876559110151#heading-16Retrofit使用详解-注解介绍关于Retrofit的讲解,我将写下面系列篇文章进行总结:Get和Post请求的基本使用上传图片下载文件添加拦截器…(和RxJava联合使用、RxJava+Retrofit+OkHttp简单封装、统一错误处理)讲解之前我必须先安利个网站模客,在学习Retrofit之前,各种网络请求如果想学习的话就必须有接口才能访问,Get请求还好说.转载 2022-02-11 13:35:12 · 1443 阅读 · 0 评论 -
android_进阶_Rxjava_内存泄露AutoDispose使用
转载自: https://www.jianshu.com/p/c7cbb558b414AutoDispose使用前言RxJava已经深入民心,即使没用过也听说过了,真没用过的话看看我的其他文章有介绍。但是RxJava使用不当会导致内存泄漏,真的是很蛋疼啊,就不能再完美点吗。那有没有好的解决方式呢?目前来说可以手动管理去掉订阅,也可以采用RxLifecycle来管理。采用RxLifycycle来管理的话,需要继承RxActivity / RxFragment,我觉得这框架就有点侵入式了,一直以来我都.转载 2022-02-09 11:17:08 · 2747 阅读 · 0 评论 -
android_基础_粘贴板详解
转载自: https://blog.csdn.net/qq475703980/article/details/89061293ClipBoardService是Android的粘贴板服务,我们的复制粘贴都需要通过这个服务来完成。1、与ClipBoardService相关的类如下图所示, ClipBoardService服务核心的几个类:android.content.ClipBoardManager: 继承自android.text.ClipBoardManager, 这是一个兼容性的设计, .转载 2022-01-27 16:19:54 · 4880 阅读 · 0 评论 -
android_基础_隐式启动Activity以及Intent.resolveActivity的使用
打开Activity的方式打开Activity可以分为显式和隐式两种,显式调用需要明确地指定被启动对象的组件信息,比如包名和类名。隐式调用的规则**1.**隐式调用的核心:Intent可以匹配目标组件的IntentFilter中设置的过滤信息。这里,目标组件就是要启动的Activity,IntentFilter表示意图过滤,也被称为过滤列表。**2.**匹配过滤列表,就是匹配IntentFilter中定义的规则。这些规则中包含action、category、data、**3.**一个IntentF转载 2022-01-27 14:51:07 · 1730 阅读 · 0 评论 -
java_基础_日期格式yyyy-MM-dd’T’HH:mm:ss.SSSZ
转载自: https://blog.csdn.net/stromcruise/article/details/72911157yyyy-MM-dd’T’HH:mm:ss.SSSZ后面的三个SSS指的是毫秒,Z代表的时区,中间的T代表可替换的任意字符。下面看例子:例子一: @Test public void testTime() throws ParseException{ Date date = new Date(); S.转载 2022-01-26 16:15:26 · 3423 阅读 · 0 评论 -
android_基础_浅谈Fragment的状态可见与不可见[setUserVisibleHint和onHiddenChanged]
转载自: https://www.jianshu.com/p/15bc451e2697前言: 在项目中,我们经常会遇到在Fragment可见也就是获取焦点的时候,重新加载数据或者进行其他设置.但是Fragment本身是没有像Activity一样的onPause()和onResum()方法.那么问题来了,我们怎么才能知道fragment是可见还是不可见的呢?放心,谷歌为我们提供了两个方法,分别是setUserVisibleHint和onHiddenChanged这两个方法,注意这两个方法的使用场景是不相.转载 2022-01-25 15:04:47 · 1913 阅读 · 4 评论 -
android_基础_onHiddenChanged结合onResume的使用
转载自: https://blog.csdn.net/qq_28261207/article/details/64129808问题:当Activity里有多个fragment时,其中fragmentA根据需求,需要在onResume时需要做请求数据等操作,但是如果直接在fragmentA里的onResume里写东西,当从其他页面返回到fragmentB和fragmentC时,fragmentA里的onResume也会走,这样很浪费流量浪费资源。问题原因:fragment的生命周期是跟着它所在的act.转载 2022-01-25 11:50:52 · 1773 阅读 · 0 评论 -
android_基础_@NotNull和@NonNull区别
转载自: https://blog.csdn.net/louislrt/article/details/81211839android_基础_@NotNull和@NonNull区别1、@NotNull :是 JSR303(Bean的校验框架)的注解,用于运行时检查一个属性是否为空,如果为空则不合法。2、@NonNull :用于指明所修饰的参数,字段或方法的值不可以为null。它是JSR 305(缺陷检查框架)的注解,是告诉编译器这个域不可能为空,当代码检查有空值时会给出一个风险警告。...转载 2022-01-20 10:59:50 · 1213 阅读 · 0 评论 -
android_基础_ContentResolver获取手机所有短信内容
Android 获取手机所有短信内容一、在AndroidManifest.xml 的manifest标签下添加操作短信的相关权限;二、从短信数据库读取所有短信;private Uri SMS_INBOX = Uri.parse("content://sms/"); private void obtainPhoneMessage() { ContentResolver cr = getContentResolver(); String[] projection = new Stri转载 2022-01-19 21:51:40 · 1734 阅读 · 0 评论 -
android_基础_获取系统应用程序信息
转载自: https://blog.csdn.net/spinchao/article/details/927788611、demo有的时候我们需要获取系统的应用程序,比如说Home界面的时候,我们需要获取在Manifest里面注册的所有的应用的信息,并将这些应用的图标,名字显示出来,同时还要获取他们的action或者CompanentName,以便点击他们的时候可以跳转到相应的应用。下面就是一个例子:先上运行出来的效果图: .转载 2022-01-19 17:16:58 · 419 阅读 · 0 评论 -
android_基础_权限大全
转载自: https://www.cnblogs.com/shiwei-bai/p/4916794.html1android.permission.EXPAND_STATUS_BAR允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序android.permission.FACTORY_TEST作为一个工厂测试程序,运行在root用户android.permission.FLASHLIGHT访问闪光灯,android开发网提示HTC .转载 2022-01-19 14:42:48 · 2893 阅读 · 0 评论 -
kotlin_基础_空字符串 null or empty的判断
转载自: https://blog.csdn.net/vovo2000/article/details/106544264/kotlin 字符串空值判断转载 2022-01-19 10:19:38 · 718 阅读 · 0 评论 -
android_基础_Edittext的setSelection属性
转载自: http://www.mamicode.com/info-detail-1723001.htmlEdittext的setSelection属性用法1.如何使edittext点击后全选里面的内容啊?editText.setSelection(0, length);editText.setSelection(0);editText.setSelectAllOnFocus(true); 2.记一次EditText设置默认选中setSelection的一个bug需求:在重命名的时候,.转载 2022-01-19 10:01:53 · 3388 阅读 · 1 评论 -
android_基础_editText字符过滤
转载自:https://www.jianshu.com/p/2bb465ce7880?from=timeline@EditText字符过滤我们使用EditText控件的时候,可能会遇到这样一种情况,在输入的时候,要求禁止输入某些字符。如输入$,#等特殊字符的时候,使其输入无效。这就是字符的过滤。要实现该效果,可以有多种方法,下面将一一介绍:1.android:inputType这是最常见的一种字符过滤的方法了,通过设置inputType标签属性,可以控制输入内容的类型,如android:inpu.转载 2022-01-19 09:40:37 · 1333 阅读 · 1 评论 -
android_基础_银行卡输入隔4位多一位空格
转载自: https://www.jianshu.com/p/d99e299a44ea/** * 设置银行卡输入时每隔4位多一位空格 * @param cardEt */ public static void bankCardInput(final EditText cardEt) { //设置输入长度不超过24位(包含空格) cardEt.setFilters(new InputFilter[]{new InputFilter.L.转载 2022-01-18 17:53:51 · 362 阅读 · 0 评论 -
android_基础_runOnUiThread
转载自:https://www.cnblogs.com/andy-songwei/p/12064596.html runOnUiThread()的使用以及原理实在是太简单了,简单到笔者开始都懒得单独开一篇文章来写它。当然这里说的简单,是针对对Handler比较熟悉的童鞋而言的。不过麻雀虽小,五脏俱全,runOnUiThread()好歹也算得上是一方诸侯,在子线程切换到主线程的众多方法中,有着自己的一席之地,所以,必须得给它单独列传。 好了,闲话休提,言归正传。runOn.转载 2022-01-16 11:06:26 · 3017 阅读 · 0 评论 -
android_基础_Bitmap使用篇
转载自: https://blog.csdn.net/wanliguodu/article/details/84973846文章目录一、Bitmap1.1 Bitmap的创建1.1.1 根据已有的Bitmap来创建新Bitmap1.1.2 通过像素点数组创建空的Bitmap1.1.3 创建缩放的Bitmap二、BitmapFactory2.1 创建Bitmap的方法2.2 BitmapFactory.Options的属性解析三、计算Bitmap的大小.转载 2022-01-15 20:06:21 · 287 阅读 · 0 评论 -
android_基础_Bitmap详解篇
转载自:https://www.cnblogs.com/shakinghead/p/11025805.html一、背景在Android开发中,任何一个APP都离不开图片的加载和显示问题。这里的图片来源分为三种:项目图片资源文件(一般为res/drawable目录下的图片文件)、手机本地图片文件、网络图片资源等。图片的显示我们一般采用ImageView作为载体,通过ImageView的相应API即可设置其显示的图片内容。我们知道:如果是需要展示项目中的图片资源文件,我们只需要调用ImageView的.转载 2022-01-15 19:17:43 · 1125 阅读 · 0 评论 -
android_基础_控件获取在其父窗口和屏幕上的坐标位置getLocationInWindow/getLocationOnScreen
原文链接:http://blog.csdn.net/ouyang_peng/article/details/46902957 //一个控件在其父窗口中的坐标位置 View.getLocationInWindow(int[] location); //一个控件在其整个屏幕上的坐标位置 View.getLocationOnScreen(int[] location);getLocationInWindow是以B为原点的C的坐标getLocationOnScree转载 2022-01-13 14:00:42 · 2052 阅读 · 0 评论 -
android_基础_popupWindow使用详解
转载自:https://www.cnblogs.com/guanxinjing/p/10156153.html简介PopupWindow,顾名思义弹窗.PopupWindow是与AlertDialog在形式上类似的弹窗功能,都是为了在activity最上层显示一个弹窗.但是区别是PopupWindow可以自定义出现的位置,并且可以添加入自己需要的View或者导入自己写好的xml布局应用场景在很多场景下都可以见到它。例如ActionBar/Toolbar的选项弹窗,一组选项的容器,或者列表等集合的.转载 2022-01-13 10:42:29 · 13203 阅读 · 1 评论 -
android_基础_popupWindow合理控制计算弹出位置
转载自:https://www.cnblogs.com/popfisher/p/5608436.htmlAndroid PopupWindow怎么合理控制弹出位置(showAtLocation)主要记录PopupWindow自己计算弹出位置的方法小编推荐 自己开发app到上架应用市场需要经历什么?https://www.cnblogs.com/popfisher/p/14218431.html说到PopupWindow,应该都会有种熟悉的感觉,使用起来也很简单// 一个自定义的布局,作为显.转载 2022-01-13 10:20:54 · 979 阅读 · 0 评论 -
android_框架_Android 选择图片、上传图片之PictureSelector
转载自:https://blog.csdn.net/yechaoa/article/details/79291552?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task.转载 2022-01-12 17:33:06 · 1244 阅读 · 0 评论 -
android_基础_intent获取手机通讯录联系人电话号等信息
1、简单的获取联系人的电话号码或电子邮件地址或邮政地址 static final int REQUEST_SELECT_CONTACT = 1; public void selectContact() { //action为Intent.ACTION_PICK Intent intent = new Intent(Intent.ACTION_PICK); //从有电话号码的联系人中选取 intent.setTyp转载 2022-01-12 10:12:38 · 2720 阅读 · 0 评论 -
android_基础_ContentResolver.query方法的使用(从通讯录查询电话号码相关Api解析)
转载自:http://blog.csdn.net/supluo/article/details/43954129以下是文档上面的介绍:public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)Added in API level 1Query the given URI, returning a [Cursor](http:.转载 2022-01-12 09:40:16 · 1385 阅读 · 0 评论 -
android_基础_Context作用域
转载自: https://www.jianshu.com/p/e3cf954cebc2Context作用域虽然Context神通广大,但并不是随便拿到一个Context实例就可以为所欲为,它的使用还是有一些规则限制的。由于Context的具体实例是由ContextImpl类去实现的,因此在绝大多数场景下,Activity、Service和Application这三种类型的Context都是可以通用的。出于安全原因的考虑,Android是不允许Activity或Dialog凭空出现的,一个Activity转载 2022-01-07 20:02:17 · 188 阅读 · 0 评论 -
android_基础_Handler使用
转载自: https://www.10qianwan.com/articledetail/809922.htmlAndroid Handler使用案例详解什么是handler?handler可以发送和处理消息对象或runnable对象,这些消息对象和runnable对象与一个线程相关联。每个handler的实例都关联了一个线程和线程的消息队列。当创建了(adsbygoogle = window.adsbygoogle || []).push({});什么是handler?handler可以发送.转载 2022-01-06 09:30:46 · 189 阅读 · 0 评论