Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

shd

shd

Android-插件化探索(一)

前言 由于近期项目中要用到插件,所以特地去翻找资料学习了一番,现在在这里分享我所学到的东西给大家,有什么错误的希望能给我指出来,文章有点长,希望大家能认真读完。 近些年来,插件化可谓是特别的火热,就拿支付宝美团等软件来说,都是使用这个技术来支撑他们的产品。但是什么是插件化呢,插件

RecyclerView之ItemDecoration使用教程

译文的GitHub地址:RecyclerView之ItemDecoration由浅入深 译者注:RecyclerView第一篇,希望后面坚持下来 RecyclerView没有像之前ListView提供divider属性,而是提供了方法 recyclerView.addItemDe

Object-C中的内存管理

免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作! 注:本教程由北方和我本人合作翻译。 教程截图: 当我检查其他开发人员的代码时

SharedPreferences源码解析

1、简述 有段时间没写博客了,写博客的习惯还是应该保持的。 写在前面,要很好的理解SP的工作机制,请一定要先看QueuedWork介绍文章,先了解QueuedWork的工作机制。 本片博客主要是对Android的一个常用组件SharedPreferences(以下简称SP)进行分

发现Kotlin一个神奇的bug

本文将会通过具体的业务场景,由浅入深的引出Kotlin的一个bug,并告知大家这个bug的神奇之处,接着会带领大家去查找bug出现的原因,最后去规避这个bug。 现实开发中,我们经常会有将Json字符串反序列化为一个对象问题,这里,我们用Gson来写一段反序列代码,如下: fun

用deepseek写deepseek的api调用代码

提示语言:写个php代码:调用deepseek的api接口,并实现对话框模式的功能。 要实现一个调用DeepSeek API接口并实现对话框模式的PHP代码,你可以按照以下步骤进行。假设DeepSeek API是一个对话式AI接口,类似于ChatGPT,我们可以通过PHP发送请求

android 面试题总结

一、多线程 Join() 线程加入,执行此方法的线程优先使用cpu Yeild() 线程释放资源使所有线程能有相等的机会使用cpu Sleep() 相当于让线程睡眠,交出CPU,让CPU去执行其他的任务(不会释放锁)。 Wait()方法会让线程进入阻塞状态,并且会释放线程占有的锁

Android WebView加载优化

1.前言 最近几年关于原生WebView与H5混合开发的项目越来越多,这种开发带来了很多便利,但也会有一些缺点,比如说通过WebView加载H5会有一定的卡顿现象,会影响用户体验。下面本文就此问题一一展开讨论。 2. 场景 根据日常需求一般是通过webView.loadUrl()

协变和逆变

本文同步发表于我的微信公众号,在微信搜索 OpenCV or Android 即可关注。 协变、逆变 概念 许多程序设计语言的类型系统支持子类型。例如,如果Cat是Animal的子类型,那么Cat类型的表达式可用于任何出现Animal类型表达式的地方。所谓的变型(variance

Android webview 与 js(Vue) 交互

js 与原生交互分为两种情况:js 调用原生方法,原生调用 js 方法。 本文将对这两种情况分别讲解,H5 端用 vue 实现。 一、前期准备(Vue项目准备) 本文的 H5 端用Vue 实现,所以在正式开始前先把 Vue 项目环境准备好。 项目写好后,执行 npm run se