- 博客(87)
- 收藏
- 关注
原创 MkDocs 环境配置
6、命令提示符里执行python3 -m mkdocs -V(注意大小写),查看安装版本,若能显示出版本,则说明安装成功。如果已经使用pip3进行安装成功 但是 python3 -m mkdocs -V 提示 “command not found: mkdocs” 请尝试重新启动电脑。4、使用:pip3 --version 来查看目前的pip版本 以及验证是否成功安装pip(python3.x已经默认集成了pip3)终端----> 输入: pip3 install mike。8、安装mike环境。
2025-02-12 11:52:46
362
原创 UE5 macOS .uproject生成xcode 命令行
Users/Shared/Epic\ Games/UE_5.4/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh -project="/Users/xxx/项目目录/Demo_UE.uproject" -game -engine -xcode。
2024-10-31 11:18:52
589
转载 Android App接入Facebook分享SDK时,无法启动Facebook客户端的问题分析
最后,对上面的问题原因以及修复方法作一个简单的总结。facebook分享sdk在分享时,会先过contentProvider跨进程调用获取facebook App保存的protocolVersion数据,并根据该数据决定客户端是否支持此次分享。由于在一些国产Rom上增加了禁止第三方自启动(或者禁止应用间互相启动)功能,导致此次跨进程启动facebook app失败,facebook sdk获取不到客户端数据,因此,就无法调起客户端分享,而是调起了网页分享。
2024-03-26 14:44:22
797
原创 一看就会的jni,不会你来打我!
基于以上步骤,我们实现了java到jni-到c层的调用,再扩展到java到jni到c++再到c的so库的调用。其中,在jni层,我们引用了安卓的log库,输出日志,方便定位问题。如果是c++层,在函数传参时,需要类型转换,也很简单。jni中的jstring转char其中,jstr为需要转换的jstring类型变量,env为JNIEnv指针。
2023-11-16 10:22:22
289
原创 facebook分享-错误记录
无法拉起分享 "code":30000,"msg":"fail:API_ERROR: API_ERROR"2.确认是否在app_id应用的白名单里,注册meta开发者,然后把主页的user_id给管理员加。1.确认facebook的app_id是否一致。
2023-11-08 20:06:44
988
原创 Harmony OS—UIAbility的使用
UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。一个应用可以有一个UIAbility,也可以有多个UIAbility,类似于Android 的 Activity,如果有安卓基础的同学,也可以结合过往知识点学习。比如。
2023-11-07 14:41:41
1737
原创 HarmonyOS 快速入门TypeScript
ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
2023-10-26 13:11:24
1459
原创 Android Studio Logcat 报read: Unexpected EOF!异常
查阅先关资料,仔细分析后你会发现,出现这个日志,是因为最终的logcat进程退出,而退出的的原因是log buffer size设置过小导致,而默认size为256KB,如果你的程序长时间运行,并且产生了大量的日志,最终日志缓存的大小肯定是超过了默认的256kb。
2023-10-25 17:38:29
476
原创 HarmonyOS DevEso环境搭建
DevEco Studio 3.1配套支持HarmonyOS 3.1版本及以上的应用及服务开发,提供了代码智能编辑、低代码开发、双向预览等功能,以及轻量构建工具DevEco Hvigor 、本地模拟器,持续提升应用及服务开发效率。
2023-10-24 18:53:57
996
原创 解决AndroidStudio Gradle只有testDebugUnitTest
2:取消勾选Configure all Gradle tasks during Gradle Sync...大功告成,现在去看看Gradle,屏蔽的都显示出来了。1:点击Task list not built...
2023-10-23 11:28:27
1468
2
原创 静态代理和动态代理
代理模式可以在不修改真实类代码的情况下,实现对真实类的访问控制、性能优化等功能。Java 中有两种实现代理模式的方法:静态代理和动态代理。静态代理需要在编译之前手动编写代理类,而动态代理可以在运行时动态生成代理类。
2023-09-22 11:53:48
109
原创 华为提审问题修复
1.您的应用被系统检测出存在安装失败功能问题,不符合华为应用市场审核标准。测试环境:Wi-Fi联网、荣耀Play 3(EMUI 9.1)、中文环境。修改建议:请参考测试结果进行修改。gradle.properties里。测试步骤:请参考附件。
2023-09-13 14:15:50
784
原创 安卓判断是否是模拟器,适配主流雷电,MUMU,夜神,逍遥
最近游戏项目组又有新的要求,对于数据上报和数据统计接口,尽可能的具体化,比如是否是模拟器,模拟器的型号,品牌等,都要求统计,后续模拟器玩家在活动发放,安全风控等方面也易于分析和把控。
2023-09-12 11:23:27
6123
6
原创 Glide的使用及源码分析
依赖github:基本使用//加载url.load(url)//加载本地drawable资源//加载gif,Glide会智能判断//asBitmap只加载静态图片,如果图片为gif则加载第一帧//后备回调符.load(url).fallback(R.mipmap.ic_launcher) //当url为null时显示Glide的配置都可以通过RequestOptions配置,用于提取公共属性,复用。设置图片大小宽高单位是px设置缩略图//显示原图的50%先加载缩略图,再加载原图。
2023-09-03 17:05:16
814
原创 创建性-构造者设计模式
我们在使用Retrofit等这些第三方框架的时候,发现他们的使用都很方便,比如Retrofit retrofit = new Retrofit.Builder().build(),和我们通常直接new一个对象不同,他是交给Builder类,通过build()函数来构造一个Retrofit对象。刚开始使用,可能不太明白,明明可以直接new出来,为什么要交给Builder来构造呢?
2023-09-02 23:56:44
768
原创 MVC,MVP,MVVM的理解和区别
MVC ,早期的开发架构,在安卓里,用res代表V,activity代表Controller层,Model层完成数据请求,更新操作,activity完成view的绑定,以及业务逻辑的编写,更新view,这种模式是单向的,虽然代码存在分层,但是之间的耦合性还是很高,并且C层做的事情很多,久而久之会变得臃肿。MVC,MVP,MVVM的出现,都是为了视图分层,使代码结构,逻辑变得清晰,同时,实现类的单一职责,降低耦合度。同理,也实现了一个IUserLogin接口,从而和P层实现双向通信。ViewModel层。
2023-09-02 20:55:27
1082
原创 Java- 虚拟机学习总结
分代垃圾回收的主要思想是根据对象的生命周期将对象分为不同的代,然后对不同代的对象采用不同的回收策略,以提高垃圾回收的效率。分代垃圾回收的优点是,年轻代的垃圾回收频率高,能够快速释放短期存活的对象,而老年代的垃圾回收频率低,可以减少长期存活对象的回收成本。方法栈内存:在进行递归调用的时候所保存的栈帧的内容,组成部分:局部变量表,操作数栈,当前方法所属类运行时常量的引用,返回地址。栈内存:是程序的运行单位,里面存储的信息都是与当前线程有关的内容,包括:局部变量,程序的运行状态,方法返回值。这个过程会多次迭代。
2023-09-02 14:45:52
325
原创 App启动流程分析
launcher进程-System_server进程-zygote进程-fork-app进程。AMS与APP通信,APP的服务端是IApplicationThread.aidl。APP与AMS通信,AMS的服务端是IActivityManager.aidl。1:bindApplication-启动APP的application。Launcher进程-System_server进程-app进程。oneway关键字:单向的,异步的,不阻塞。System_Server进程。——Binder通信——
2023-08-29 09:54:52
105
原创 Android Studio System.out.println()中文乱码
File-Settings-Editor-File Encodings 把所有的编码格式改为UTF-8。打开studio64.exe.vmoptions加入。尝试跑一下代码,如果还不行,重启IDE 再试试。
2023-08-09 21:05:37
745
原创 安卓读取,添加,更新,删除联系人,读取短信
/2023-08-06 17:29:50.535 31719-31719 MainActivity2 com.example.myapplication D 联系人:张三。除此,我们还可以通过contentResolver读取短信信息,短信表的uri信息。这里我们是根据手机号码先获取联系人表id,也仅有这种方式,获取id。删除联系人,比较简单,我们可以通过联系人名字,删除。,像ios短信验证码快速copy到输入框。从而输出联系人信息,
2023-08-06 23:19:42
1042
3
原创 http请求头信息说明
浏览器预期接受的传输时的编码方式:可使用回应协议头Transfer-Encoding中的值(还可以使用"trailers"表示数据传输时的分块方式)用来表示浏览器希望在最后一个大小为0的块之后还接收到一些额外的字段。的请求(该请求要求服务器在响应中加入一个Access-Control-Allow-Origin的消息头,表示访问控制所允许的来源)。允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified ),参考 超文本传输协议 的实体标记。否则,返回整个新的实体。
2023-08-04 17:14:50
144
原创 字符串匹配-KMP算法
主串的i位置的值和子串的j位置的值不同时,主串S,i前面的字符串与字串T,j前面的字符串已经匹配相等,因为两者相等,所以只需要拿出子串T前面的字符串,根据T前面的字符串来计算一个next[j]数组,将j回溯即可。求次数的问题,将原生KMP算法,变化为,当j==t.length()的时候,匹配有效,计数器count++,j回溯到next数组的j-1位置上,再对其+1。在学KMP算法之前,对于两个字符串,主串S,和字串T,我们根据暴力匹配,定义两个指针,i指向主串S的起始,j指向字串T的起始,依次比较,如果。
2023-08-02 22:17:42
421
原创 安卓Intent打开系统进程汇总
高版本安卓无法直接获取file,需要使用ContentProvide建立临时文件路径。2:res/xml 新建provider_paths.xml文件,内容如下。1:在Manifest.xml里声明provider。
2023-07-30 09:49:15
495
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人