自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (1)
  • 收藏
  • 关注

原创 Chat-Gpt Prompt编写技巧

总结性提示词指的是让模型对于给定的文字生成简短的总结,并保留其主要信息和观点。需要告知模型生成对话的总结,以及对于总结文字的要求,譬如长度、或者特殊需求和约束。论文总结任务:生成一段论文总结介绍:针对文章主要观点进行简短综述提示词公式:用一句话总结文章:【指定论文】会议总结任务:总结一份会议记录介绍:总结应该强调会议中的主要决定和计划提示词公式:对该会议记录【会议记录】进行总结,列出主要的决定和计划。

2023-05-15 09:50:03 1129

原创 CocoaPods如何发布新版本的Pod Library

Cocoapods如何发布新版本的Pod Library

2023-05-04 17:20:13 761

原创 Uni-App开发框架介绍

调研了Uni-App开发框架,核心是了解将Uni-app的小程序嵌入到已有Android/iOS项目中的结果。

2023-03-21 14:56:59 4208

原创 mac上App的真实名称

mac上App的真实名称。

2023-01-05 17:50:39 335

原创 Shell脚本实用功能片段

bash shell中的正则表示

2022-10-26 10:13:28 261

原创 UICollectionView的Cell间距

水平UICollectionView设置Cell间距

2022-09-06 10:25:02 963

原创 iOS包体积优化-图片优化

iOS包体积优化、图片压缩、相似图片检测、无用图片清理

2022-08-11 14:53:12 962

原创 Swift数组copy-on-write特性实例

Swift数组copy-on-write特性

2022-08-10 11:21:26 282

原创 当使用single-branch clone仓库后,如何添加跟踪的远程分支?

通过single-branch克隆下来的仓库,如何添加新的跟踪分支

2022-07-11 16:38:27 490

原创 泛型和元编程

含义泛型:Generic Type.泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。元编程:编写可以生成其他程序的程序。意义让算法或程序逻辑更为通用,可用于不同的数据类型增强类型安全,在编译期保证类型安全,添加类型约束,减少强制转换的次数实现方式装箱单态化基础装箱List中能装各种不同类型的数据。List v = new ArrayList();v.add("Hello"); v.add("World");使

2022-03-12 18:52:57 802

原创 Macbook便捷操作技巧

1、当弹出文件选择弹窗时(譬如IDE的工具栏中打开项目时),将文件或者文件夹拖到弹窗上,就默认为选择了该文件或者文件夹。2、将文件或者文件夹拖到终端窗口,就会将被拖动的文件的全路径粘贴到终端窗口中。3、在Finder(访达)窗口中,return是重命名操作的快捷键;option+拖动是文件复制粘贴的快捷键;空格键是快速预览快捷键。4、选择多个图片,然后拖到底部dock栏上的“预览”app上,就可以在同一个窗口中打开多个图片,通过键盘上的左右箭头或者触摸板左右滑动在多个图片中快速切换。5、cmd+ba

2022-01-09 21:48:17 916

原创 M1芯片的苹果电脑配置android开发环境

如果使用苹果最新出的arm芯片电脑来做android开发,配置环境步骤如下:1. java环境配置。不要使用brew install 通过命令行安装jdk,而是去https://www.azul.com/downloads/?package=jdk下载arm64版本的jdk2、android studio下载及配置去官网下载对应苹果m1 chip的android studio,打开 androidstudio,下载sdk,下载红框中的command-line tools下载完毕后,进到andr

2021-12-24 21:33:14 2711

原创 UIScrollView的子View曝光统计实现

产品或者运营会要求统计在UITableView\UICollectionView\UIScrollView中,每个卡片的曝光情况。一般的比较简单的实现方式就是在func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "TableVie

2021-12-20 21:48:48 1908

原创 前端WebView传递图像到原生

