Android和鸿蒙对比
组件
触摸事件
鸿蒙页面生命周期
本文为作者原创 转载时请注明出处 谢谢
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
乱码三千 – 码出一个新世界
最近bintray
好像不能用了, 以前传的依赖包全都挂了, 目前正在进行库转移
相比bintray
而言 jitpack
可以说是非常简单, 只需一个github
就完全搞定了
首先 将代码推送至github
, 然后进入https://jitpack.io/
绿色表示 编译成功 红色表示编译失败, 编译成功后 就可以开始使用库啦
是不是非常简单
由于大部分人习惯使用版本号的依赖形式, 因此 如果你想将commitId
换成版本号, 那么只需在github
上push release
即可, 如下:
创建成功后,回到jitpack
主页刷新, 此时在Release
一栏下出现相应的版本
我们发现1.0.5
版本的Log
一栏是红色, 我们可以点击进入查看编译日志 寻找编译失败原因
如果编译成功, 将会生成相应的jar
包并存储在jitpack
仓库中
此时我们就可以使用版本号形式的啦
android
必须是Lib
库 而不是APP
jitpack
会对整个项目库进行编译打包, 因此项目中避免出现多个库的情况, 如果是android
可以在settings.gradle
里面进行注释屏蔽除了github
之外,jitpack
还支持以下仓库:
本文为作者原创 转载时请注明出处 谢谢
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
H5页面和Native页面的交互
客户端获取push消息中后,点击消息跳转到APP内部页面
APP根据URL跳转到另外一个APP指定页面
外部浏览器唤醒App
以app://test/good?goodsId=3
这个内链为例, 假设浏览器中点击该内链需要跳转到应用的指定Activity
那么,首先在清单文件中对指定Activity进行intent过滤配置:
1 | <activity |
然后在Activity
的onCreate
方法中进行参数的获取和逻辑的处理:
1 | Uri data = getIntent().getData(); |
最后测试跳转即可
场景二 应用内部H5交互(页面跳转)
还是以app://test/good?goodsId=3
这个内链为例, 假设WebView中点击该内链需要跳转到应用的指定Activity
首先还是在清单文件中配置,如上
然后配置webview:
1 | override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean { |
因为webview属于开发者自定义, 因此内链跳转逻辑需要在shouldOverrideUrlLoading
方法中自行处理
场景三 应用内部H5交互(非页面跳转)
有时候需求不单单是页面的跳转, 可能还涉及到其他ui或者逻辑的交互, 比如跳转到支付宝失败后弹出弹窗等等, 这个时候,我们需要在shouldOverrideUrlLoading
方法中进行不同scheme的处理:
1 | override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean { |
场景四 应用内Activity之间的跳转
首先依然在清单文件中配置
然后使用隐式跳转:
1 | startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("`app://test/good?goodsId=3`"))) |
只需要在清单文件增加多个data
标签即可:
1 | <activity |
1 | <data |
1 | .表示匹配任意字符 *表示匹配0次或多次 遗憾的是pathPattern无法使用标准的正则表达式 只有* 和.可用 |
我们使用内链的格式一般和url
格式一致,比如app://test
, 如果我们想使用自定义格式比如这种app:test
, 那常规的方法则不奏效,此时sspPattern
就可以派上用场
我们在清单文件中如下配置即可:
1 | <data |
同样该模式下对应三个属性:
实际上类似于url格式的内链, 比如app://test
也可以使用ssp
进行匹配:
1 | <data |
不过一般我们不会这么做, 因为直接使用host
属性更加简洁
本文为作者原创 转载时请注明出处 谢谢
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
1 | ls -a |
1 | mv xxx/.[^.]* |
以字节形式显示
1 | ls -ll |
以KB MB等单位显示(推荐)
1 | ls -lh |
遍历当前目录下所有子目录大小
1 | du -h |
只查看当前目录总大小
1 | du -sh |
查看当前目录下所有文件夹的大小
1 | du -sh * |
查看当前目录下除某些目录以外的所有文件夹大小
1 | du -sh --exclude=dir1 --exclude=dir2 * |
本文为作者原创 转载时请注明出处 谢谢
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
Mac
安装adb
,如果电脑上没有装android studio
那么最简单的办法是用homebrew
其中homebrew
是macOS
的一个包管理工具
1、安装homebrew
1 | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
2、安装adb
1 | brew cask install android-platform-tools |
3、运行adb
1 | adb devices |
安装后,确认自己的adb
目录,一般目录在 ~/Library/Android/sdk/platform-tools
,~
代表当前用户的根目录,如果不知道当前用户的根目录在终端上输入echo $HOME
便可知晓。
最简单的方法,就是按快捷键command + shift + G
,然后把~/Library/Android/sdk/platform-tools
这个目录复制到输入框内,按回车便可打开文件夹位置
1 | sudo vi .bash_profile |
屏幕上会提示你输入密码(输入密码的时候不会有任何字符显示,输完之后按回车就是了)
打开文件之后按i
键进入插入模式(可理解为编辑模式),然后对该文件进行编辑
1 | export PATH=${PATH}:你的platform-tools具体地址 |
我输入的是
1 | export PATH=${PATH}:~/Library/Android/sdk/platform-tools |
当然这是比较默认的情况,如果你改了Android
的目录就要根据platform-tools
这个文件夹的实际目录去填写。
编辑完成之后按 esc
键退出插入模式,之后按 :wq
+ 回车保存退出,记得英文的冒号也是要输入的哦。
1 | source ~/.bash_profile |
之后在终端里试一下输入adb,如果显示出来是一大串文字而不是之前的 command not found就大功告成。
如果遇到关闭终端后再打开,又无法使用adb命令了,可以尝试以下办法
在~/.zshrc
文件最后,增加一行:
1 | source ~/.bash_profile |
如果没有这个文件,可自己创建,运行命令touch .zshrc
,运行命令open .zshrc
打开编译。
1 | // 查看所有设备: |
本文为作者原创 转载时请注明出处 谢谢
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
手上有一个采集站点, 剩余3万的草稿, 原计划手动每日发布几十篇文章, 后来实在有些反人类, 干脆一次性全发布
如果使用wordpress
自带的批量操作, 文章太多容易卡顿超时, 还是直接操作数据库来的快, 但是修改数据库存在一定风险, 因此建议提前做好备份
1 | mysqldump -uroot -p 数据库名 >数据库地址和名称 |
比如:
1 | mysqldump -uroot -p wordpress>/logs/wordpress_bak.mql |
回车后提示输入密码, 输入后即可备份
进入mysql内部
1 | mysql -uroot -p 密码 |
查看所有数据库
1 | show datebase; |
选择指定数据库
1 | use wordpress; |
查看wordpress
表
1 | show tables; |
查看wp-posts
表字段
1 | desc wp-posts; |
最后修改wp-posts
表中的post_status
字段(关键)
1 | UPDATE `wp_posts` SET `post_status` ='publish' WHERE (`post_status`='draft'); |
这里我是将所有的草稿改成已发布
wordpress
中的文章状态有以下几种:
如果你有其他需求, 比如想将所有待审的文章全部改成草稿, 那么只需修改相应的关键字就行,如:
1 | UPDATE `wp_posts` SET `post_status` ='draft' WHERE (`post_status`='pending'); |
或者 你只想修改某一时间段内的文章, 那么可以加上时间条件,如:
1 | UPDATE `wp_posts` SET `post_status` ='draft' WHERE `post_status`='pending' and `post_date` >='2020-05-01 00:00:00' and `post_date` < '2021-03-22 22:00:00:00'; |
本文为作者原创 转载时请注明出处 谢谢
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
1 | Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'. |
同时提示:
1 | Warning:<i><b>project ':app': Unable to build kotlin-kapt plugin configuration</b> |
同事那边代码正常编译运行, 我这边把代码拉下来后报错, 很大可能性是Studio环境问题
百度试了很多方案均不奏效
最后在StackOverflow上找到了答案:
是SDK版本和buildToolsVersion不一致导致的
只需将buildToolsVersion版本改成本机已装SDK版本即可, 或者不改动代码 下载一个与之对应的SDK版本
问题解决
本文为作者原创 转载时请注明出处 谢谢
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
最近在Mac上使用Telegram时,发现无法正常连接,无论是PAC还是全局均无效,在Google之后大多数答案都是Windows下的处理方法,并不适用。
Mac 配置了 ShadowsocksX-NG,开启后,浏览器可正常访问 Google,但是 Telegram 一直显示 Connection…
解决步骤如下:
选择 Proxy 为 Socks5 模式,服务器地址填 127.0.0.1 端口填 1080 (端口号需要查看你自己的)
1、在SSR的高级设置里查看Socks5端口号
2、设置Telegram代理 (共3步)
设置完后,发现代理前面有了一个勾,说明已经设置成功。
至此,就完成了所有设置,记得重启 Telegram,然后可以尽情在墙外漫游了
如果mac使用的socksx的客户端可能没有高级设置以查看地址及端口号。
此客户端一般是默认127.0.0.1,1080端口。
另外给大家分享一个免费的mtproxy分享网站:mtproto.cc
本文为作者原创 转载时请注明出处 谢谢
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站
通常我们在首次进行代码的拉取的时候容易出现HEAD游离状态, 也就是说当前操作不在任何一个现有分支上, 一般情况下我们在进行代码修改时需要先将对分支进行相应切换, 比如在master
分支上进行开发, 那就git checkout master
切换到master
分支
但是很多情况下我们容易忽视这个习惯, 导致代码提交时才发现处在游离分支上, 这个时候如果进行分支的强行切换意味着所做的代码修改全部付之一炬, 那我们该如何处理这种情况呢?
事实上, git
已经给我们提供了相应的智能提示, 在我们push
代码时会警告提示我们:
1 | Warning: you are leaving 1 commit behind, not connected to |
这时我们只需要新开一个分支存储游离的内容, 然后再将两个分支进行合并即可
第一步 将游离部分代码放到一个临时分支
1 | git branch temp 84220ac |
第二步 切换到开发主分支
1 | git checkout master |
第三步 将临时分支代码合并到开发主分支
1 | git merge temp |
第四步 删除临时分支
1 | git branch -d temp |
本方案适用于代码还未commit
第一步 将游离代码放置到暂存区域
1 | git stash |
第二步 将暂存区域的代码pop出来到当前分支
1 | git pop |
本文为作者原创 转载时请注明出处 谢谢
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站