qrencode

[toc]

qrencode

前言

libqrencode是一个C语言编写的用来生成二维条形码的库,生成的二维条形码可以通过手机的CCD摄像机轻易的扫描出来。

一、qrencode的安装

qrencode编译需要libpng库,而libpng库依赖zlib库,所以得依次安装zlib、libpng、qrencdoe。

1、从http://zlib.net/下载zlib库

1
2
3
4
进入文件夹
./configure
make
make install

2、从http://www.libpng.org/pub/png/libpng.html下载libpng

1
2
3
4
进入文件夹
./configure
make
make install

3、从http://fukuchi.org/works/qrencode/ 下载qrencode

1
2
3
4
进入文件夹
./configure
make
make install

zlib下载

zlib安装

二、使用qrencode命令生成二维码

使用举例,在当前目录下,生成一张内容为https://baidu.com,命名为baiduhome_qrcode.jpg的二维码图片。

则在终端执行的命令如下:

1
qrencode -o ./baiduhome_qrcode.jpg "https://baidu.com"

End

至此,在终端使用qrencode命令生成二维码的介绍结束。感谢阅读。

第1节:yapi在云服务器ECS上的使用-阿里云

[toc]

yapi在云服务器ECS上的使用-阿里云

一、阿里云使用之yapi的安装与启动

1、阿里云使用之yapi的安装

阿里云使用之yapi的安装,由于我们使用的云服务器ECS是CentOS系统,所以详细的安装方法,请进入前文中的yapi的安装文档

2、阿里云使用之yapi的启动

因为yapi是使用9090端口,所以,我们需要先进入安全组,添加9090端口配置

ecs_use_1safe_1

添加9090端口

ecs_use_1safe_2

添加后,我们执行yapi server,就可以通过 ip:9090 来访问ypai了(注意要先开启yapi server不然也是无法进入的)。访问效果如图:

yapi平台部署

image-20201118135248693

初始化管理员账号成功,账号名:”admin@admin.com“,密码:”ymfe.org”

image-20201118135556799

启动后的yapi首页

二、保持yapi的一直运行/如何让node app的程序一直运行?

1、发现问题:yapi在启动后如果关闭窗口链接,服务也会关闭。

我们在浏览器中关闭之前成功远程连接,并操作yapi的阿里云网页。刷新界面,发现访问不了了。

image-20201118214600778

2、解决问题:

既然关掉终端,程序也关闭了,那如何让node app的程序一直运行?

2.1、使用forever方式

1.判断是否安装了forever

1
2
# 终端执行
forever

2.如果未安装forever,则执行如下命令安装

1
npm install -g forever

image-20201118214438568

3.使用forever开启nodejs程序

1
2
forever start xxx.js
forever start vendors/server/app.js

image-20201118215600200

如果你需要用npm start来运行你的程序,则用命令
forever start -c “npm start” 路径

4.如果不需要一直运行nodejs程序

1
forever stop xxx.js

image-20201120104129192

forever 使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 作为前台任务启动
$ forever server.js

# 作为服务进程启动
$ forever start app.js

# 停止服务进程
$ forever stop Id

# 重启服务进程
$ forever restart Id

# 监视当前目录的文件变动,一有变动就重启
$ forever -w server.js

# -m 参数指定最多重启次数
$ forever -m 5 server.js

# 列出所有进程
$ forever list

2.2、使用crontab方式

目前自己未实践过。

三、云服务器重启的时候的yapi各项服务处理

mongoDB 和 yapi 都会断掉,需要重新启动。请按顺序启动。

1、重启 MongoDB,并后台运行

1
2
3
4
5
cd CQApp-api-mongodb/

ls

mongod --dbpath ./data --logpath ./log/mongo.log --fork

image-20201120103328979

2、重启yapi,并始终后台运行

1
2
# 原本是 node vendors/server/app.js
forever start vendors/server/app.js

初始化管理员账号成功,账号名:”admin@admin.com“,密码:”ymfe.org”

四、提交云服务器代码

想看本网站中的Git代码同步

大概步骤,摘要如下:

1
2
3
4
5
cd CQApp-api-mongodb/
git pull origin master
git add .
git commit -m "add api cardlist"
git push origin master