背景:前端页面需要将页面展示内容进行截屏,然后调用原生的分享功能进行分享。解决方案前端调用相关api对页面内容进行绘制截取,将截图的内容进行base64编码后,再通javascripteinterface传递给客户端,客户端将webview传递过来的字符串解码成Bitmap疑难点1、base64字符串从前端传过来时,带了base64的标识符,一般为"base64/png",注意客户端在解码时,一定要把这段标识字符串删除掉,然后再解码,否则会解码失败;2、iOS解码时,除了第一个注意点外,还要要注

2021-10-15 16:49:26 446

原创 集成第三方FrameWork导致App体积增长估算

工作中在接入一个网络安全防护sdk时,sdk方提供的是Framework压缩文件,里面包含的是编译后的二进制文件和头文件。当看到二进制文件有20M时,就会怀疑sdk太大,导致最终App的体积增长过多。后续分析后,虽然二进制文件有20M,但是实际造成的App体积增长应该只有2M左右。这个二进制文件其实就是一个静态库.a文件。下面解释下这个二进制文件有20M,但造成app实际的体积增长只有2M的原因。BitCode简单解释BitCode就是一种LLVm的中间编码,只要有BitCode,在没有源代码的情况下,

2021-09-09 11:37:26 493

原创 Alamofire请求如何添加httpBody

