本周计划
- 彻底搞懂微信消息管理
- 研究内网穿透
- 从零开始学电子基础和物理
- 研究如何在自己的云服务器上搭建云手机
1、微信的消息管理
准确来说我没有完成这个计划,我只是学会了接收和发送消息以及手写消息过滤器(自己写的没有 SDK 的好),不会使用 SDK 的消息路由进行消息过滤,还需进一步的学习。
2、内网穿透
搭建内网网穿透的方法有很多,之前见学长使用 frp 搭建过,但是个人觉得用 frp 搭建有些繁琐,经过大量的搜索找到一个可以替代 frp 的软件——nps。nps 支持 tcp、udp 流量转发,支持内网 http 代理、内网 socks5 代理,同时支持 snappy 压缩、站点保护、加密传输、多路复用、header 修改等。支持 Web 图形化管理,集成多用户模式(官网是这么说的,咱也不知道具体是干啥,听着怪厉害的,咱也就用个内网穿透)。
使用 nps 搭建内网穿透,只需要在服务器端进行简单的配置,客户端只需要执行一行命令即可连接,而且提供有 Web 图形化管理页面,可以对客户端进行管理,总得来说还是挺方便的。搭建的具体过程我已经总结过了,感兴趣的小伙伴可以看一下:使用 nps 搭建内网穿透
3、学习电子基础
刚开始学习时丈二和尚摸不着头脑,完全不知道从哪入手(主要是硬看书看不懂)。网上找相关书籍的视频资源也找不到,最后通过研究课本的目录,发现一二章是电路,三四五章是模拟电路,后面的是数字电路。单找电子技术基础的视频找不到,电路、数电、模电的视频满大街都是。二话不说马上投入到电路的学习中,从简单的欧姆定律到后面的回路电流法。后来听同学说,支路电流法、结点电压法、回路电流法等这些东西老师没讲,应该不会考,emmmm(上课不听讲的后果)。之后开始学习模电...
4、搭建云手机
之前在和朋友的聊天中了解了云手机(以前从来没有听说过),感觉挺好玩的想弄个云手机玩玩,但是其他平台的云手机都是收费的(还不便宜),自己也是学计算机的,想自己搭建个玩玩。
经过海量的搜索,发现网上关于这方面的知识少之有少,好像是什么商业机密,没有人说清具体的原理(或许是我没找到)。顾明思意云手机肯定是基于云计算的,个人觉得它应该是基于云服务器的。现在云服务器有“两朵云”:一朵是 X86 架构的云服务器,也就是我们平时用的;另一朵云就是 ARM 架构的云服务器,ARM 主要用于移动端手机、平板等设备。
个人觉得云手机应该搭建在 ARM 架构的云服务器上,因为云手机虽然不是真实的手机,但是它具备手机的大部分功能,所以应该建立在和他相似的环境上。我们平时的手机大多都是 ARM 架构的, Android 操作系统也跑在 ARM 环境,所以我们想实现云手机必须去模拟它的环境。
不过我也没有 ARM 架构的云服务器(如果要去买还不剩直接买云手机了),所以我的第一步是在我的 x86 架构的云服务器上模拟出 ARM 架构的服务器。说到模拟,肯定大多数人会想到模拟器(VirtualBox 和 VMware Workstation)但是它俩都是基于宿主机的硬件。经过查找发现了 qemu,qemu 是个开源的虚拟机,但是它独立于宿主机的用户模式和内核模式的客户模式,就是它自己模拟出一个新的系统环境,包括 cpu,内存,网卡,显卡等。它是用户空间的一个进程。qemu 可以独立运行,但是性能较差,所以就引入了 kvm。
kvm 是个模块,只能模拟内存和 cpu,qemu 将它的代码换成 kvm 的,性能会提高很多,所以一般都是 qemu 和 kvm 结合起来使用。
在我慢慢的专研中研究出大致思路:
- 云手机基于 ARM 架构,购买 ARM 架构服务器或安装 Linux 系统以及 kvm+qemu 虚拟化,派生 ARM 虚拟机。
- ARM 虚拟机内搭建 Android 开发板模拟环境,编译调整 Android 驱动打包虚拟机并启动 Android。这里的 Android 系统被重新打包阉割过,没有任何传感器,以及输出设备。
- 通过 vnc 远程控制接入 ARM 虚拟机(也就是 Android 开发板模拟环境)。
- 按照上面的逻辑搭建出云手机,如果想多量管理可以写个管理系统。
经过大量的测试最终还是失败了,失败地点:kvm+qemu 虚拟化,派生 ARM 虚拟机。网上说 Android 系统也兼容 x86 架构,但是我并不想重新装系统也不想装双系统(毕竟我的 Linux 系统上还运行着我一直要用的东西),而是在我原有的系统上再跑一个系统。以前也想过在云服务器上搭建一个安卓模拟器,但是还没有去测试。
失败原因:
- 对 Linux(Centos7.6)操作不熟练,很多命令都不了解,在没有图形化界面的情况下,感觉很别扭。
- 以前从来接触过这些东西,对于嵌入式开发、Linux 的内核、cpu 架构、Android 系统一窍不通。
- 自己的云服务也只剩 0.6G 的内存够我支配了。
- 离期末考试不远了,没时间让我搞这些花里胡哨的东西了。
收获:
虽然没有搭建成功,但是学到了很多东西(已经记到自己的笔记上了)。这次虽然失败了,不代表我放弃了,现阶段准备寒假在 VMware Workstation 再次实验。
5、手机商城项目
朋友下周要交一个基于 Servlet+Jsp 的手机商城项目,他自己不会写,但又怕挂科,所以想让我帮他完成项目。我现在都是用框架进行开发,很少再用底层的 Servlet 以及过时的 JSP 了,但毕竟我有些开发经验,所以接了这个项目。大致了解了他们所学过的东西就开始开发了。早上和中午把 dao 层和 service 层给肝完了,下午陆陆续续的把 Servlet、JSP、交互也完成了。开发中并没有遇到什么大问题(还好当时我基础打得扎实)。我只是帮他实现了功能,没有帮他写 CSS,剩下的就靠他自己了。听说我们 17 周实习也是用 Servlet+Jsp 做项目,正好现在复习了一下,到时候也能拷贝代码提升开发效率。
下周计划
租房项目现在是彻底暂停了,所以我可以安心复习了,好好补补自己的电子和物理。
- 刷一些电路的题,做到活学活用
- 学模电和数电
- 做物理老师发的两套题
- 如果有空的话看看算法哈 ~
标题:千锤万凿出深山,烈火焚烧若等闲——程序人生
作者:Yi-Xing
地址:http://zyxwmj.top/articles/2019/12/15/1576398158849.html
博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!