在Android实现语音播报金额的功能

前言

接到一个需求,要在Android实现上实现语音播报的功能。
播放的内容是固定的,就是在收款成功时,播放一句”成功收款XXX元”。
iOS中就方便多了,可以用AVSpeechSynthesizer直接实现。
而Android中,由于系统的TextToSpeech(TTS)不支持中文,因此只能通过第三方语音SDK或者自己控制播放录制好的音频来实现。然而只有这么几个字,调用其他SDK感觉没必要,于是决定自己实现。

Android开发艺术探索读书笔记 第九章 四大组件的工作过程

9.1 四大组件的运行状态

四大组件除了BroadcastReceiver,其他都必须在AndroidManifest中注册。
BroadcastReceiver可以在AndroidManifest静态注册,也可以动态注册。

Activity的主要作用是展示一个界面和用户交互~

Service是一种计算型组件,用于在后台执行一系列计算任务。Service有两种状态,启动状态和绑定状态。启动状态时,不需要和外界直接交互。绑定状态可以和外界通信。Service运行在主线程中。

BroadcastReceiver静态注册在安装时被系统解析,动态注册通过Context.registerReceiver()。

Android开发艺术探索读书笔记 第八章 理解Window和WindowManager

Window是一个抽象类,具体实现是PhoneWindow。

8.1 Window和WindowManager

FLAG_NOT_FOCUSABLE
表示Window不需要获取焦点,也不需要接收各种输入事件,此标记会同时开启FLAG_NOT_TOUCH_MODAL
FLAG_NOT_TOUCH_MODAL
开启后可以将当期WWindow区域以外的事件传递给底层Window。
FLAG_SHOW_WHEN_LOCKED
开启此模式可以让Window显示在锁屏上
Type参数表示Window的类型,有三种,应用Window,子Window和系统Window。

在Mac 10.11中编译Android 6.0源码

背景

前几天心血来潮想编译Android源码,总共花了大概三天的时间,碰到一些问题,记录一下防止以后忘掉。

本地环境

系统版本: OS X 10.11.2
git : 2.6.4
port :2.3.4
make : 3.81
curl : 7.46.0

环境配置

首先需要一个区分大小写的硬盘,至少要100G,我是在一个移动硬盘上编译,所以直接磁盘工具->选择硬盘->抹掉,格式选择第二个”OS X扩展(区分大小写,日志式)”就可以了。

Android开发艺术探索读书笔记 第六章 Android的Drawable

Drawable表示可以在Canvas上进行绘制的抽象的概念。

非图片类型Drawable占用空间小,可以减少apk大小。

BitmapDrawable表示一张图片,对应xml标签

NinePatchDrawable,表示一张.9图,,在bitmap标签中也可以使用.9图。

ShapDrawable表示以颜色构造的图形,可以纯色,也可以渐变。

LayerDrawable表示层次化的drawable集合,下面的item会覆盖上面的item。

Android开发艺术探索读书笔记 第五章 理解remoteViews

5.1.1

RemoteViews用于自定义Notification。
PendingIntent表示待定Intent,包含的意图由用户触发。

5.1.3

PendingIntent支持三种待定意图:启动Activity,启动Service和发送广播。
getActivity(Context context,int requestCode, Intent intent, int flags)
如果两个PendingIntent内部的Intent相同并且requestCode也相同,那么这两个PendingIntent是相同的。

,