最近一直都不务正业,做了各种杂七杂八的小东西,主要有:
- 安卓手机桌面宠物;
- 一个安卓APP的服务端(使用java web开发);
- 一个网上购书系统(使用java web开发);
- 使用python完成了kaggle上的数据挖掘题;
- 粗略看了一遍flask的基础知识,后来项目改用django,所以应该暂时不会用到;
- 开始浏览boost库。
此处简短记录下一些技术与收获:
首先,这学期才开始接触到安卓,虽然自己不做这个方向的,但是一直很好奇安卓应用是怎样运行的。
完整地做了手机桌面宠物这个项目,大致对安卓有所了解。
一些主要的技术点:
- 桌面显示使用WindowManagerService;
- 动画使用逐帧播放,定时任务进行动画切换,随机产生动画使用异步任务;
- 获取微信消息并在宠物对话框中显示使用AccessibilityService辅助服务,获取微信的包(com.tencent.mm),做法来源于抢红包神奇的实现。
- 设置使用sharedpreferences;
- 多种动画和宠物模型,使用工厂模式实例化,易于扩展。
还知道了安卓的apk安装包是很容易反编译的,如果没有采取一些措施,代码一览无遗。为了拿一些图片资源,自己也反编译了几个apk,使用了apktool,dex2jar。当然也尝试过反编译代码,不过反编译出来的代码是处理过的,命名都混淆过了