在Android实现语音播报金额的功能
前言接到一个需求,要在Android实现上实现语音播报的功能。播放的内容是固定的,就是在收款成功时,播放一句”成功收款XXX元”。iOS中就方便多了,可以用AVSpeechSynthesizer直接实现。而Android中,由于系统的TextToSpeech(TTS)不支持中文,因此只能通过第三方语音SDK或者自己控制播放录制好的音频来实现。然而只有这么几个字,调用其他SDK感觉没必要,于是决定自己实现。
获取音源首先可以从google翻译或者百度翻译中获取需要的音频。比如百度的,ts.baidu.com/text2audio?lan=zh&pid=101&ie=UTF-8&text=你好&spd=2把’你好’替换成需要的文字,然后把这个链接放到下载工具里即可获取,下载后需要把文件后缀改成mp3。更改链接后面的spd参数还可以控制播放速度。
google音频的获取地址是https://translate.google.com/translate_tts?ie=UTF-8&q=%E4%BD%A0%E5%A5%BD&tl=zh-TW&am ...
在Mac 10.11中编译Android 6.0源码
背景前几天心血来潮想编译Android源码,总共花了大概三天的时间,碰到一些问题,记录一下防止以后忘掉。
本地环境系统版本: OS X 10.11.2git : 2.6.4port :2.3.4make : 3.81curl : 7.46.0
环境配置首先需要一个区分大小写的硬盘,至少要100G,我是在一个移动硬盘上编译,所以直接磁盘工具->选择硬盘->抹掉,格式选择第二个”OS X扩展(区分大小写,日志式)”就可以了。
如果不想新建一个分区,也可以通过官网提供的方式,执行
123hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 100g ~/android.dmghdiutil attach ~/android.dmg -mountpoint /Volumes/android;
来创建并挂载一个dmg文件来使用。
然后需要装一下java7环境,去下载一下就好了jdk-7u71-macosx-x64.dmg,一般做Android开发的都已经装过了。
接下来需要安 ...
AndFix使用介绍
介绍AndFix,全称是Android hot-fix。是阿里开源的一个Android热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug。支持Android 2.3 到 6.0。
使用方式
首先添加依赖compile 'com.alipay.euler:andfix:0.3.1@aar'
然后在Application.onCreate() 中添加以下代码123patchManager = new PatchManager(context);patchManager.init(appversion);//current versionpatchManager.loadPatch();
可以用这句话获取appversionString appversion= getPackageManager().getPackageInfo(getPackageName(), 0).versionName;注意每次appversion变更都会导致所有补丁被删除,如果appversion没有改变,则会加载已经保存的所有补丁。
然后在需要的地方调用PatchManager ...
stetho使用介绍
#介绍stetho是facebook开发的Android调试工具。它可以通过chrome的开发者工具来辅助安卓开发。总的来说,提供了一下几个功能:
通过Elements标签查看界面的视图结构。
通过Network标签观察网络请求。
通过Resources标签查看本地数据,比如sqlite数据库,sharepreference等等。同时可以在这里执行sql语句。
通过Console标签,在这里执行js语句,可以在APP上弹出一个Toast。
dumpapp 是linux/mac上使用的命令行工具,可以修改app内部资源,暂时未详细了解。
##准备在使用之前需要先引用需要的包。通过语句
compile 'com.facebook.stetho:stetho:1.2.0‘
来引用stetho。
底层的网络请求可以通过两种方式来实现。分别是okhttp和urlconnection。我这里使用了okhttp进行网络请求。引用方式:
compile 'com.facebook.stetho:stetho-okhttp:1.2.0'
如果使用urlconnec ...
使用python完成重复任务
事件背景:接到一个任务,要我完成对很多文件改名字的操作。任务原因是美工切过来的图片都是中文名,于是有人把xhdpi文件夹中的文件改成了英文名,本来这也没什么问题,因为刚开始就说好只用xhdpi的内容,其他不需要放。我问 “为什么会需要其他几个dpi的文件,Android不是会自动进行等比缩放的吗?”答: “以后可能需要。”好吧..
于是我又跟他说,android studio的重命名快捷键也可以对图片操作的,先把中文名的图片导入,接着只要改了其中一个dpi的文件名,其他dpi也会自动改过来。然而现在已经是一个dpi变了而其他的并没有变成英文的。最终这个重复劳动还是让我来做了,以后新加的图片会考虑用我说的方法。
然后开始思考有没有方便的方法,一个个手动重命名实在太蠢了。想到了两个方法:
还是利用android studio的快捷键,找到中英文对应的图片,然后用快捷键把中文名改成英文名。
找到中英文的映射关系记录到一个字典里,然后用脚本实现批量重命名。
最后还是决定用python来实现,可以复习一下python语法,顺便学一下文件操作。以后碰到类似的任务,也可以同样的方法解决了。因 ...
Android fragment
介绍fragment是android 3.0(API 11) 中引入的。可以将fragment看成是activity中的一个模块,也有自己的生命周期,能够处理用户事件。
通过fragment可以方便的实现在多个activity中实现相同的布局。在做android平板开发时,可以和手机程序共用同一段代码。
如果需要在界面中动态添加、替换、删除某一块模块,也可以通过fragment实现。
基本使用方式静态使用 首先创建一个简单的布局文件fragment_simple.xml,当做fragment的布局,里面代码如下
1234567<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match ...