(node:33) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated

End

至此,利用yapi在云服务器ECS上的使用-阿里云介绍结束。

第1节:腾讯云cos上传

[toc]

腾讯云cos上传

官方文档:腾讯云-COSCMD 工具

一、主要步骤:

使用 pip install coscmd

需要:①使用python3安装pip、②使用pip install coscmd、③使用coscmd上传文件

其他:brew

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1、python3

找不到python3的bin地址可使用如下命令:

1
which python3

2、pip

在 Mac 上为 Python 3 使用 PIP 安装脚本

1
2
3
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

python3 get-pip.py

以上脚本来源于:如何在 Mac 上安装 PIP

image-20220726013611412

安装失败,原因未设置到环境变量中,通过如下命令即可设置新增环境变量

1
2
3
4
5
6
7
8
9
10
11
which pip

# 非M1芯片的MacOS使用如下:
echo 'export PATH=~/Library/Python/3.8/bin:$PATH' >>~/.zshrc
source ~/.zshrc

# 非M1芯片的MacOS使用如下:
echo 'export PATH=~/Library/Python/3.8/bin:$PATH' >>~/.bash_profile
source ~/.bash_profile

which pip

错误修改参考于文章:Pip安装警告:Consider adding this directory to PATH..

3、COSCMD 工具安装

官方文档:腾讯云-COSCMD 工具

我们使用通过 pip 安装方式安装 COSCMD。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
pip install coscmd

coscmd -v
which coscmd

# 非M1芯片的MacOS使用如下:
echo 'export PATH=~/Library/Python/3.8/bin:$PATH' >>~/.zshrc
source ~/.zshrc

# 非M1芯片的MacOS使用如下:
echo 'export PATH=~/Library/Python/3.8/bin:$PATH' >>~/.bash_profile
source ~/.bash_profile

which pip

image-20220726150612750

4、COSCMD 工具使用

COSCMD 工具在运行前会首先从配置文件中读取运行时所需的必要信息,COSCMD 会默认从 ~/.cos.conf 中读取配置项。

所以,在~目录下,新建.cos.conf文件,并配置上类似如下的信息:

1
2
3
4
5
6
7
8
9
10
11
12
[common]
secret_id = AKIDA6wUmImTMzvXZNbGLCgtusZ2E8mG****
secret_key = TghWBCyf5LIyTcXCoBdw1oRpytWk****
bucket = configure-bucket-1250000000
region = ap-chengdu
max_thread = 5
part_size = 1
retry = 5
timeout = 60
schema = https
verify = md5
anonymous = False
1
2
3
4
5
6
7
8
# 非M1芯片的MacOS使用如下:
echo 'export PATH=/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/itms/bin:$PATH' >>~/.zshrc
source ~/.zshrc


# 非M1芯片的MacOS使用如下:
echo 'export PATH=/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/itms/bin:$PATH' >>~/.bash_profile
source ~/.bash_profile

腾讯云-对象存储-Python SDK

之后即可正常安装腾讯云-对象存储-Python SDK

1
pip install -U cos-python-sdk-v5

image-20220726014253864

End

至此,利用腾讯云Cos上传文件的操作介绍结束。

第1节:阿里云oss上传

[toc]

阿里云oss上传

前言

要使用阿里云进行OSS的任意服务,如上传,您都必须先开通阿里云OSS服务。

详细的阿里云对象存储OSS的帮助文档请通过阿里云帮助主页https://help.aliyun.com/,进入[对象存储OSS帮助页](https://help.aliyun.com/product/31815.html?spm=a2c4g.11186623.6.540.4ef91c62fkTyj7)进行查看。从[开始使用阿里云OSS](https://help.aliyun.com/document_detail/31883.html?spm=a2c4g.11186623.6.608.3f6440afB2c3Po)开始阅读。

整体的操作步骤大概如目录描述如下:

image-20200917172847512

一、阿里云OSS服务的开通

详细的创建过程请看帮助文档开通OSS服务

