自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (2)
  • 收藏
  • 关注

原创 android 弹窗,菜单

之前封装的弹窗,搞了一个2.0的版本,加了配置类,用于定制。接下来是MenuCofig和BaseMenuWork的源代码。

2023-06-14 16:56:16 88

原创 HashMap的原理简述

HashMap的原理简述

2023-02-01 22:31:52 356

原创 CRC(Cyclic Redundancy Check) 循环冗余校核

CRC(Cyclic Redundancy Check),即循环冗余校核,是一种根据网络数据包或电脑文件等数据产生简短固定位数校核码的快速算法,主要用来检测或校核数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理,实现错误侦测的功能,具有原理清晰、实现简单等优点。

2022-12-30 15:25:50 881

原创 kotlin版本二叉树实现

数据结构,二叉树,kotlin版本

2022-10-20 00:26:36 682

原创 关于安卓弹窗,底部菜单等用动态添加布局的方式实现

说起实现一个弹窗的效果~你会想到什么实现方式呢?用PopupWindow 或AlertDialog 或在布局文件添加一个布局隐藏或者显示等等,实现的方式很多用popupWindow 和AlertDialog很方便,但代码不便于复用,扩展性不好,会出现一些输入焦点的问题。并且样式修改困难。如果直接写在布局文件里,用显示隐藏的方式,还是不便于代码复用。所以我想到了一种思路,动态的添加布局,并且把这整个布局显示隐藏或移除添加以及添加到activity的逻辑封装到一起作为基类。实现类只需要实现弹

2021-08-18 17:58:01 447 1

原创 模拟handler写的一个demo

