阿里云老用户续费优惠,一年6.5折扣

  • Adamin90
  • 2021-12-14 21:20:03
  • VPS
    今天朋友跟我说服务器要续费了,发给我一张截图比去年贵了好几千,但是服务器上部署的网站和内容太多不好迁移。    然后我找了找,阿里云有针对老用户的续费活动,能省下不少钱 。直达链接:阿里云老用户续费活动 这个优惠还是不错的,一年老用户享受6.5折扣,3年6.3折,5年6折详细步骤:点击活动链接&nbs
阅读全文

Xshell通过跳板机连接只有ipv6的vps

    最近折腾了一台欧洲小鸡只有ipv6地址,由于我本地宽带不支持ipv6,所以没有通过xshell或者putty直连。    解决方式可以通过跳板机的方式连,意思就是通过支持ipv6的跳板机代理连接我们只有ipv4的vps。    如果跳板机只支持ipv4是不可行的,我们可以
阅读全文

使用warp解决vir,rn等谷歌验证码问题

使用cloudflare warp脚本解决virmach,RN等vps谷歌验证码问题
阅读全文

Android Handler 原理-Handler

  • Adamin90
  • 2021-09-25 12:11:55
  • Android
Handler机制是安卓消息循环机制的基石,Handler是Handler机制的指挥者 Handler发送消息方式有两个版本,post和send,post版本发送一个runnable对象,send直接发送Message对象,post和send最终都调用了MessageQueue的enqueueMessage方法。 Handler处理消息的方法是dispatchMessge方法,优先处理msg.callback,其次是Handler的mCallback对象,最后才是handleMessage方法。 Handler移除消息的方法最终都是调用MessageQueue的移除方法。 HandlerThread继承自Thread,简化了在子线程创建Handler的过程,run方法自动调用Looper.prepare和Looper.loop。
阅读全文

Android Handler 原理-Looper

  • Adamin90
  • 2021-09-21 13:08:26
  • Android
Looper主要通过loop方法从MessageQueue中循环获取消息,然后交给Handler处理。 在线程中要先使用Looper.prepare方法创建Looper,再调用Looper.loop方法获取和处理消息。 Android主线程的Looper实在ActivitiyThread的main方法中通过Looper.prepareMainLooper初始化的。
阅读全文

Android Handler原理-MessageQueue

  • Adamin90
  • 2021-09-19 21:59:28
  • Android
MessageQueue负责消息的入队(enQueueMessage)和出队(next),通过Handler间接操作入队,Looper.loop调用next方法循环出队,MessageQueue的初始化在Looper的prepare或prepareMainLooper方法中,mainLooper定义消息队列不可退出。MessageQueue内大部分操作是native层操作,基于epoll机制。同步屏障可以使异步消息优先执行。 MessageQueue内的IdleHandler可以注册为闲时执行,闲的意思使消息队列无消息,或者消息未达到执行时间。
阅读全文

Anroid Handler原理-Message

  • Adamin90
  • 2021-09-16 14:31:02
  • Android
Message是安卓消息传递机制信息的载体,他内部维护了一个链表,指向下一个,维护了一个缓存队列,最多缓存50个对象,避免重复创建对象,Message回收使用了享元模式的设计模式,Message回收会把flags标识成FLAG_IN_USE,消息入队也会标识成IN_USE,获取Message对象一般使用Message.obtain()方法,内部会清空flags标识。 Message默认是同步消息,遵循Looper的同步消息屏障,我们可以通过setAsynchronous方法把消息设置成异步,突破消息屏障,让它优先执行。
阅读全文

Android Studio Arctic Fox 原生项目集成Flutter模块Failed to apply plugin class 'FlutterPlugin'

Android Studio 升级Arctic Fox后原生项目集成Flutter module报错:Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin class 'FlutterPlugin'. Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by plugin class 'FlutterPlugin'
阅读全文

Flutter 集成到现有的安卓原生项目中-集成方式

安卓原生项目集成flutter由两种方式: Android Studio菜单集成File>New>Module创建或选择Flutter module,Android Studio会自动配置和依赖模块 手动集成 执行flutter create -t module --org com.adamin module_name创建模块 依赖集成方式有两种,aar或源码依赖方式。
阅读全文

Java必备基础知识备忘整理

  • Adamin90
  • 2021-07-16 14:58:26
  • Java
8大数据类型byte/8 char/16 short/16 int/32 float/32 long/64 double/64 boolean/~new Integer(2333)和 Integer.valueOf(2333)区别使用new关键字创建每次都会创建一个新对象,而使用Integer.valueOf会从缓存池获取引用对
阅读全文
  • Powered by bjyblog modified by Adam © 2014-2022 www.lixiaopeng.com 版权所有 ICP证:鲁ICP备15039297号
  • 联系邮箱:14846869@qq.com