移动开发
ViewModel源码阅读笔记
MVVM模式实现了数据和页面的分离。ViewModel的生命周期需要跟随引用他的activity或者fragment。接下来我们就来看看,ViewModel是如何实现生命周期的伴随的。
先从ViewModel的创建开始看
XXXViewModel viewModel = new ViewModelProvider(fragment).get(XXXViewModel.class)
kotlin
Android 开机自启动Service
1、修改AndroidManifest.xml文件
// 添加接收开机广播的权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
// 注册接收开机广播的receiver
<receiver android:name=".BootBroadcastReceiver">
Xcode14.3打包的APP在iOS13.x上启动崩溃闪退
Xcode14.3 ,iOS13.6.1, iOS13.6, iOS13.3, iOS13.x
今天用Xcode 14.3打包安装在iOS 13.x的手机启动崩溃,但是连着Xcode调试时没有问题,不连着Xcode14.3时启动APP就闪退。
从苹果官网看到也有不少人遇到,但是没有具体的解决方案。
目前从以下几点处理这个问题:
1.降级Xcode到14.2打包可解决该问题
2.app 最低目标版
Windows 刷新按钮是如何工作的?
今天我们来聊聊 Windows 刷新按钮是如何工作的?
在当前,遵循相同的过程,但照片现在保存在数字压缩文件中,该文件具有 MP4 或 MKV 等扩展名。
它使视频便携,我们可以在我们的电脑上打开它。
因此,将您的操作系统生成的帧视为图像。
帧一个接一个地显示在屏幕上,让您感觉一切都是连续的。
每个框架都包含不同的 UI(用户界面)组件,例如背景、图标及其名称。
构建每个框架时,所有组件都放置在其
AIDL通信DeadObjectException来源和解决方法
使用过AIDL进行跨进程通信的同学,肯定遇到过DeadObjectException这个崩溃,那么这个崩溃是怎么来的,我们又该如何解决它呢?今天这篇文章就来聊一聊。
崩溃来源
首先,这个崩溃的意思是,多进程在进行跨进程Binder通信的时候,发现通信的Binder对端已经死亡了。
抛出异常的Java堆栈最后一行是BinderProxy.transactNative,所以我们从这个方法入手,看看崩溃
iOS 开发随笔 (Xcode 13 + iOS 15兼容)
URL Scheme
通过 Xcode13 运行的APP,在 iOS15 系统上会限制 info.plist 的 scheme 白名单个数为 50 个
UITableView sectionHeaderTopPadding
使用 UITableViewStylePlain 初始化 UITableView 的时候,会发现 section header 多出了一截,默认顶部边距为22p
XCode14 & iOS16 适配问题汇总
1、不升级电脑系统与 Xcode,调试iOS 16
1、下载iOS16 Support文件
2、放置到Xcode DeviceSupport目录重启Xcode即可/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
2、iOS16手机开启开发者模式
iOS16手机未打开开发者
iOS之MD5加密、加盐
MD5加密:HASH算法一种、 是生成32位的数字字母混合码。
特点:
1、任意数据得出的MD5值长度都是32
2、对原数据进行任何改动,所得到的MD5值都有很大区别
应用:
主要运用在数字签名、口令加密等方面
MD5改进(加盐等):
现在的MD5已不再是绝对安全,对此,可以对MD5稍作改进,以增加解密的难度
加盐(Salt):在明文的固定位置插入随机串,然后再进行MD5
写一个NSString分
Android中加载Gif动画
Gif动画,我使用了三种方式
1.自定义控件加载gif动画
①.首先自定义一个GifView,用于显示Gif图片,具体代码如下:
public class GifView extends View {
private Resources resources;
private Movie mMovie;
private long mMovieStart;
priv