周老师叫我做一个语音识别的提醒小闹钟,功能很简单:
要有qq登录,说出几点提醒我干什么这句话,分离出时间和事件,设置闹钟提醒。同时(QQ号,提醒时间,提醒事件)要上传到服务器的数据库里。
功能不难,但是学了不少东西,也做了3周多。
有几点需要记录
1、添加.so文件时候,必须在build.gradle里的android节点下添加如下语句:
android {
...
sourceSets {
main{
jniLibs.srcDirs=['libs']
}
}
2、如何设置Alarm:
(1)用一个SystemService获得闹钟服务
(2)设置PendingIntent,准备过一会儿没事的时候整理一下PendingIntent
注意PendingIntent 有getActivity和getBroadcast两个方法,在设置和cancel的时候不能用错了
3、我干了意见糗事,昨天把git的空仓库同步到安卓工程目录下,导致安卓工程文件全没了,有如下两种解决方法:
(1)找文件恢复软件去搜索,缺点是,只能找到一些,而且代码得自己敲,可能要花钱,不是很方便
(2)android手机root后用RE管理器(注意有同名软件,但是功能不全,不能共享文件)找到以前的apk文件,反编译后可得到大多数源代码,复制粘贴即可,很方便。
下次注意写代码时一定要注意备份。
4、关于接口的新用法:
当某些类有相同功能时(比如科大讯飞的语音识别类,云知声的语音识别类)可以定义一些相同的方法,形成接口,这样方便替换。接口定义如下:
public interface recognition{
public void startRecognize();
public void stopRecognize();
}
然后每个语音识别的类都要有startRecognize()和stopRecognize方法()
5、Server用nodejs写的,比较方便,基于事件发射器,其实就是发布订阅模式。准备多学一些nodejs的知识,据说这将会是以后的主流。很多事情很简单,但是不学,你永远不会。
6、gitblit可以用来建立局域网内的远程仓库,要了解他的使用,今天准备学习一下。准备再写一篇文章
7、安卓两种录音类AudioRecorder MediaRecorder前者输出流,还需要自己包装
其实以前比较鄙视写博客的人,现在自己突然想写了。为什么,因为有些编程的经验脑子记不住,需要有东西备份一下,以前学的东西太少了。而且现在毕竟是学生,时间相对来说比较自由。