自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xj-up的博客

记录Android开发

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 打造高效上传体验:基于Kotlin的Android快速上传框架

纯Kotlin编写:简洁、现代的编程语言。高效的协程:异步处理上传任务,保证界面流畅。OkHttp封装:稳定可靠的HTTP请求处理。

2024-05-31 19:29:53 1048

原创 轻松解决Android复杂数据结构序列化

当我编写quickupload库时,因为需要在 Service中进行上传任务,向Service传递时我发现需要传递的数据很多并且结构复杂,如果处理不好就会导致以下几个问题为了解决这个问题

2024-06-21 17:34:36 773

原创 免费定位服务方案:华为定位+天地图逆地理编码实现位置信息查询

对于Android开发来说进行定位开发时会使用以下几个产品由于这几款产品在商用时需要支付相应的费用,如果不使用这几款产品又该如何定位呢?

2024-06-19 16:22:31 408 2

原创 为什么Android开发向Service传递消息需要序列化

独立进程:在Android中,Service可以在与Activity不同的进程中运行。为了让不同进程之间能够通信,需要使用进程间通信(IPC)机制。内存独立:由于每个进程都有自己的独立内存空间,因此简单的内存引用传递在不同进程之间是不可行的。

2024-06-19 15:57:42 405

原创 什么是 SurfaceView?

Surface简介Surface就是“表面”的意思,可以简单理解为内存中的一段绘图缓冲区。在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer that is being managed by the screen compositor”,翻译成中文就是“由屏幕显示内容合成器(screen compositor)所管理的原生缓冲器的句柄”, 这句话包括下面两个意思:通过Surface(因为Surface是句柄)就可以获得原生缓冲器以及其中的内

2020-12-10 18:09:46 7177 1

原创 Android中View是如何绘制的