大概的意思为:

  1. 登录阿里云官网

  2. 将鼠标移至产品,单击对象存储 OSS,打开 OSS 产品详情页面。

  3. OSS 产品详情页,单击立即开通

  4. 开通服务后,在 OSS 产品详情页单击管理控制台直接进入 OSS 管理控制台界面。

    您也可以单击位于官网首页右上方菜单栏的控制台,进入阿里云管理控制台首页,然后单击左侧的对象存储 OSS 菜单进入 OSS 管理控制台界面。

ossutil

image-20200917172348782 image-20200917172605845

二、使用OSS管理控制台创建用于文件存储的存储空间

详细的创建过程请看帮助文档使用OSS管理控制台创建存储空间的帮助文档

大概的意思为:

  1. 登录OSS管理控制台

  2. 单击Bucket列表,之后单击创建Bucket

    您也可以单击概览,之后单击右侧的创建Bucket

  3. 创建Bucket页面配置Bucket参数。

Bucket 名称:设为例如autopackage即可。

image-20200918103630889

创建后,可进入”查看Bucket列表“对指定的Bucket进行想要的操作。

image-20200918104910122

三、进入存储空间进行文件上传(方式1:通过OSS管理控制台上传)

如我们进入我们刚才创建的’autopackage’这个bucket。然后为其进行文件上传操作。

image-20200918104801357

文件管理的界面如下:

image-20200918105842709

我们拖动一张图片,进行上传尝试如下:

image-20200918110106103

四、进入存储空间进行文件上传(方式1:通过终端命令上传)

1、安装命令行工具ossutil

详细请查看OSS命令行工具的下载和安装的帮助文档

image-20200918112644521

2、配置 ossutilmac64 config

执行 ./ossutilmac64 config的时候,需要我们输入配置信息,要输入的配置信息,如下:

image-20200918113809174

①请输入配置的文件名,直接回车,以使用默认的.ossutilconfig

②请输入语言(CH/EN),直接回车,以使用默认的CH

③请输入endpoint,填写我们创建的bucket上的oss,注意不要写成http开头的

④请输入accessKeyID,这一步,我们需要回到阿里云OSS首页,通过常用入口,找到Access Key的入口。

image-20200918113458670

进入Access Key的创建和管理,进入后并创建AccessKey后的页面显示为:

image-20200918114734684

则我们将创建好的信息,在执行./ossutilmac64 config的终端补充上去。其就会为我们生成组中的.ossutilconfig文件。

image-20200918115525237

3、通过终端命令,上传文件

配置后,我们通过通断命令,上传文件,终端命令及上传结果显示如下。

1
./ossutilmac64 cp 1.jpg oss://autopackage/test1.jpg

image-20200918120044242

五、检查上传文件的访问权限

1、不检查访问权限,则可能出现的问题

上传完文件后,我们经常需要允许可以访问。所以,这里我们要检查访问权限。

如果不检查,可能会遇到当你在通过相机扫描二维码的时候,出现无法访问的提示。

image-20200918155227902

2、检查访问权限的方法

例如在如上,我们已经通过OSS管理控制台上传了一张1.jpg的图片。现在进行访问测试。

我们将该图片的地址:https://autopackage.oss-cn-hangzhou.aliyuncs.com/1.jpg 输入到浏览器中,

结果如下:

image-20200918154655554

其提示我们为权限问题,则我们进入autopackage这个bucket,将原本的读写权限从”私有“改成”公共读“。

image-20200918154826176

然后,重新刷新刚才的图片地址即可。

End

至此,利用阿里云OSS上传文件的操作介绍结束。

第1节:阿里云服务器ECS

[toc]

阿里云服务器ECS的使用

一、如何将云服务器ECS中的数据备份到本地

官网文档:https://help.aliyun.com/knowledge_detail/159174.html?spm=5176.13910061.sslink.7.43a04c92N9Smor

https://help.aliyun.com/knowledge_detail/159174.html?spm=5176.13910061.sslink.10.2c963ebfnNsH2V

二、手动搭建FTP站点(CentOS 7)

阿里云官网帮助文档:手动搭建FTP站点(CentOS 7)

image-20201120115313756

1
2
3
4
5
6
7
8
9
adduser lichaoqian
passwd lichaoqian

