- 博客(71)
- 资源 (9)
- 收藏
- 关注
原创 android通知报错 Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE
你需要在创建 PendingIntent 的时候,指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 标志。一般情况下,如果你不需要修改 PendingIntent 的内容,使用 FLAG_IMMUTABLE 是最合适的。• FLAG_MUTABLE:PendingIntent 的内容可以被修改,只有当你确实需要动态更改 PendingIntent 的数据时才应使用。需要显式指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 标志,来确保 PendingIntent 的安全性。
2024-10-25 10:19:33
474
原创 麒麟aarch64架构下安装compat-openssl10
麒麟aarch64架构下安装mysql8.0.40,报错nothing provides libcrypto.so.10()(64bit) needed by。,而你的系统使用的是 OpenSSL 1.1.x 系列,它没有 libcrypto.so.10,因为这个库通常是 OpenSSL 1.0.x 提供的。你当前系统的 OpenSSL 版本与 MySQL 8.0.40 所需的库不匹配。MySQL 8.0.40 需要。
2024-10-18 20:56:06
1160
原创 js基础速成14-错误处理
在 catch 块中编写代码,当发生错误时执行。JavaScript 类似于 Python 或 Java,提供了一种错误处理机制,使用 try-catch-finally 块来捕捉运行时错误。:finally 块将始终执行,无论是否发生错误。finally 块可用于完成剩余任务或重置在 try 块中可能已更改的变量。有时,当您尝试访问未定义的变量或调用未定义的函数等时,会出现运行时错误。:将可能抛出错误的可疑代码包装在 try 块中。try 语句允许我们定义一段在执行时需要测试错误的代码块。
2024-10-10 07:00:00
337
原创 js基础速成13-Console 对象方法
启动一个计时器,用于跟踪操作所需的时间。您为每个计时器指定一个唯一的名称,并且在给定页面上最多可以运行 10,000 个计时器。复制以下代码并粘贴到浏览器控制台以查看警告消息。以下代码显示一个包含两个列的表格:一个索引列用于显示索引,一个值列用于显示名称。这将创建一个包含两个列的表格:一个索引列包含键,另一个值列包含对象的值。时,浏览器将输出自计时器启动以来经过的时间(以毫秒为单位)。在浏览器控制台显示输出。通过复制并粘贴以下代码到浏览器控制台,查看更多示例。对象的方法在浏览器控制台显示输出,使用。
2024-10-09 07:00:00
878
原创 js基础速成12-正则表达式
在 JavaScript 中使用 RegExp,可以使用 RegExp 构造函数,或者使用两个斜杠后跟一个标志来声明 RegExp 模式。我们可以使用大括号指定我们在文本中查找的子字符串的长度。例如,电子邮件中的“spam”一词可以是我们感兴趣的模式,或者电话号码的格式可能是我们想要查找的。声明正则表达式时,我们使用两个斜杠和一个可选的标志。如果不使用全局标志,match() 返回一个包含模式、索引、输入和组的数组。标志是正则表达式中的可选参数,决定了搜索的类型。一个是必需的搜索模式,另一个是可选的标志。
2024-10-08 17:28:09
1199
原创 js基础速成11-解构与展开
每当我们希望编写一个接受无限数量参数的箭头函数时,我们使用展开运算符。如果我们将展开运算符作为参数,调用函数时传入的参数将变为数组。当我们解构数组时,使用展开运算符(…此外,我们使用展开运算符将数组元素展开到另一个数组中。有时键可能不在对象中,这种情况下我们可以在声明时给出默认值。我们不能为数组中的所有元素赋值。如果我们想跳过数组中的某个值,可以使用额外的逗号。当我们解构对象时,解构变量的名称必须与对象的键或属性完全相同。解构是一种将数组和对象解包并赋值给不同变量的方式。我们可以使用展开运算符复制对象。
2024-10-08 07:30:00
432
原创 js基础速成10-Set、Map
让我们找出集合 A 和集合 B 的并集(A U B)。方法找到两个集合之间的差集。让我们找出集合 A 和集合 B 的差集(A \ B)。方法找到两个集合的交集。让我们找出集合 A 和集合 B 的交集(A ∩ B)。方法可以帮助我们检查某个元素是否存在于集合中。集合是可迭代对象,我们可以迭代每个元素。集合的另一个用法是计算数组中的唯一项。集合是元素的集合,只能包含唯一元素。我们也可以使用循环向集合添加元素。下面的例子展示了如何使用集合。这将移除集合中的所有元素。方法从集合中删除元素。
2024-09-29 13:45:13
232
原创 js基础速成09-高阶函数
回调函数接受累加器、当前值和可选的初始值作为参数,并返回一个单一值。如果不指定该参数,默认情况下,累加器将获得数组的第一个值。在 JavaScript 的最新版本中,引入了许多内置方法,帮助我们解决复杂问题,而不需要编写常规的循环。在 JavaScript 中,我们可以在一定时间间隔内执行某些活动,或者可以调度(等待)某些活动执行。它接受一个带有元素、索引和数组参数的回调函数,并返回一个新数组。高阶函数是接受其他函数作为参数或返回一个函数作为值的函数。回调函数是可以作为参数传递给其他函数的函数。
2024-09-27 10:49:52
449
原创 js基础速成08-对象
在浏览器中,不使用 console.log() 直接输入变量名 a 或 b,就可以查看其值,这意味着 a 和 b 已经存在于 window 对象中。来声明变量,不同的声明方式会影响变量的作用域。本节将介绍变量作用域,以及使用 var 和 let 时变量的作用域范围。JavaScript 中的对象是键值对结构,可以包含字符串、数字、布尔值、数组、对象或函数等值。对象可以包含多个属性和方法,属性的值可以是任意类型。在全局声明的变量可以在同一个文件的任何地方访问。对象是可变的,可以在创建后修改或添加新属性。
2024-09-25 13:40:42
749
原创 js基础速成07-函数
为了实现一个可以接受无限数量参数的箭头函数,我们使用扩展运算符(spread operator),后面跟着任何参数名。在我们创建一个没有名称的函数并将其赋值给一个变量后,返回函数的值时应调用该变量。在开始编写函数之前,让我们理解什么是函数,以及我们为什么需要函数。在函数中,我们可以传递不同数据类型(数字、字符串、布尔值、对象、函数)作为参数。箭头函数是编写函数的一种替代方式,但函数声明和箭头函数之间有一些小差异。函数也可以返回值,如果函数不返回值,则函数的值为。自执行函数是匿名函数,无需调用即可返回值。
2024-09-24 09:04:20
590
原创 js基础速成06-循环
在编程语言中,我们可以使用不同类型的循环来完成重复性任务。以下是JavaScript及其他编程语言中常用的循环示例。从0打印到100,手动实现可能需要花费2到5分钟。此类繁琐且重复的任务可以通过循环来完成。如果我们对数组中每个元素的索引不感兴趣,它是非常便捷的方式。我们生活中的许多活动充满了重复性任务。上述代码在遇到3时停止迭代。
2024-09-23 20:19:15
207
原创 js基础速成05-数组
数组可以为空,或者包含不同的数据类型的值。我们可以通过索引访问数组中的每个元素。下图清楚地展示了数组中每个元素的索引。如果该元素存在于数组中,则返回该元素的索引;在前面的章节中我们已经看到,我们可以在不同的位置拆分字符串,并将其转换为数组。: 用于连接数组元素并返回一个字符串。数组可以存储不同类型的数据,包括数组本身。我们可以创建一个包含数组的数组。数组是可变的(可修改的)。一旦创建了数组,我们可以修改数组元素的内容。: 返回元素在数组中的最后一个索引。: 数组的长度,即数组中的元素数量。
2024-09-19 06:29:54
453
原创 Docker入门学习-01
Docker 是一个开源的平台,用于开发、交付和运行应用程序。它使用容器技术,将应用程序及其依赖打包在一个轻量级的可移植容器中。# 使用官方的 Node.js 镜像 FROM node:14 # 创建并设置工作目录 WORKDIR /usr/src/app # 复制项目文件到工作目录 COPY . . # 安装项目依赖 RUN npm install # 暴露端口 EXPOSE 3000 # 启动应用程序 CMD [ "npm" , "start" ]
2024-09-03 22:24:50
783
1
原创 js基础速成04-字符串方法
JavaScript 中的所有内容都是对象。字符串是一种基本数据类型,这意味着一旦创建就无法修改。字符串对象有许多字符串方法,有不同的字符串方法可以帮助我们处理字符串。
2024-09-02 07:29:53
634
原创 Android 线性渐变背景
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:type="linear" android:startColor="#FF0000" android:endColor="#00FF00" android:angle="90" /></shape>关于angle属性:a
2023-12-17 11:01:56
228
原创 Mac平台下编译PJSIP Android端 实现VoIP通话
官方文档:Getting-Started/Android – pjsip Open source SIP, media, and NAT traversal stacks/libraries for smartphones环境:macos 12.1pjsip版本为最新:2.11.1ndk版本:21(sdk自带的,位于sdk安装目录下ndk-bundle),如果没有自己下载即可编译步骤:1.PJSIP源码:https://www.pjsip.org/download.htm
2022-02-17 14:46:05
2382
原创 Zxing 版本兼容问题
java.lang.NoSuchMethodError: No interface method sort(Ljava/util/Comparator;)V in class Ljava/util/List; or its super classes (declaration of 'java.util.List' appears in /system/framework/core-libart.jar) at com.google.zxing.qrcode.detector.Finder.
2022-02-15 15:50:41
2244
原创 Android+SpringBoot 登录注册Demo
Android+SpringBoot+MyBatis实现的登录注册Demo,后端提供标准RESTful API
2022-01-25 17:23:07
4628
原创 Android基于讯飞AIUI的聊天Demo
基于讯飞AIUI实现一个AI聊天Demo,首先在AIUI开放平台创建应用,做下简单配置,勾选想要的语义技能,记得保存修改然后选择点开发工具,选择下载对应的SDK应用信息里有appid,回头下载demo后,demo下载链接在文末替换到assets/cfg/aiui_phone.cfg文件中。demo演示效果:下载链接:https://download.youkuaiyun.com/download/always_and_forever_/77684053...
2022-01-24 15:47:32
2508
原创 Android ExoPlayer 缓存与播放功能实现
ExoPlayer是Google开发的Android平台的播放器,功能强大,它提供了 Android 的 MediaPlayer API 的替代方案,用于在本地和 Internet 上播放音频和视频,支持视频缓存与离线播放。github:https://github.com/google/ExoPlayer官方文档:ExoPlayer完整库引入:implementation 'com.google.android.exoplayer:exoplayer:2.X.X'或者按需引入:
2022-01-07 13:38:50
4240
原创 Android Sqlite 练手demo
这是一个商品添加到购物车的小demo,有登录注册,商品列表,添加购物车,移除购物车等功能,基于Sqlite实现对数据的增删改查。完整代码下载:https://download.youkuaiyun.com/download/always_and_forever_/73729108下面是代码解读,适合新手阅读学习:1.登录页面--LoginActivity1.页面包含两个文本输入框,用来输入用户名和密码,一个登录按钮,一个注册按钮。2.点击登录则验证用户名密码输入是否为空,为空则给出提示,不为空则根据
2022-01-04 11:28:44
1957
原创 Android 开发测试生产环境切换工具
app开发测试过程中,经常会遇到服务器环境切换的问题,即生产与测试环境的切换,对app开发者来说,就是换一个服务器地址,比如后端部署的测试地址是"http://aaa.com",生产地址是"http://bbb.com",我们通常在程序中这样定义:伪代码如下:BASE_URL = BuildConfig.DEBUG ? "http://aaa.com" : "http://bbb.com"一切看起来没什么问题,打包时可以打一个生产包一个测试包,然后根据需要进行安装测试即可。但这样未免有些太麻烦,
2021-12-30 11:22:50
1714
原创 自学Python-13 面向对象编程(二、进阶篇)
一个完整的示例,理解什么是封装、继承与多态class Animal: """ 双下划线 表示属性私有,外部不能直接访问,但实际上Python没有严格语法来限制外部真的不能 访问,你仍然可以通过animal.Animal__eye来直接访问,可以看出python只是对私有属性改了个名称 来限制我们的访问。这看起来比较矛盾,骆昊前辈在这个问题上这样说,他说“因...
2020-03-14 22:06:12
272
原创 自学Python-12 面向对象编程(一、概念篇)
如何理解面向对象编程以下是来自百度百科的介绍:面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到...
2020-03-12 22:25:53
275
原创 自学Python-11 模块
什么是模块python中每个文件就是一个模块,模块是对程序代码的一种封装,可以方便重用,使用模块可以避免函数名与变量名的冲突。实例1:#module1.py中定义了printStr函数def printStr(): print('I am module1')#module2.py中也定义了printStr函数def printStr(): print('I am m...
2020-03-05 17:26:23
216
原创 自学Python-10 函数
定义1.def关键词 + 函数名 + () + :2.参数放置于()中3.return返回值,不带return相当于返回None实例1:def printHello(): print('hello')实例2:def getName(): return 'Tony'实例3:def getSum(x,y): retrun x + y参数1.关键字参...
2020-03-04 17:28:32
211
原创 VSCode中一款超级强大的Markdown插件(可修改Markdown预览主题)--MPE
最近从github上clone了一份学习资料,资料里面很多markdown格式的文档,为了阅读方便,一开始我用sublime导入了这些文档,但我没找到预览功能,网上查到了几个markdown相关的插件,他们分别是:插件功能MarkdownEditing一个提高Sublime中Markdown编辑特性的插件MarkdownPreviewMarkdown转HTML,提供...
2020-03-03 16:11:33
64478
原创 自学Python-09 分支与循环
分支结构条件后面要加冒号使用缩进划分语句块python没有switch-case语句if 表达式1: 语句 if 表达式2: 语句 elif 表达式3: 语句 else: 语句elif 表达式4: 语句else: 语句实例username = input('请输入用户名: ')p...
2020-03-02 21:11:10
210
原创 自学Python-08 运算符
Python支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符运算符描述[] [:]下标,切片**指数~ + -按位取反, 正负号* / % //乘,除,模,整除+ -加,减>> <<右移,左移&按位与^ |按位异或,按位或<= < > >=...
2020-03-01 21:14:39
201
原创 自学Python-07 基本数据类型(六、集合Set)
定义由不重复且不可变对象组成的无序且有限的集合。因此它们不能通过下标来索引。但是它们可被迭代,也可用内置函数 len() 返回集合中的条目数。集合常见的用处是快速成员检测,去除序列中的重复项,以及进行交、并、差和对称差等数学运算。对于集合元素所采用的不可变规则与字典的键相同。注意数字类型遵循正常的数字比较规则: 如果两个数字相等 (例如 1 和 1.0),则同一集合中只能包...
2020-02-29 23:20:35
388
原创 自学Python-06 基本数据类型(五、字典Dictionary)
定义与以连续整数为索引的序列不同,字典是以关键字为索引的,关键字可以是任意不可变类型,通常是字符串或数字。如果一个元组只包含字符串、数字或元组,那么这个元组也可以用作关键字。但如果元组直接或间接地包含了可变对象,那么它就不能用作关键字。列表不能用作关键字,因为列表可以通过索引、切片或 append() 和 extend() 之类的方法来改变。理解字典的最好方式,就是将它看做是一个 键...
2020-02-29 23:19:05
312
原创 自学Python-05 基本数据类型(四、元组Tuple)
定义元组与列表类似 元组是不可变序列(这意味着元组无法被修改,包括增、删、改等操作都不允许) 元组使用小括号,列表使用方括号,元素之间都是通过英文逗号分隔注意:当元组只有一个元素时,需要在元素的后面加一个英文逗号分隔符,以防止与表达式中的小括号混淆。这是因为小括号既可以表示元组,又可以表示表达式中的优先级算符,这就容易产生歧义。基本操作创建元组让我们使用type函数确...
2020-02-29 23:17:19
338
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人