界面窗口的根布局是DecorView,该类继承自FrameLayout,而FrameLayout继承自ViewGroup。感觉绘制肯定会在ViewGroup或者View中但是木有找到。发现ViewGroup实现ViewParent接口,而ViewParent有一个实现类是ViewRootImpl, ViewGruop中会使用ViewRootImpl/** * The top of a view hierarchy, implementing the needed protocol between .

2020-12-08 15:45:51 190

原创 数据加密和解密总结

加密incode:对明文(plaintext可读懂的信息)进行翻译,使用不同的算法对明文以代码形式(密码)实施加密转换成密文(ciphertext)。该过程的逆过程称为解密(descode),即将该编码信息转化为明文的过程。对称加密(Symmetric Cryptography)对称加密是最快速、最简单的一种加密方式,加密(encryption与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。对称加密有很多种算法,由于它效率很高,所以被.

2020-11-30 17:52:44 1420

原创 Java动态代理是什么?

动态代理的类和接口Proxy:动态代理机制的主类,提供一组静态方法为一组接口动态的生成对象和代理类。// 方法 1: 该方法用于获取指定代理对象所关联的调用处理器public static InvocationHandler getInvocationHandler(Object proxy) // 方法 2:该方法用于获取关联于指定类装载器和一组接口的动态代理类的类对象public static Class<?> getProxyClass(ClassLoader loader

2020-11-28 17:08:41 320

原创 HashMap原理分析和具体实现

HashMap实现原理分析HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null建和null值,因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不能相同。原理其底层数据结构是数组称之为哈希桶,每个桶(bucket)里面放的是链表,链表中的每个节点,就是哈希表中的每个元素。通过hash的方法,通过put和get存储和获取对象。存储对象时,我们将K / V传给put方法时,它调用hashCode计算ha

2020-11-28 17:02:08 158

原创 Java实现八种排序算法详解

插入排序基本思想:在要排序的一组数中,假设前面(n-1)[n>=2]个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。总体分析:用第二个数和第一个数比较大小,大的放到右边。用第三个数分别和第二个数还有第一个数比较,并把大的放到右边。用第四个数分别和第一个第三个第二个第一个数比较,并把大的放到右边。…所以这里肯定要用到嵌套for循环。 public void insertSort(int[] arr) {

2020-11-27 11:01:02 657

原创 Android 常用库--- 抽屉菜单

MaterialDrawer 一般 安卓抽屉效果实现方案 github高星Side-Menu.Android 一个 创意边侧菜单 动画效果十足FlowingDrawer 划出时有流动的抽屉效果SlidingRootNav 仿DrawerLayout的ViewGroup[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LX6HQ3KS-1604990359024)(C:\Users\admin\Desktop\sample.gif)].

2020-11-10 14:44:53 252

原创 再次理解泛型

文章目录前言定义泛型类、泛型接口怎么派生带泛型的子类?类型通配符使用类型通配符类型通配符的上限类型通配符的下限泛型形参的上限泛型方法带泛型的返回值总结前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。定义泛型类、泛型接口//泛型类public class Apple<T>{ private T info.

2020-08-18 15:07:48 131

原创 超详细Okhttp 源码分析

文章目录前言创建OkhttpClient创建Requestbuild()Request创建Request同步请求(单独部分)executed ①runningSyncCalls②异步请求(单独部分)enqueue①executorService ①①AsyncCall ②run()方法②①execute ②①①finished②①①①Dispatcher(Okhttp核心)分发器拦截器(Okhttp核心)proceed5个拦截器的简单总结 :1. RetryAndFollowUpInterceptor重定

2020-08-18 14:13:09 893 1

原创 Android Studio 4.0: Default Activity not found Error

这个问题让我找了2天时间,???? ,特此记录 ,希望也能帮助到大家。如果解决了你的问题,麻烦点个赞呗!我找的网上方法 :1.选择Edit Configurations设置Launch Options 为 Nothing这个方法虽然可以让 代码编译完成了,看似好像没问题了,但是手机上软件并没有启动 结果“失败”2.删除Android Studio的缓存和配置文件等待20分钟启动,结果“失败”3.AndroidManifests 缺少启动配置显然不是 ,结果“失败”我最后解

2020-06-28 15:47:17 231 1

原创 Kotlin中的let、with、run、apply、also常用场景

常见场景的使用let处理需要针对一个可null的对象统一做判空处理 private var textView: TextView? = null //没使用 let前 每一个都需要 加 ? var text = textView?.text textView?.setTextColor(Color.BLACK) //使用 let后 只需加一次 textView?.let { .

2020-06-10 17:41:32 810

原创 Android工具类库,满足你的各种需求

DownloadGradle:implementation 'com.blankj:utilcode:1.29.0'// if u use AndroidX, use the followingimplementation 'com.blankj:utilcodex:1.29.0'APIsActivity 相关 -> ActivityUtils.java -> DemoaddActivityLifecycleCallbacks : 新增 Activity 生命周期监

2020-06-04 14:50:34 667

原创 Kotlin中的扩展

Kotlin 中的 扩展 到底是什么?简单使用:扩展函数//要扩展哪个类中的方法,被扩展的类名就是哪个fun 被扩展的类名.扩展函数名(..参数..){函数体}例如:在Array中扩展一个元素交换的方法fun Array<Int>.swap(pos1: Int, pos2: Int) {//this表示当前数组本身val tmp = this[pos1]this[pos1] = this[pos2]this[pos2] = tmp}高级点用法:使用 .

2020-05-31 22:04:41 3476

原创 Kotlin中的高阶函数(一等公民)

下面我们来说说 Kotlin中的高阶函数Kotlin 不是纯粹的面向对象语言, Kotlin 的函数也是一等公民,因此函数本身也具有自己 的类型 。 函数类型就像前面介绍的数据类型一样,既可用于定义变量,也可用作函数的形参类 型,还可作为函数的返回值类型使用函数类型Kotlin 的每个函数都有特定的类型,函数类型由函数的形参列表、 ·>和返回值类型组成 。 例如如下函数 :fun foo(a : Int , name:String) ->String{ ....}该函数的形参.

2020-05-29 23:27:07 3767

原创 Kotlin中尾递归函数

Kotlin尾递归函数理解kotlin中,如果某个函数的末尾又调用了函数自身,这种就称为尾递归函数。尾递归函数需要在 fun 前面添加 tailrec。尾递归函数会使用循环的方式替代递归,从而避免栈溢出。尾递归不能在异常处理的try、 catch 、 finally 块中使用 。例子:求余弦不动点tailrec fun findFixPoint(x: Double = 1.0): Double= if (x == Math.cos(x)) x else findFix.

2020-05-28 14:54:33 3926

原创 Kotlin中的内联函数

Kotlin中的内联函数还是挺好玩的为什么需要内联函数?lambda 表达式会被正常地编译成匿名类。这表示每调用一次 lambda表达式,一个额外的类就会被创建。 并且如果 lambda捕捉了某个变量, 那么每次调用的时候都会创建一个新的对象。 这会带来运行时的额外开销,导致使用 lambda 比使用一个直接执行相同代码的函数效率更低 。内联函数的作用是啥?能够消除 lambda带来的性能开销, 还能够使 lambda 内的控制流更加灵活. 内联函数使用 inline 修饰符标记,内联函.

2020-05-27 22:18:28 6892

原创 Kotlin中的泛型函数

Kotlin中的泛型和java中的十分类似都是用T表示泛型kotlin中使用 T 表示泛型。在定义泛型函数时需要在 fun 后面加入 , 然后指明某个参数的类型为 T 泛型函数的定义: //Kotlin中允许定义全局函数,将函数定义在kt文件中,然后全局可调用 fun <T> appendString(tag: String, vararg otherInfo: T?): String { var str: String = "$tag:" for .

2020-05-26 09:51:27 4480

原创 偶遇 android.content.res.Resources$NotFoundException: BUG可让我一顿好找。特此记录!

今天偶遇 android.content.res.Resources$NotFoundException: BUG可让我一顿好找。特此记录!场景还原:在RecyclerView Adapter中获取布局崩溃 ,起初查网上说的是1. R文件的问题,有的说删除当我删除后依旧不行。。。。。。2.inflate 文件的时候 R.Layout.****, 写成了R.id.***** 这种很显然不是。。。3.文本渲染的时候 tv.setTest(),传了 int 类型 还没有执行文本渲.

2020-05-14 18:35:59 9154 1

原创 Android使用RecyclerView+BaseQuickAdapter处理item中包含RadioButton的单选实现

先上代码beanpublic class ListBean { private String name; boolean check=false;//是否选中 public ListBean(String name) { this.name = name; } public boolean isCheck() { return check; } public void setCheck(boolean c

2020-05-09 17:26:33 10070

原创 Kotlin----控制语句

1、条件分支(1)、简单分支–if…elsekotlin 中 if…else 语句具有返回值,类似于Java中的三目运算//传入两个值 a 和 b , 将大值显示在TextView控件中nameTextView.text=if(a>b) a else b(2)、多分支A: 特点kotlin 中没有 switch/case ,使用 when/else 替代when/...

2020-04-15 15:57:50 9281

原创 Kotlin----数据类型详解

数据类型1、基本数据类型基本类型​ Int、Long、Float、Double、Boolean、Char、String类型之间的转换​ toInt()、toLong()、toFloat()、toDouble()、toBoolean()、toChar()、toString()2、数组(1)、数组的声明基本数据类型数组的声明:​ intArrayOf(…)、longA...

2020-04-13 14:16:35 9040

原创 Java 中 List,Set,Map 区别

关系:List和Set都实现了Collection接口,Map是一个单独的接口List :存放有序(怎么存入,怎么取出),允许存入重复元素,可以出现多个NULL值。(用来存储一些有序的数据,并且可以方便的取出)Set:Set中存储的数据是无顺序的,并且不允许重复,但元素在集合中的位置是由元素的hashcode决定,即位置是固定的。(通常可以和List集合搭配使用,用来去除重复数...

2020-04-07 15:34:45 8951

原创 Android 补间动画和属性动画的区别

特性 补间动画 属性动画 view 动画 支持 支持 非view动画 不支持 支持 可扩展性和灵活性 差 好 view属性是否变化 无变化 发生变化 复杂动画能力 局限 良好 场景应用范围 一般 满足大部分应用场景 ...

2020-04-03 18:38:39 9286

原创 升级Androidx后一些常用依赖的引入地址

CardViewimplementation 'androidx.cardview:cardview:1.0.0'TabLayoutimplementation'com.google.android.material:material:1.0.0'RecycleViewimplementation'androidx.recyclerview:recyclerview:1.0.0'...

2020-04-02 14:14:32 10589

原创 自定义 Handler 时如何避免内存泄漏问题?

1.保证Activity被finish()时该线程的消息队列没有这个Activity的handler内部类的引用。这个场景是及其常见的,因为handler经常被用来发延时消息。一个补救的办法就是在该类需要回收的时候,手动地把消息队列中的消息清空:mHandler.removeCallbacksAndMessages(null);2.要么让这个handler不持有Activity等外部组件实例,...

2020-04-02 10:54:59 9029

原创 定制第三方UI以Element UI为例

前言​ 我是个搞Android的,最近开始学习一些网页开发的内容,我发现一个问题就是大多数网页开发人员都是会使用一些第三方UI插件例如:Element UI、Muse-UI、Vant等,这些UI插件给我们提供了许多好用美观的UI,我们在开发中使用这些UI插件可以很快速的实现一些美观的UI,非常的爽,当我正在愉快的开发时 ,忽然发现 美工小姐姐给的样式是和UI插件提供的样式是不一样的…,我一下子就...

2020-03-21 15:49:39 9572

原创 CSS入门?一篇就够了!

CSS初识CSS(Cascading Style Sheets) 美化样式CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。CSS以HTML为基础,提供了丰富的功能,如字体、颜色、背景的控制及整体排版等,而且还可以针对不同的浏览器设置不同的样式。引入C...

2020-03-20 17:52:35 9496

原创 一步步教你学会使用git超详细

实际开发流程创建git仓库 此处以 国内 码云仓库为例申请 码云仓库账号(进入 码云 申请账号并登陆)登陆账号 创建 git仓库进入创建仓库页面 填写 信息进入创建好的仓库 进行克隆地址复制本地克隆桌面创建文件夹进入文件夹 输入 cmd 回车( 注意:此教程是在安装了 git工具后操作)在此页面输入: git clone 刚才复制的地址 回车...

2020-03-14 14:01:36 9052

原创 html基础知识点合集

HTML 初识HTML(英文Hyper Text Markup Language的缩写)中文译为“超文本标签语言”。是用来描述网页的一种语言。所谓超文本,因为它可以加入图片、声音、动画、多媒体等内容,不仅如此,它还可以从一个文件跳转到另一个文件,与世界各地主机的文件连接。<h1> 我是一个大标题 </h1>注意: 体会 文本 标签 语言 几个词...

2020-03-13 10:15:56 9861 1

原创 5分钟学会使用 Protobuf

什么是 Protobuf ?谷歌推出的一种序列化协议 ,是一种语言无关、平台无关、可扩展的序列化结构数据的方法什么是序列化?把对象转换为字节序列的过程称为对象的序列化为什么要把对象转换为字节序列?以便存储在文件中或在网络上传输。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。进入正题Protobuf优...

2019-12-25 17:42:25 9051

原创 冒泡排序细究java

说起排序大家最熟悉的莫过于冒泡排序了今天就和大家细究一下冒泡排序首先看看基础版冒泡排序的实现代码public static void sort(int array[]){ //外层循环控制排序的次数 for (int i = 0; i < array.length; i++) { //内层循环控制每一次排序的冒泡处理 ...

2019-11-27 17:36:40 8891

原创 高仿支付界面实现

效果实现步骤绘制支付界面布局传递支付界面事件核心代码创建自定义布局 继承 RelativeLayout绘制界面 //view布局 View view = View.inflate(context, R.layout.layout_popup_bottom, null); valueList = new ArrayList<Map<String, Strin...

2019-11-08 23:53:30 10206

原创 实现3D层叠式卡片图片展示

先看效果好了效果看了,感兴趣的往下看哦!整体实现思路重写RelativeLayout 实现 锁定宽高比例的 RelativeLayout自定义一个支持滑动的面板 继承 ViewGroup卡片View绘制页面中使用布局首先为了更好的展示图片我们重写一下 RelativeLayout 编写一个锁定宽高比例的 RelativeLayoutAutoScaleRel...

2019-10-29 13:36:05 10332

原创 自定义View画直线、圆环数据变动View

大苏打

2019-10-20 15:49:17 9225 1

原创 Android事件分发 分析

Android事件分发 分析什么是事件的 分发用户通过屏幕与手机交互的时候,每一次点击、长按、移动等都是一个事件。事件分发机制:某一个事件从屏幕传递各个View,由View来使用这一事件(消费是事件)或者忽略这一事件(不消费事件),这整个过程的控制。事件分发的对象是谁系统把事件封装为MotionEvent对象,事件分发的过程就是MotionEvent分发的过程。...

2019-09-24 10:51:29 9165

原创 炫酷旋转菜单

旋转动画实现关键代码//枚举类 菜单状态 public enum Status { OPEN, CLOSE }/*** 单击子菜单的回调接口*/ public interface OnSatelliteMenuItemClickListener { void onClick(View view, in...

2019-09-20 11:33:38 9585

十大经典源码包

Laravel5.1框架使用案例,Python案例代码

2019-03-04

空空如也

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

TA关注的人

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