mkdir /root/ProjectTest
chown -R lichaoqian:lichaoqian /root/ProjectTest



ftp://121.196.63.236:3000

1、步骤一:安装vsftpd

1
2
3
4
yum install -y vsftpd
systemctl enable vsftpd.service
systemctl start vsftpd.service
netstat -antup | grep ftp

image-20201120105446990

vim /etc/vsftpd/vsftpd.conf

image-20201120112330288

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#除下面提及的参数外,其他参数保持默认值即可。

#修改下列参数的值
#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#监听IPv4 sockets
listen=YES
#在行首添加#注释掉以下参数,关闭监听IPv6 sockets
#listen_ipv6=YES

#添加下列参数
#设置本地用户登录后所在目录
local_root=/root/Project
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式
pasv_enable=YES
allow_writeable_chroot=YES
#本教程中为Linux实例公网IP
#pasv_address=<FTP服务器公网IP地址>
pasv_address=121.196.63.236
#设置被动模式下,建立数据传输可使用的端口范围的最小值
#pasv_min_port=<port number>
pasv_min_port=50000
#设置被动模式下,建立数据传输可使用的端口范围的最大值
#pasv_max_port=<port number>
pasv_max_port=50010

image-20201120113245620

End

至此,利用阿里云服务器ECS的使用介绍结束。

第1节:阿里云服务器ECS

[toc]

阿里云服务器ECS

一、购买服务器ECS

1、进入 阿里云开发者试用中心https://free.aliyun.com

ecs_buy_free

2、选择服务器

操作系统选择常见的系统,如CentOS 8.2的(之前用CentOS 8.4的,结果安装mongodb的时候只找到8.2的版本)

ecs_buy_2

3、下单

ecs_buy_3

4、购买支付

ecs_buy_4

至此,购买成功。

二、主页

我的云服务器ECS资源

ecs_main1

三、远程桌面连接

远程连接方式有以下几种方式

image-20210804140640136

如何正确的远程连接方式 请直接调到第四步。

1、错误1:通过公网IP或者EIP访问实例增加Workbench的服务器白名单:

1.1、发现错误

Windows用户需要隶属于Remote Desktop Users组才能使用RDP远程登录

通过公网IP或者EIP访问实例增加Workbench的服务器白名单:
47.96.60.0/24
118.31.243.0/24

image-20201117155701566

1.2、解决错误

解决办法:

鼠标放在在阿里云右上角 账号头像 上 ,然后找到 “安全管控”

然后在左侧上找到“\IP白名单**

如下图所示添加上面的两个iP进白名单即可。

image-20201117155550649

添加白名单

image-20201117160123181

两个都添加后,

image-20201117160242381

如果还不能连接,请检查安全组端口

image-20201117102103027

2、实际上正确的远程连接需要安装远程桌面服务

image-20201117165745806

四、正确的远程连接方式

远程连接的几种方式

ecs_connect_vnc1

1、Workbench方式连接

image-20210804144528676

2、VNC方式连接

2.1、VNC方式连接(默认进入的是终端界面)

选择VNC,输入远程连接的密码(这里不是不是root对应的密码),如Login1

ecs_connect_vnc2

之后进入终端界面,输入登录账号密码:

1
2
账号:root
密码:实例的登录密码(和ssh登录是一样的)

ecs_connect_vnc3

登录成功后,就可以输入其他终端命令来操作了。

2.2、将VNC的进入界面改成桌面形式/CentOS8如何安装图形界面

官网帮助文档:https://help.aliyun.com/knowledge_detail/151830.html?spm=5176.13910061.sslink.1.7a2d5d584Ps39h

安装命令如下:

1
2
3
yum groupinstall "Server with GUI" -y
systemctl set-default graphical
reboot

之后仍然选择VNC方式连接,连接后会发现进入的界面变成了以下样式

image-20201117171441762

之后和之前一样输入登录账号密码:

1
2
账号:root
密码:实例的登录密码(和ssh登录是一样的) // 如常用的8位密码

即可进入。

进入之后的页面如下:

image-20211221102404260

其他参考内容:

在Centos 6.x中,我们常使用rdesktop软件,去连接windows的远程桌面