Looper 类 模拟了loop方法,quit 方法用于退出模拟的死循环package com.yuixu.test2import android.util.Logclass MyLooper { var mThread:Thread companion object{ var threadLocal =ThreadLocal<MyLooper>() fun myLooper():MyLooper{ re

2021-06-27 18:48:57 178

原创 Handler 的loop()方法详解

上篇说了loop()方法并不是handler用来取出消息的,那么这篇分析一下loop()的源码看下它到底是干嘛的。个人理解大概是用来等待接收消息的,他会使线程进入休眠状态,等待被唤醒。这里关键的地方就是 MessageQueue的next方法。其中调用了nativePollOnce ,这个方法可以参看上篇提到的其他作者的native层源码分析(具体意思这个是Linux中的一种线程通讯机制,这个方法会让线程进入休眠状态)还有Looper中的Observer。looper中的Observer 是个抽

2021-06-27 15:54:17 889

原创 从源码详细分析Handler 原理

终于对handler 下手了????先来看看源代码,要看Handler源码还是要从构造方法入手。 @Deprecated public Handler(@Nullable Callback callback) { this(callback, false); } /** * Use the provided {@link Looper} instead of the default one. * * @param loope

2021-06-27 12:32:33 264 2

原创 kotlin版本的RecyclerView Adapter

abstract class BaseAdapter<T, B : ViewBinding?> : RecyclerView.Adapter<BaseAdapter.ViewHolder<B>> { lateinit var onItemClick: (view: View, pos:Int)->Unit protected var mDatas: ArrayList<T>? = null protected var c.

2021-05-31 16:42:00 805

原创 Kotlin 中let with run apply also 详解

1)let相关下面这个抽象类,使用了一个泛型 T,并且分别使用声明了let函数和 定义了一个抽象函数bb仔细观察。如果我们想对Info 做一些处理,可以分别用两种方式,一种是覆盖 bb 抽象方法,之后在bb 方法中写业务逻辑。另一种方式使用let关键字和lambda表达式。这个时候泛型R 就指代了 一个以T 为参数的代码段。而这个代码段并不需要提前写好,可以在调用的时候再去写,如方法cc中一样。可以说let关键字更灵活一些。实际的场景举例,如果我们想要复用某段代码,如果直接使用抽象方..

2021-05-06 22:52:47 515 5

原创 android拖拽控件

好久没有机会画画控件,最近画了一个换汤不换药的控价,之前的开关是点击事件,这个响应拖拽。说下我这个控件拖拽的原理,手指按下,判断当前手指位置是否为拖拽元素所处位置,如果是,将控制变量值改为true在onMove 事件中重新计算拖拽元素位置并重绘在其他事件中重新将控制变量值改为false,并且用回调返回当前控件选中值,先上一个效果图,然后源代码走起public class MySeekBar extends View { private int textColor; pr

2021-04-11 14:48:09 509

原创 retrofit2网络请求的kotlin版本封装

从最早网络请求使用httpclient开始,到后面只用okhttp, 到使用retrofit2 ,(听闻retrofit2有kotlin版本,但是我去官网看似乎仍然是java 的)虽然网络框架还是基于java的。但是多数项目都开始使用kotlin编写。所以对自己之前的封装的网络框架也使用kotlin重构一下吧。其实还有一些变化,在测试版本的as中 ,权限请求的方法也过时了,结构变得更灵活,所以以后会把那个再重新封装一下。常规的app用的最多的感觉就是访问网络和权限请求了。好了就这些,这次的封装还

2021-04-01 14:26:52 1686

原创 关于socket 两台Android设备上的通信

好久没有看过socket的代码,今天想实现一个两台手机之间互传的功能,本来想用蓝牙,但是想着,蓝牙有距离限制,如果直接用网络通讯。这样就可以远程发送了啊。于是我想起了socket。经过一上午的时间写了一个demo。然而仅仅实现了局域网的链接。从网上查资料,看了很多关于内网穿透的文章。似乎虽然能够查询到本机的外网地址,但是其他设备并不能直接通过这个外网的ip地址访问到这个设备。其中涉及到了一个名词叫做内网穿透。由于我不是做服务器的所以也没太看懂。大概的意思就是外网并不能直接访问内网,需要经过一些端

2021-03-20 18:59:41 1150 2

原创 关于compose的

试着用compose去做这样一个可以进行富文本编辑的项目。compose渲染页面非常的快,像我手机这样装满了图片,打开我实现的相册,没有任何分相册的情况,下滑翻动完全不卡顿。这样的带调色盘的富文本编辑功能也非常好实现,举例来说,由于compose所有的组件都是方法,所以我想做一个下面那种带滑块的条,我只需要在一个Box里面放上另一个Box。另一个Box可以拖动就可以了。再比如编辑的显示页面,完全不需要像以前一样考虑用什么布局,怎么刷新布局中的子控件。而comoose的实现方式就是我的数据是.

2021-03-19 17:11:07 436

原创 Android的未来我想一定是compose的天下

首先这篇没有代码,我会用compose去写一个开源的项目,等项目写完会上传到github。这篇主要是体验了compose的心里感受。先说下,知道compose是看了谷歌的开发者公众号里一个视频,当时的心情真的特别激动。这两天终于空闲起来下载了测试版的试验了一下。不得不说,真的是太太太太好用了。完全的函数式生命,刷新UI配合livedata直接刷新,无需重绘。控件之间没有继承关系。无需关注生命周期。完全摒弃了传统的activity,fragmemt,XML静态去生命的那种方式。当然也是支持和传统的方式

2021-03-18 01:32:50 1352 2

原创 关于java多线程死锁的问题

最近有被问到死锁的问题,目前为止我的项目还没有遇到过死锁的问题,但是对这个问题我挺感兴趣的,所以试着写了一下解决的方案。不知道实际应用中是怎么解决的呢?有什么完整的方案,希望可以在评论区告诉我。首先加了同步锁的方法如果抛出异常,锁是会自动被释放的。所以我在下面的测试代码中,使用Thread.sleep来让这个test方法一直占用锁。解释一下下面的类的意义, test的方法是加了同步锁的方法,是我们要执行的程序。ctime方法是用来控制每个同步进程的总体时间不要超过5000毫秒,需要单独开启一个线

2021-03-14 16:22:12 359 2

原创 retrofit2的使用

import android.content.Intent;import android.content.SharedPreferences;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.text.TextUtils;import android.util.Log;import com.alibaba.fastjson.JSON;import com..

2021-02-04 16:52:36 481

原创 关于kotlin泛型的使用

因为之前一直想用kotlin开发,正好现在要开一个新项目,所以准备用kotlin来做。把我之前用的mvvm框架的java代码自动转成kotlin以后,有很多地方都报了异常,主要都是泛型的部分,由于框架的基础部分应用了很多泛型,导致自动转了以后很多地方都不符合语法,所以努力的查阅了很多资料,终于修改成了kotlin的代码。网上很多关于kotlin的泛型的教程都讲的很复杂,形变,投影,协变,逆变,看了半天看的很迷惑。所以这块我把自己改好的源码贴出来,底下会放我整个框架的链接,kotlin的部分为了方便直接上

2020-10-20 17:58:44 600 1

原创 ViewBinding与MVVM框架

MVVM框架主要的特点就是低耦合,对于不同的view,model可以复用。目前android 的MVVM框架主要是使用 databinding实现双向数据绑定,来降低耦合度。下面是一个我自己总结的使用databinding来实现mvvm框架的简单示例。model类,这个类主要是一些与视图相关的业务逻辑的处理,对于一些需要复用并且实现不同逻辑的model类,可以使用回调的方式来执行不同的...

2020-03-24 14:50:46 2775

原创 5)Learning diary for flutter

No update for a long time.This is about an interesting e-reader.At present,The function is no prefect.Themain part is the widget be used to display the book content.The code about this part s...

2020-02-05 18:23:14 217

原创 4)Learning diary for Flutter about android

Today I'll givedatafrom serviceto the ListView.Before that,the data waslocal.To practice mixed development,I'll use native code to complete data requestspublic class HomeActivity extends A...

2020-01-07 20:00:39 175

原创 4)Learning diary for Flutter about problem

These days, I troubled bythe problem about Flutter Class not found.Today I seen a examplefrom flutter sdk.I found that creating FlutterView didn't use the Flutter ClassSo, I tried this me...

2020-01-07 14:04:23 126

原创 3)Learning diary for flutter about android

Yerstoday,I worte an android program which only has one list viewToday,I'll add feature about load more to the listThe page is implement of statefulWidgetThe class used to updates page state i...

2019-12-31 15:40:35 128

原创 2)Learning diary for flutter about android

When everything is ready. Iwrote anandroid program with flutter1)Listview is often used in Android ,so first do it .Android Studiowillnot report an error if the return value is not written....

2019-12-30 13:54:25 169

原创 2)Learning diary for flutter about problems

Some problems appear after the SDK is downloaded again.I'll record them on here1) Use flutter commoned in cmd to stop atpub upgrade all the timeOne of the reasons for this promble is that th...

2019-12-30 12:39:47 262 1

原创 1)Learning diary for flutter about dark

I'v bean learningabout Flutter these days.There are many problems in the process of learning.For example,The Dart SDK un available Becausethe computer system reinstalled yesterday.So before I st...

2019-12-29 20:36:04 197

原创 一个幂运算

今天碰到一个面试题,要求呢是求 A的n次方。试着写了一下。开始只是简单的for循环相乘,后来发现java中最大的存储单位也存不下很大的数,所以后来想到了把乘法转为加法运算,并且利用每一位单独相加,来求最后的结果。思路就是,例如 2的3次方。 就是 2* 2*2 用加法算就是 2+2 得到这个结果4,以后 在 4+4如果说是 3的4次方 那就是 3*3*3*3 那就是 3+3+3得到结...

2019-12-23 17:35:26 983

原创 关于利用java反射实现,Android 工程插件化的理解。个人认为并不是上下文的注入,而是调用。

最近在研究Android 工程的插件化,也可是说是热更新,让项目插件化,功能模块放到插件工程中,编译为插件apk。已实现在不重新安装开发包的基础上,达到更新项目功能模块的效果。当然也可以用于换肤了很多网上的资料和视频,感觉有些地方还是很误导读者。所以在这里整理一下,关于java反射使Android 项目插件化的原理。实际上是利用了java反射的原理和DexClassLoader 这个类,载...

2019-12-11 18:27:02 219

原创 Android OpenGL ES3.0 (1)

\最近研究了一下OpenGL ES3.0,参照了网上很多的示例,在这里总结一部分经验1)数据OpenGL ES3.0 中的3D数据模型是由无数个三角形组成的。例如下面这段数据,就是一个绘制立方体的模型。float数组中每个三个元素代表一个顶点(x,y, z),没三个顶点(九个元素)代表一个三角形。opengles 的数据特点是在-1到1的范围表示整个空间。下面的数据就是用来绘制一个长宽高都...

2019-12-04 12:07:44 560

原创 一个小的自定义控件

一个简单的滑动开关/** * Created by YuX on 2018/7/19 10:32 * ^_^ qq:565749553 */public class AppToggle extends View { private GestureDetector gestureDetector;// 这个是用于引用手势探测器的 private int text...

2018-07-24 10:06:21 147

原创 6.0以上权限封装再版,另修复了重复弹出去设置对话框的bug

import android.Manifest;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.pm.PackageManager...

2018-07-12 13:27:50 157

原创 webview调用js方法

/** * 调用js方法 由于webview中调用js需要拼接成字符串比较麻烦,所以简单的封装了一下 *     * @param strs 第一个参数是js方法名字,其余任意个参数为传递给js的参数 */public void callJs(Object... strs) { Message message = new Message(); message.obj ...

2018-07-12 12:35:53 1937

原创 一个利用java反射的工具类

package com.jpy.login.db;import android.content.Context;import android.util.Log;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method...

2018-06-27 15:52:01 516

原创 6.0申请权限封装修改版

完善了拒绝,和拒绝不再提醒以后的逻辑public abstract class BaseBegPermissionActivity extends BaseActivity { private TodoBackFromBeg backDo; protected void setBackDo(TodoBackFromBeg backDo){ this.backDo

2017-04-19 15:08:34 214

原创 6.0授权的封装

首先需要申请的权限封装成一个String 数组 String[] permissions = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.READ_PHONE_STATE, Manifest.permissi

2017-03-27 13:39:27 255

原创 一个好玩的算法题。用java来写写

public class test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub// 0代表身份,0代表诚实族,1代表撒谎族,2代表两面族。int[] answerArr = new int[] { 2, 0, 1 };

2017-03-24 11:53:23 2454

原创 java归并排序

import java.util.Random;public class testmergesort { public static void main(String[] args) { int ary[] = getArray(100); show(ary, "ary"); show(sort(ary, 1), "result"); } private static in

2016-08-16 14:06:28 288

原创 android adapter封装

封装的适配器基类。用起来挺方便哒public class TestAdapter extends MyBaseAdapter { public TestAdapter(Context context) { super(context); // TODO Auto-generated constructor stub } @Override public View getV

2016-06-15 16:50:14 292

原创 Android带侧滑菜单的列表

实现了侧滑显示一个功能菜单的功能。自定义控件继承自HorizontalScrollView。放在一个自定义的列表适配器中。public class MyHorizontalScrollView extends HorizontalScrollView implements OnTouchListener { private int screenWidth; private int sc

2016-05-27 08:54:31 1176

原创 一个自己整合的访问网络的类

一个自己整合的访问网络的类,无论上传文件和不上传文件,上传参数,不上传参数都可以使用。访问网络的主类public class CommonHttpPostRequest extends AsyncTask { private String JSESSIONID = null; // 持久化session private static final String TAG = CommonH

2016-05-11 17:28:40 425

空空如也

空空如也

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

TA关注的人

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