自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 问答 (3)
  • 收藏
  • 关注

原创 Android H5视频全屏,自适应视频

Android H5视频全屏自适应操作.

2022-10-27 16:27:38 3050 1

原创 Google Play 商品详情,考试内容

GooglePlay商品详情的设计.

2022-07-14 11:16:53 598

原创 ViewModel+Flow的绝佳实例和封装

ViewModel+Flow的绝佳实例和封装0.前言在最近的Android开发中,主流推送慢慢从Java→Kotlin,LifeData→Flow.那里面各有各的好处,也都是为了解决不同应用场景给出不同的方案。但是在使用官方推荐的ViewModel+Flow时,会有很多需要解决的细节,里面也会牵涉到比较多的知识点。所以这个文章就是将自己学习到的东西进行总结.此文章会涉及到的知识点会比较多包括:kotlin扩展函数kotlin高阶函数kotlin内联函数Flow的使用1.Flow的简

2022-05-23 11:26:46 2551

原创 JetPack 之 Pagging3.你可以不用,但是不能不会

JetPack 之 Pagging31.Pagging3是什么Pagging3是帮助用来做加载和显示 本地存储或者处理更大的数据集(网络)的数据页面.简单来讲,就是一个分页加载库.具有的好处为:1.只需要按照它提供的架构去编写业务逻辑,就可以轻松实现分页功能。2.非监听列表滑动事件.实现效果为:2.Pagging3的依赖def paging_version = "3.1.1"//Java依赖implementation "androidx.paging:paging-runtime:

2022-05-06 10:11:32 818

原创 Java技能树测评,好的学习端

Java技能树测评这里写目录标题Java技能树测评1.Java技能书的基本评价2.小问题1.Java技能书的基本评价u1s1,先夸你一下。优点:基本UI的排版很舒服,很快就能找到你需要了解的知识点.排布的非常干净左边的知识栈有明显标识知道自己上次学习到什么位置了右方排布着笔记一边学习一边记下笔记,这对于学习记录来说是非常重要的.在交流讨论中会收录一些讨论,这有点像git的issue.但是我建议不要做成超链接,一个小的讨论打开一个页面,其实不是很舒服每一篇被收录的博客都标注有博客的名字

2022-04-11 19:49:14 389 2

原创 多渠道打包美团工具walle使用步骤以及坑...

新公司,学东西...忙的不行

2022-04-01 18:04:46 5491

原创 Rxjava2原理流程+操作符+线程切换 浅析~

0.前言没拜读过强大的代码就建议去稍微看一下rxjava2的原理,并不难懂。写的非常的好,也能领略到大佬写的代码有多么的强。里面的设计模式真的牛逼1.Rxjava2Rxjava2用于我们来做响应式编程模式的操作。用起来很简单,但是如果面试/其它场合下让你去写一些骚操作或者说其中的原理,真的蒙蔽的不行…然后去研读其代码,发现很多文章写的优点乱.让我有点理不清楚. 这就当算是我阅读源码的理解吧…2.文章解决的问题.RxJava2的基本运行流程map操作符的运作线程切换原理3.总图解借助大佬

2022-01-21 17:14:52 2301

原创 Android一步步实现无痕埋点(6)-------AutoService

谢谢你看到这.

2022-01-11 17:53:30 1535

原创 Android一步步实现无痕埋点(5)-------斗转星移

刚看到transfrom就发现被遗弃了.真有你的

2022-01-11 16:16:08 2011

原创 Android一步步实现无痕埋点(4)-------无尽痛苦