但是在Centos 7.x中,默认的yum仓库中没有集成rdesktop软件包了

如果要在Centos 7.x中连接windows的远程桌面,可以有如下几种方法

1、通过其他yum仓库,或者其他方式安装rdesktop软件包,然后通过rdesktop -u username -p password IP 进行连接

2、安装GNOME桌面后,然后使用其自带的Remote Desktop Viewer通过RDP协议(也可以通过vinagre命令启动窗口)进行连接

3、安装freerdp软件包,然后使用xfreerdp x.x.x.x 进行连接

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

今天主要记录一下,如何通过freerdp软件包,去连接windows的远程桌面

1、直接使用yum命令即可完成安装,在[updates]仓库中就集成了freerdp

1
2
> [root@qq5201351 ~]# yum install freerdp -y           #也可以写freerdp软件包中的二进制文件xfreerdp
>

2、安装后,使用xfreerdp x.x.x.x 即可进行连接

1
2
> [root@qq5201351 ~]# xfreerdp 1.2.3.4                 #如果不是默认的tcp的3389端口,可以直接在ip后面加:port
>

注:软件包的名字为freerdp,但是其二进制的命令文件为xfreerdp

五、云服务器内部

登录到阿里云服务器ECS后

1、查看默认进入到的文件路径

1
2
pwd
ls

2、查看该文件所在的父文件的目录

1
2
cd ..
ls

image-20210803114919466

End

至此,利用阿里云服务器ECS购买及远程连接操作介绍结束。

Flutter面试

Flutter面试

自动打包

浏览器缓存、分段、

拉前端代码?+正常的环境的切换+通知

没网?数据?

h5请求,app拦截,自动更新

h5调用插件

多渠道打包

Cordova、

安全

支付:

架构 MVP

代码层面 hashMap 16大小、本地化存储 mmkv 门面模式

性能优化 线上oom、bugly、图片过大

Viewmodel 数据持久

不同客户不同包

网络框架 重试、日志

权限管理

离线缓存?

日历视图 七八层嵌套-> 1层

通知、插件、路由

插入视图

安卓自启动问题

本地化/国际化-

框架-getX

webView-flutter 白屏

扫码

设计模式?策略模式?单例?通知?几个原则。

  • 谈谈对项目做过的优化(历史存在什么问题,你的解决方式。)?
  • 谈谈你做过的框架(侧重非UI部分)
  • 谈谈埋点?

搜索逻辑?冒泡排序?

封装

看过什么书,什么三方库?

  • [x] 图片缓存?

  • [x] 性能优化(webView 优化)?

    • 内存优化、泄漏,检测?
    • 启动优化
    • 安装包大小优化
  • 应用在后台长时间执行(service 保活)
  • 怎么区分不同平台的安装包?
  • 同一应用多端,项目上怎么开发(司机端、乘客端)。
  • [ ] 路由设计 scheme://path?argument

  • [ ]

app中核心的非数据组件()

图片处理、网络库、路由

线程同步

掌握 RxJava + Retrofit + OkHttp 的⽹络底层框架,并结合 MVP、MVC、MVVM 三种架构模式编写出⽹络底 层框架,已应⽤于项⽬中,底层稳定性强

了解LiveData,Viewmodel,DataBinding等新框架,且结合RxJava 使⽤MVVM架构应⽤在项⽬中

理解内存泄露的原理,编写代码过程中能避免常⻅内存泄露。使⽤Memory Profiler 和 Memory Analyzer等 ⼯具检测内存泄露问题

了解App启动速度优化,内存,以及APK 瘦身等优化

理解 Android 适配原理,能够做到适配各类常⽤机型

理解Android触摸事件传递机制,⾃定义View和动画机制 理解 Handle 消息处理机制

理解多个设计模式的使⽤。如单例设计模式,观察者模式,建造者模式,装饰者设计模式等 独⽴编写多个lib库,如图库,列表适配库,⼴告库,分享库(QQ,微信,微博,Facebook等第三⽅),均采⽤ 组件化开发⽅式,可快速移植其他项⽬中

Flutter

状态管理 setState\Provider

网络拦截器、

图片缓存

请求