背景服务端给的接口,需要将参数以application/json的格式,作为请求体,以post请求的方式传给服务端。项目的网络请求框架是封装的Alamofire,业务层只需要构建业务对应的Request和Response即可。业务代码大致如下:class Request: WowRequest<Respone> { var countInfo: Bool = false var page: Int = 0

2021-08-15 15:59:35 1507

原创 Swift线程安全变量实现

为了保证线程安全操作,一般语言都提供了锁Lock来保证临界区安全。所以我们可以通过NSLock来实现对变量的读和写都加锁来实现线程安全。class Sample { var intValue = 0 let lock:NSLock = NSLock func getValue()->Int { lock.lock() let value = intValue lock.unlock() return value } func setVal

2021-07-09 16:33:58 1338

原创 iOS视频列表开发总结

最近开发了一个较大的需求,即视频列表,特点是每个视频卡片高度不一致,包含不同的元素,若卡片长度超过一屏,还需要将底部的操作栏悬浮。可以上滑下滑自动切换到下一个播放.整体实现UITableView作为容器,每一个Item都是一个视频。卡片高度使用自动布局计算,宽度跟手机屏幕宽度相等。踩到的坑自定义UITableviewCell或者是UICollectionviewCell时,添加子view要加到contentview上,若直接加到cell的view上,则点击事件会失效。func setUPUi(

2021-07-09 16:24:57 1095 1

转载 JDK android源码中为什么在方法中创建一个临时变量替代成员变量、类变量

JDK源码中为什么在方法中创建一个临时变量替代成员变量、类变量 又名 临时变量提高Java代码性能一个Java类中可以存在多种形式的变量,可以是最一般的成员变量;或静态变量;或临时变量。那么这三种变量的存取效率如何?1、实战出真知```javapackage com.subject.variable;/** * 使用临时变量提高Java代码性能 (转) */public class VariableDemo { private long instVar;// 成员变量

2021-05-29 11:32:37 140

原创 Solid原则

solid原则由如下5个原则组合而成。S:单一职责原则一个类只代表一种对象定义,只做一种类型责任。如果某个类承担了其他类型责任的时候,就需要分解这个类了。如果将多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,就可能影响到另一个功能,就需要新一轮的测试来避免可能出现的问题,非常耗时耗力。O:开闭原则软件实体应该是可扩展的,而不是可修改的。对扩展开放,对修改封闭。对于该原则可解释为:通过增加代码来扩展功能,而不是修改已经存在的代码;若客户模块和服务模块遵循同一个接口来设计,则客户模

2021-05-15 16:28:22 632

原创 蓝牙耳机连接macbook无声音

现象:蓝牙耳机连接Macbook,耳机没有声音。注意:是可以连接成功,但是声音仍是通过mac的外放输出的。解决方案:拔掉所有mac上的外设,无论是u盘还是雷电口。然后重启。尝试是否可以正常。如果上面的方法不行。请关机,尝试以下步骤关机1.同时按下shift+control+option+power,保持5秒左右2.按power键开机,迅速同时按下键盘上的option+command+p+r,等待mac发出声Duang~的声音后松手,系统会自动开机。3、删掉mac之前和耳机建立的蓝牙连接,重新连

2021-02-28 19:15:14 16412 2

原创 Yum:[Errno 5] [Errno 2] No such file or directory

root@pts/0 # yum install httpd已加载插件:fastestmirror, langpacksLoading mirror speeds from cached hostfile * base: mirrors-internal.yyhu.com * extras: mirrors-internal.yyhu.com * updates: mirrors-internal.yyhu.com正在解决依赖关系--> 正在检查事务---> 软件包 httpd.

2020-12-15 10:11:30 576

原创 UICollectionViewCell自定义遇到的坑

使用UICollectionView来加载网格数据时,都需要自定义UICollectionViewCell,一般都会复现cell的init方法。重点来了:不能复写init()方法,而应该选择复写initWithFrame()。貌似UICollectionView在初始化cell的时候,调用的是initwithframe(),而不是init()....

2020-06-08 14:59:39 781

原创 Androidstudio调试时 手机自动断开

有时候使用android studio调试真机时,每当到了断点处,过个几秒钟,就自动失去连接了。这种情况是可能突然出现的,然后就会一直存在这个问题。原因就是sdk目录下的adb工具出现问题了,最简单的解决方案就是更新adb,直接在android studio里面的sdk tool那里更新下 platform-tools就好了。...

2020-05-21 18:35:16 7540 3

原创 Flutter Engine预加载分析

预加载的好处:加快Flutter页面的打开速度。预加载的原因:因为每个打开的Flutter页面,默认情况下都需要创建一个Flutter Engine,这个初始化是比较耗时的,所以可以考虑提前初始化一个Flutter Engine并保存起来,后续可以省去初始化的时间而直接使用。预加载的实现:以android端为例,ios基本类似//在应用初始化时,执行如下代码,创建一个flutter engine,并以一个key值保存起来。// Instantiate a FlutterEngine.

2020-05-13 09:52:42 3379

原创 Flutter1.12android端升级适配

Flutter1.12官方做了很多修改,有一些是break change.少儿词典中,通过将flutter工程添加到现有android工程的形式来使用Flutter.\version < 1.12时,少儿词典Flutter工程的封装如下:1、Flutter页面的构建。直接构建FlutterView,然后将flutterview添加到布局文件中import io.flutter.facade val flutterView = Flutter.createView( acti

2020-05-13 09:50:20 736

原创 android 11的IME animation

android 11 进入preview了,看了下相关新闻,了解到有一个输入法相关的新特性加进来了,其实就是监听系统的windowinset的值的变化吧。体验了下官方demo,感觉just so so.demo地址:https://github.com/android/user-interface-samples.git子项目:WindowInsetsAnimation...

2020-04-26 17:21:56 421

原创 Flutter项目:android studio不显示已连接设备 || Flutter SDK path 重启后为空

背景:用android studio开发flutter项目,是需要在Preference设置里面配置flutter sdk path路径的,只有在配置该path后,android studio才会在工具栏那里显示已连接的设备,不论是真实手机还是模拟器。但发现,每次配置flutter sdk path后,如果我重启了android studio,那么之前配置的flutter sdk path又...

2020-04-26 17:09:54 1737

原创 android studio启动时打开之前的项目

android studio启动时会默认打开之前打开过的项目,如何才能设置不打开呢,见下图。

2020-04-22 14:35:23 1531

原创 Gradle build 报错:Received status code 400 from server: Bad Request

android studio构建报错。错误提示是某个依赖无法下载,但是点击链接,反应是能下载的,郁闷至极。问题应该出现在android studio的代理上面。有可能是某次你设置或代理,即使后续你关闭代理,但是真正执行的时候依然使用了代理,导致问题。所以必须注释掉代理选项。...

2020-02-18 15:32:14 769

原创 shell脚本学习-06

82.awk命令语法格式awk 'pattern' filename # file中所有包含的pattern的行都将打印出来awk '{action}' filename # 这种情况下,action将作用于filename中的每一行上awk 'pattern {action}' filename # action将被作用于filename中匹配到pattern的行action只有pr...

2019-10-29 10:20:19 179

原创 shell脚本学习-05

79.文本操作命令:sed awk这些命令操作文本时,是一行一行地处理的,如果该行匹配到了关键字或者正则表达式,那么该行被接受并打印在屏幕上,然后读取下一行并进行操作。sed操作符不会修改原本的文件,如果想得到过滤后的结果,需要重定向到其他文件中。sed过滤打印的语法格式:sed -n '/Regular_Expression/p' filenamesed -n '/Mango/p' f...

2019-10-25 09:50:23 162

原创 shell脚本学习-04

65.IFS:文本分隔符默认的文本分隔符是’ ',但是可以手动设置为其他的,如:‘:’ ‘|’ ': ’cities=Delhi:chennai:bangaluru:kolkataold_ifs="$IFS"IFS=":"for place in $citiesdo echo the name of city is $placedone66.tr 字符替换tr 'abcd'...

2019-10-16 10:09:21 347 1

原创 shell脚本学习-条件选择(if-else)&循环语句

51.条件选择语句:if elseif command #注意if与command之间的空格then command commandelse commandfi语法格式可如下:if [ string/numeric expression]then commandfiif [[ string expression ]]then com...

2019-10-08 10:21:31 1864

原创 Shell脚本学习之路---算术运算&数值比较&字符串比较

31.read:从键盘读取输入$read variable$echo $variable$read -p "Enter value: " value #-p:代表prompt,显示提示语。如果未在read命令后面指定变量,那么会将输入值存储到默认的变量REPLY中#!/bin/bashecho "where do you stay ?"readecho "you stay in ...

2019-09-23 10:09:24 610

原创 Shell脚本学习之路---01

用的较少的关键字命令:1、at:(automatic)代表自动执行某个任务例子:```at 10am mar 31 2015at> echo "taxes due"at> ^D(ctrl+D代表存储该任务)```atq:显示已经预定的任务atrm job-d:删除某个设定的任务2、crontab:重复性地执行某个任务```* * * * * ...

2019-09-04 10:24:30 301

原创 Kotlin版本升级导致编译不过的问题

昨天给项目升级时(升级gradle以及kotlin版本),发现升级后代码竟然无法编译通过,androidstudio给的编译错误提示如下:Caused by: org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn't transform method node:Cause...

2019-08-16 10:04:35 9456

原创 Appstore登陆后没反应的问题

这里写自定义目录标题看了很多帖子,试了很多办法,终于完全解决了。1.其他工具-终端-命令(复制、粘贴最快捷)rm ~/library/preferences/com.apple.appstore.plistrm ~/library/preferences/com.apple.storeagent.plistrm -rf ~/library/preferences/byhost/*每输入...

2019-08-12 12:50:40 4993

原创 Android Studio构建报错ERROR: Cause: unable to find valid certification path to requested

如果开了一些代理软件(Charles Fiddle)的话,会出现该情况。

2019-05-13 11:46:22 2957 8

原创 android7.0 Charles抓包

转载2篇针对android7.0以上手机抓包的方法。前提是手机root过。1、Charles安装及配置文章链接:https://www.cnblogs.com/pengyunjing/p/9158009.html2、证书安装。进行第一步后,http请求能抓到,但是https无法抓到。文章链接:https://gaojiajun.cn/2018/08/charles-notTrust-in...

2019-05-09 18:24:09 1042

flutter booster打开页面分析.html

flutter boost的简单源码分析

2020-07-01

空空如也

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

TA关注的人

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