草庐IT

Android Activity横竖屏切换生命周期

面试被问到横竖屏切换时Activity的生命周期,正好记录一下验证过程~横竖屏切换涉及到的是Activity的android:configChanges属性,而与其android:launchMode属性没有关系;android:configChanges可以设置的属性值有:orientation:消除横竖屏的影响keyboardHidden:消除键盘的影响screenSize:消除屏幕大小的影响验证步骤新建Activity,重写各个生命周期方法:publicclassMainActivityextendsAppCompatActivity{@OverrideprotectedvoidonCr

SystemUI Plugin 简介及使用

一、技术背景SystemUI结构复杂,模块数量众多,最重要的是SystemUI属于常驻进程是一个系统的门面,且不能自升级,如果定制功能对主项目做复杂的修改,首先会造成适配压力,如果对主框架不甚理解,有可能会造成很多隐藏的Bug,且不易修复,一旦崩溃对整个系统的影响很大,那么怎么才能在不修改主结构的基础上定制我们自己的功能呢?Google的SystemUI团队对该模块做了插件化的功能,可以动态实现对SystemUI的修改,一方面在一定程度上解决了不能自升级造成的问题,另一方面也解决了定制功能和原生主框架的解耦,再者,即便使用Plugin实现的功能crash了,也不影响SystemUI的运行,保证

iOS-制作frameworkDemo工程(framework开发打包和调试)

一、创建工程1.先创建一个文件夹,名字SPSDK(自己根据自己需求起名)iShot_2022-07-24_19.17.11.png2.创建workspaceiShot_2022-07-24_19.17.58.png保存到之前创建的文件夹iShot_2022-07-24_19.19.50.png创建好是这样的iShot_2022-07-24_23.56.15.png这个workspace是为了管理framework和调试framework的demo3.创建framework工程iShot_2022-07-24_19.21.34.png选择frameworkiShot_2022-07-24_19.

【WPF】图片转pdf

【目录】PDF操作-简书(jianshu.com)一、概述将图片转换为pdf。图片类型包括:jpg、jpeg、gif、png、bmp、wmf、tiff、ccitt、jbig2。二、演示三、环境开发工具:VisualStudio开发语言:C#目标框架:.Net6.0四、实现第一步:新建项目:ImageToPdfDemo第二步:添加Nuget包添加Nuget包:itext7,这个包用于操作pdf第三步:添加PdfConverter类添加PdfConverter类,并添加ConvertImageToPdf方法,用于实现图片转Pdf第四步:编写界面MainWindow.xaml代码如下第五步:实现按钮

flutter项目从2.0升级到3.0编译运行报错踩坑

上个月官方推出了fluter3.0,直接支持MacOS的M1芯片,我就升级到了最新flutter版本.但是项目基本都是flutter2.0的环境,升级flutter后,打开项目几乎全红色的报错,好几百个报错报错看似很多,其实编译器都有智能提醒,跟着提示,一步步处理,其实问题都不大先把项目依赖的第三方库都更新到最新版本;接着手动解决报错;比较坑爹的是fluter3.0把flutter2.0标记的过期的属性直接干掉了,导致编译器无法智能提示错误修复,只能查看源码,手动改了,所以flutter2.0日常开发中标记过期的属性方法不要继续使用了,及时的换成最新的,否则SDK升级时很难受.花了几个小时时间

iOS创建bundle文件

选择需要加入的项目之后需要更改运行系统Bundle默认是macOS系统的需修改成iOS系统。在TARGETS BuildSettingsBaseSDK设置为iOSBuildActiveArchitectureOnly修改为NO (支持所有设备的架构)BuildSetting中的COMBINE_HIDPI_IMAGES为NO Deployment中设置SkipInstall为YES  清除InstallationDirectory路径信息 (作为资源包,仅仅需要编译就好,无需安装相关的配置)

对不起,我错了,这代码不好写

hello,大家好呀,我是小楼。前几天不是写了这篇文章《发现一个开源项目优化点,点进来就是你的了》嘛。文章介绍了Sentinl的自适应缓存时间戳算法,从原理到实现都手把手解读了,而且还发现Sentinel-Go还未实现这个自适应算法,于是我就觉得,这简单啊,把Java代码翻译成Go不就可以混个PR?甚至在文章初稿中把这个描述为:「有手就可以」,感觉不太妥当,后来被我删掉了。过了几天,我想去看看有没有人看了我的文章真的去提了个PR,发现仍然是没有,心想,可能是大家太忙(懒)了吧。于是准备自己来实现一遍,周末我拿出电脑试着写一下这段代码,结果被当头一棒敲醒,原来这代码不好写啊。如何实现先简单介绍一

Flutter iOS混编 解决flutter在iOS14+ debug模式上无法运行的问题

iOS项目引入Flutter后,安装Debug包,打开Flutter界面会出现"IniOS14+,debugmodeFlutterappscanonlybelaunchedfromFluttertooling,IDEswithFlutterpluginsorfromXcode"问题。image.png解决办法如下:用[Xcode]打开工程项目,在BuildSettings的最下方找到User-Defined,点击+按钮,添加一个键为FLUTTER_BUILD_MODE,debug设置profile模式,release设置release模式。image.png

iOS安全--APP代码签名机制

学习路线(内部分享内容)加密解密(对称加密、非对称加密、混合加密)单向散列函数数字签名证书iOS签名机制参考资料与图片来源:《图解密码技术第三版》iOSApp签名的原理Apple签名机制官方指南深入理解代码签名机制1.加密解密为什么需要加密?image.pngimage.pngimage.png对称加密什么是对称加密?-就是指加密和解密时使用的密钥都是同一个,是“对称”的。image.png常见算法:DES(数据加密标准,DataEncryptionStandard)3DES(3次DES加密解密)AES(高级加密标准,AdvancedEncryptionStandard)存在密钥配送问题:对称

第十七篇:iOS启动优化

APP启动分为pre-main和mian两个过程,首先我们需要进行如下图设置,设置DYLD_PRINT_STATISTICS为1,这样我们就可以打印出来APP在启动的时候所花费的时间。WechatIMG2107.jpeg下面是各个阶段的消耗时间:1.dylibloadingtime这个时间优化,也就是dylib链接动态库的优化,可以减少动态库个数(指自己写的库),苹果给我们建议是我们自己写的动态库不要超过6个是最好的。2.ObjCsetuptime这个是注册objc所有类所需时间,在mach-0里读取所有文件的类,把它们会放到一张表里面。我们可以安装一个fui,通过终端输入fuifind命令可