0.前言上一篇文章,我们已经找到了我们的作案对象.接下来我们就要开始下手了~完整依赖dependencies { implementation gradleApi() api "com.android.tools.build:gradle-api:$apgVersion" api "com.android.tools.build:gradle:$apgVersion" implementation 'commons-io:commons-io:2.6' imp

2022-01-11 15:45:39 1488

原创 Android一步步实现无痕埋点(3)-------虎躯一震

0.前言Android一步步实现无痕埋点(2)-------开始折磨上一篇文章,我们讲解了无痕是个什么东西,现在我们开始解(jiao)释(bian)transform又是在其中担任了一个什么神奇的步骤。1.寻找"作案"对象大佬的transform讲的很好由上篇文章,我们知道了。整体步骤要先找到.class文件之后对其进行修改。那么transform的作用就是在打包.dex文件之前的编译过程中操作找到我们的.class文件。对其进行遍历.首先, 先添加依赖:我这里的gradle版本的7.0

2022-01-11 10:29:03 1191

原创 Android一步步实现无痕埋点(2)-------开始折磨

0.前言Android一步步实现无痕埋点(1)-------万恶之源https://blog.csdn.net/qq_33902817/article/details/122410168上一篇文章,我们讲解了无痕埋点的基本概念.这里我们就开始继续讲解无痕埋点如何实现.我们先上一个完好的插件的Module图1.无痕总所周知,Plugin是Gradle插件类.在编译过程会执行这一过程.这里涉及到Gradle的插件知识.如果要了解更多请自行baidu如果不是很熟悉,那么至少,你对这些应该很熟

2022-01-10 17:38:39 1028 5

原创 Android一步步实现无痕埋点(1)-------万恶之源

0.前言有一段时间高强度刷贴,然后看到了wanandroid里面有一位做基础架构的大佬—>虾哥.进入详情页面一看,看到了一个叫无痕埋点插桩的这么一个神奇的东西。之后去了解一下,发现其实就是实现AOP的一个技术方案,又觉得非常的有用,而且在很多地方都提及到了这么一个技术。我就开始想方设法的开始进行学习.进入虾哥的Demo,没有注释,没有说明.零基础的我.直接麻掉了.Demohttps://github.com/qazxcs113/AndroidAutoTrackdemo实现很多神奇的功

2022-01-10 15:45:42 1000

原创 Android kotlin协程浅析笔记

1.协程协程?我们明确一下这篇文章,我们需要了解什么东西.1.协程是什么东西2.协程用来干什么3.协程怎么写> 4.你对我的爱有多深根据大佬们的理解,协程大概可以理解为.一种轻量级线程,协程类似于线程,但是它算是一种可以在单线程模式下模拟多线程编程的效果.里面状态中的挂起和恢复和我们的操作系统无关,只和函数有关区别:线程运行在内核态,协程运行在用户态总结:Android kotlin中协程是一个线程框架根据定义得出作用:跟线程差不多的作用, 用来做异步/网络请求2.协程域的

2021-12-16 11:51:11 2757

原创 Lifecycle原理解析

0.前言我们可以看到,viewModel和liveData都与lifecycle有关系,所以理解这一部分的源码也让我们对Jatpack的理解会更深一步这一部分的源码,我感觉我不需要自己去写了…网上有大佬自动就写了很多,自己总结,其实也差不多这么一回事.这里贴出原贴大佬,并且,自己将一个简易流程写出来看,就差不多了.1.原贴大佬的时序图(必看),以及一些流程https://blog.csdn.net/zhuzp_blog/article/details/78871374看不太懂就看第二遍,这里涉

2021-12-14 16:22:21 395

原创 LiveData原理解析...

0.大佬推荐https://blog.csdn.net/jhbxyz/article/details/108321239先抛出大佬写的…写的确实好,但是我只是喜欢自己总结罢了1.LiveDataLiveData,也作为MVVM框架内基础的一员,可以很好的将我们的V层和VM层分开。那我们靠的就是LiveData.~那它具有的特性为:使用 LiveData 具有以下优势:确保界面符合数据状态LiveData 遵循观察者模式。当生命周期状态发生变化时,LiveData 会通知 Observer 对

2021-12-07 16:36:48 1654

原创 ViewModel的原理解析

1.ViewModelViewModel作为Android JetPack里面的重要的一员,确实担任了一个十分重要的角色。也是实现MVVM架构的基础。所以会用并不能代表什么,而稍微把原理理清楚,你可以获得更多的知识(面试八股文)2.功能1.不会因为屏幕旋转等Actiity配置而导致销毁.2.跟随生命周期这里就不说明APi的使用了,网上文章太多了…3.不会因为屏幕旋转等Actiity配置而导致销毁这里只分析AndroidX我们来看一下他为什么可以跟随生命周期把.我们入口使我们的实例化过程

2021-12-07 09:52:41 2793

原创 内功心法--->理解 贪心算法与动态规划思想...

1.前言最近在刷LeetCode(当然,我是个fw),但是能很清楚的知道里面有两个十分重要的思想。贪心算法动态规划然后,我发现了同一个题解,都能用它来进行计算,并且两者的想法很相似。所以我打算搞清楚他们的思想,以及分别在什么样的场景去取实现它。先说一个总结吧,否则可能就没耐心看下去了.贪心算法:求解当时情况的最优解,解的集合即为结果,但结果并非一定为全局最优解。动态规划:当时的结果都将会被保留下来,保留下来的解,都对当时情况的解有影响。2.最大子数组和来,我们先来整一个经典题目,看一下

2021-12-06 11:11:17 149

原创 Android奇淫巧技----Android Studio模拟器将应用变成system app

1.前言你从来不知道为什么会有这么多神奇的需求,如果再Android板子没下来的时候,又要开发app.而有些API又在sysytem App下才能有用的话.模拟器是一个快速开发的方式…保证你下载的模拟器后面不可以是Google PLAY,至少是Google APIS,不然root失败2.签名工具栏.Build->Generate Signed Bundle or APK选择APK进入PS:我也不知道这步要不要,但是我觉得这步是为了保证我的app唯一create New 后,创建一个新的

2021-12-02 10:47:47 995 3

原创 阿里的ARouter浅析

1.学习这是一个学习的篇子…然后我只是把简单的学习放在这里。具体的这里都不分析…2.众所周知反正不懂就是众所周知.ARouter解决了组件化之间不依靠依赖就可以进行跳转。根本原因是什么呢?无论哪个模块的Activity最终都会打包到同一个apk内,从代码文件上来讲,这写Class文件都是互相可见的,这就需要添加第三方来让各自可见了.类似于中介的一个角色.ARouter其实也是如此,利用了Map去保存下来了其中的Class。在startActivity再将其对象提取出来.只是其中过程有注册路由,提

2021-11-29 14:23:40 1768

原创 责任链模式

1.责任链模式先介绍基础概念:用来处理相关事务责任的一条执行执行力链,链上的每个节点均有机会处理该请求事务,若某及诶单处理完了可以根据实际业务传递给下一个节点或者直接返回处理完毕2.使用场景即一个请求被多个对象所处理,具体是哪个对象在处理是运行时去动态决定的.例如:员工请假请求,需要多对象同意.A经理同意–>转移到人事部门处理/审批完成了.A经理资格不够(老子职位高)->B经理处理–>处理/转移到下一个3.经典流程经典流程来说,是Handler(处理者)内有下一个处理

2021-11-26 09:30:35 230

原创 Android中kotlin Flow的资源浪费/ANR问题

1.前提一开始用Flow,主要用来替代LiveData,用来观察。然后发现了StateFlow和SharedFlow这两个主要就是用来替代LiveData的.两者区别:StateFlow:1.必须要有初始值2.只会把最新的值重现给订阅者,与活跃的订阅者数量无关SharedFlow:1.没有初始值2.可以保留历史数据3.发射使用emit()/tryemit(),而没有setvalue()当我在使用FLow去collect数据的时候,发现文档有这样一个提示警告:如果需要更新界面,切勿使

2021-10-18 14:13:54 664 1

原创 rxjava+LiveData VS 协程+flow, +Retrofit+Okhttp3,两种方案的不同使用.

1.前提作者最近在学习kotlin,刚看到协程,又看到了flow.发现这两个东西是可以完成取代rxjava和LiveData的。然后我就来找不同,一起体验一下两种东西加在一起的不同. 当然了,如果你使用的是JAVA,就老老实实用RXJAVA+LiveData把。 协程是Android里面kotlin特有的。2.对比是骡子是马,拉出来遛一遛,咋们来稍微对比一下这两种不同东西.基础的概念我就不放了,大家可以先去了解一下,我这里只提一些重要的。RXJAVA:链式编程,切换线程贼方便.实现异步操作,

2021-09-15 10:38:11 1290

原创 Android 修改应用为系统级应用,模拟器root,修改语言配置,发送adb shell命令,

前言:工作上需要开发一个系统级的应用,但是在调试上很不方便,自带的Android板并不符合最终的定制,而且模拟器也能得到更好的开发体验.那直接在模拟器上如何将自己的应用改成系统应用,也更方便的开发自己的应用呢?..1.准备好模拟器普通来说我们下载的后面导游的Google Play,是无法进行root的,那自然就只能开发手机正常应用,而无法将自己的应用改成系统应用。所以要重新下载一个可以root的应用.一般选择下载模拟器我们会在Recommended内,所以我们点击x86 Images的镜像,选择后缀

2021-08-16 14:26:14 1676

原创 Android 根据应用内选择时间调整TextClock时区

最近在项目中遇到了一个问题,需要自己去调整整个应用的语言选择以及对应的时钟的问题,网上找了一些资料发现有一些坑以及问题,自己在这里记录下来这里产生的问题都是在单Activity的架构下存在的.1.调整应用内的语言选择在Android的API 25中,getResources().updateConfiguration()你会发现已经过时了,不建议使用了。所以我也不记录这个操作了… 要看到现在推荐的是 createConfigurationContext这个方法,但是你直接使用之后发现还是没有什么锤

2021-07-27 15:04:43 966 1

原创 记录Android 组件化中使用Navigation中的一个坑.

问题如下:所有Fragment分布在不同的Module内.例如:Fragment_1在Module_1中.Fragment_2在Module_2中.navigation文件有且只能在app这个依赖所有module的壳中.因为不在app内,则无法引用所有的Fragment.那跳转可以使用int yId = getResources().getIdentifier(“actionname”,“id”,“packname”);寻找资源Navigation.findNavController(bi

2021-07-16 11:49:08 787

原创 Android 关于如何弄出一个正常好用的文件管理器.

1.文件管理器的选择由于本人是一个懒人,而且又不是很喜欢写重复的轮子,更喜欢把人家的轮子拿过来改一波。所以我直接选择Start最高的兄弟的文件管理器.https://github.com/fishwjy/MultiType-FilePicker这里其实可以自己写一下可能自己的思路,大致上应该是RecycView去配上查找所有文件然后进行分类的这样的思路,当然这里FilePicker寻找的文件搭配上的Android自带的媒体库,这样就不用那么麻烦了…2.FilePicker修改文件后不更新查了很多

2021-07-10 15:59:21 250 4

转载 Android界面适配通用工具(RelayoutTool)-根据分辨率等比例缩放

这是自己项目中用的界面适配工具,通过获取当前设备的分辨率来做等比例缩放的工具。下面是两种常用的地方与方式1.BaseActivity方式,通过集成基类来对activity的界面做适配package com.jiuma.projectbase; import android.app.Activity;import android.util.DisplayMetrics;import android.view.View;import android.view.ViewGroup.LayoutPa

2021-06-10 17:32:18 415

转载 fragment 变成悬浮窗window

原文链接:https://blog.csdn.net/zxd_Android/article/details/87642998背景:项目中UI层有SurfaceView,其渲染展示的是摄像机等采集画面,但是测试提了一个问题单,如果在当前页面中跳出到其他页面,会crash,经过log分析,是由于surfaceview 在失去焦点的时候会走到onDestroy方法,也就是surfaceview会失效。解决思路:surfaceview不失去焦点就可以了,改用悬浮窗实现。UI层 最主要的页面结构如下:&l

2021-06-08 09:20:10 810

原创 腾讯视频移动端面经---一面刚过

本人有幸获得腾讯视频移动端一次宝贵的面试机会。虽然我知道本人很渣渣,但是很幸运的是,一面居然过了!只能说这是给我一个巨大的肯定。面试官很Ok,就是现在腾讯面试要现场写算法代码。虽然题目不算是很难,但是这让我有点措(xian)不(chang)及(bai)防(du)。一面问题集合:1.自我介绍2.根据简历问一些项目上的问题3.MVP和MVVM的各自架构的特征点。4.Android文件存储的方式5.浏览器进入网站,中间发生了什么(综合问题)6.蛇形遍历二叉树7.团队担当的角色8.Androi

2021-04-20 10:24:31 369 2

原创 Spring boot的基础总结(七)-------Mock和restassured的合体

一.序最近在搞Spring boot的接口测试的问题,为了保证代码的质量和功能实现,想想好像只有Junit可以帮我搞一搞。但是很多问题接踵而至。我的服务和其它服务有关联(有点像微服务),那在脱离了其它服务依赖的时候,我该如何进行测试?那么神奇的我找了很多资料,总算总结了以下两个可执行的东西。(一)Mock可以对数据进行打桩,模拟对象返回(二)restassured可以简化 HTTP Builder 顶层 ,验证REST服务本身rest-assured是没办法进行数据打桩的,所以要搭配Mock

2021-04-08 17:50:32 823 2

原创 MVVP框架学习(二)---------ViewModel以及LiveData中如何使用

一.序上篇文章说到,我们可以通过DataBinding去绑定我们的xml以及使用我们的数据源。那ViewModel和LiveData就是在JVVM中专门用来做数据源的两个组件。二.ViewModelViewModel 是Android 架构组件中负责管理UI相关数据与逻辑的,可以说它就是专门做这个界面的数据存储和驱动的。个人认为,这是一个界面对应一个ViewModel.ViewModel的优点:解决了运行中断和界面重建时的数据保存问题 (横竖屏切换,导致Activity销毁并重新创建时,ViewM

2021-03-31 15:19:03 239

原创 MVVM框架学习(一)---------DataBinding以及RecycleView中如何使用

一:序从一开始,小菜鸟我从MVC到用轮子,再到学习MVP,最终发现网上好多人都说使用MVVM的感觉都不一样,所以到最后我就试着学习一个MVVM,发现代码的整洁度确实不同凡响。所以在此记录如何使用以及自己的一些感悟。二:MVVM基本介绍Android 官方把他们设计的架构模式封装成了一系列类的集合,其核心思想为MVVM,基于此扩展成为Android系统量身定做的架构模式,名为: Architecture Components(架构组件)。有什么优点减少样板代码,消除代码冗余(比MVP代码体积小很

2021-03-29 10:32:54 716

原创 Spring boot的基础总结(六)-------spring clound全家桶

好了,兄弟们,我把spring boot的能踩的一些坑已经踩了,写下以警示自己。forezp1.spring clound组件形成Spring Clound的组成主要由以下的几个组件形成:1.Eureka:服务注册中心,专门做服务的注册和发现的2.Feign: 服务之间调用的组件,不用自己建立网络连接服务间调用数据的操作。3.Ribbon:均衡负载组件,去访问不同机器。4.Hystrix:熔断和降级组件,解决服务雪崩问题5.Zuul:服务网关,统一的入口,鉴权限流,安全等操作。把图稍微

2021-02-02 13:54:32 138

原创 Spring boot的基础总结(五)-------Netty->websocker+心跳检测

咱们的学习思路比较奇特,看到啥学啥。先将为什么要用Websocker.因为Http只能由客户端发送给服务端。而没办法相互通信,而Websocker解决了这个问题。那Spring boot有自带的WebSocker集成,那为啥不用呢?因为Netty比较牛逼(建议自行百度)。本人理解就是,它可以变成所有的协议服务,用自定义的操作很方便又简易的开发方式,Netty成功地找到了一种在不妥协的情况下实现易于开发,性能,稳定性和灵活性的方法。这里只做服务器的代码,客户端的测试,可以去找一下测试工具!!!你可以偷

2021-01-22 14:51:13 803

原创 Spring boot的基础总结(四)-------MYSQL+hibernate+JPA

上回说完redis,应该都知道是用作于缓存容器的了。那我是不是还说到了mybatis.啊,那我们这次来说一说JPA+hibernate吧。至于为什么不用mybatis.大概是我MYSQL语句确实写得不熟,还是喜欢面向对象多一点。言归正传.6.MYSQL+JPA+hibernate6.1 基本概念MYSQL是啥,用来干嘛的,跟redis的区别是啥。简单明了的就是MYSQL是磁盘存储,是存在硬盘上的,持久化的存储。redis也可以持久化存储,但是一般作缓存,存储在内存上。(如果磁盘和内存概念搞不

2020-12-30 17:04:58 191

原创 Spring boot的基础总结(三)-------Redis

上回讲到了基本校验和统一参数返回.是不是以为我这章要记录mybatis啊?~不好意思,这章记录redis.因为现在数据库那部分不是我做的,哈哈哈~言回正传.5.Redis5.1 Redis是什么,为什么要用?Redis是一种非关系型数据库,用key-value存储数据。不同于MYSQL之类的关系型数据库,有字段,属性,实体之类的概念,但是Redis没有,我大概是把它看做成Java的Map来看待的。不过是一个超无敌无敌好用的HashMap.为什么要用,这问题就牵扯到它的特性了.速度快:由

2020-12-21 11:35:04 303 2

原创 Spring boot的基础总结(二)-------参数校验,统一返回与统一异常返回,线程异步

上回说到了整个项目的风格和结构最基本是如何进行的,那么我们继续探讨一下,一个项目基本结构需求把.3.参数校验参数校验,顾名思义,在与客户端数据交互的时候,我们应该不仅要进行验证用户的token(身份验证)以及对参数也要进行校验,排除掉一些很基本的错误。比如:手机号,固定11位。 邮箱格式,用户名,密码不为空。当然,这些前端也可以做,但是,作为合格的数据提供者,这些我们都需要思考到。Spring boot有一个非常好用的包,validation.这样我们就不需要在每一个Control层用大量的if()

2020-12-15 17:43:19 168 2

原创 Spring boot的基础总结(一)-------Spring MVC,RESTful APi

本文根据Spring boot去建立一个简易的开发环境,用作于json数据的交互。那一个简易的后端功能需要具备什么功能?1.最重要的当然是能运行啦这里就不纠结如何配置环境和跑了,只要记得maven是用来配置包,新建项目然后主程序入口在包的最上级进行跑就好了。2.代码容易看,易解耦,风格统一在这里,我们需要了解Spring MVC,RESTful API .ok,从之后开始我们就要接触到Spring boot MVC的东西了。其实可以算是一种编程思想,或者流程思想,网上总是说它是什么东西,其实本人

2020-12-15 17:43:01 158

原创 MPAndroidChart柱状图——显示不同渐变色的柱状图

本来设计图,方方正正的柱图不好嘛~非要加一些奇奇怪怪的需求0-0先上图:需求大概就是需要渐变色,又要下面底平,上面是圆头的。正常我们在官方例子里面,我们可以知道.BarDataSet set1;set1.setFills(gradientFills);这样就可以设置渐变色了,但是这里有一个坑需要注意的是,如果是implementation V3.1的版本,这个方法会不存在,所以需要下载源代码然后到自己的库里面去。OK,好了,剩下就是圆头的事情了。众所周知,BarChart画画的事情,

2020-11-19 16:08:52 2189 5

空空如也

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

TA关注的人

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