Gavin.Liu

Focus on Mobile Develop


  • 首页

  • 归档

  • 标签

  • 分类

  • 关于

Android - 基于MediaSession的音乐播放流程

发表于 2016-04-09 | 分类于 Android Notes | 评论数:

概述

Android 5.0(Lolippop)更新了新的媒体播放API和媒体类型通知,使用最新的API可以让系统界面能够读取你的媒体播放并提取和显示专辑封面。比如在Lolippop上,播放音乐时锁屏界面背景会变成专辑封面,并且还有播放控制按钮。

Lolippop之前是使用RemoteControlClient来实现跨界面的播放,新版被 MediaSession 所替代,并且提供了一系列用于处理传输控件和媒体按钮的回调方法,可以让你的媒体播放在Android TV或Wear平台上运行。

实际测试Lolippop的锁屏兼容了RemoteControlClient和MediaSession两种方式,都可以在锁屏控制媒体播放并提取和显示专辑封面。

阅读全文 »

Android - 在平坦的道路上曲折前行-插件式开发

发表于 2016-03-29 | 分类于 Android Notes | 评论数:

为何要插件化?

谈到插件化,在Android环境下可能很多人会说”真邪恶”, “不要脸”,”TMD,自己主动更新,流氓软件!”。

但业务越来越大的时候,会遇到些问题:

  1. 模块越来越多,如何有效的组装各个模块,让不同部门更好的协作开发。
  2. 软件包越来越大,如何更好的降低更新成本。
  3. 如何支持高效的A/B Test,而不是发布不同的包出去。
  4. …

这个时候似乎插件化是解决问题的最好方案,对于程序员来说,我们也是一直在想方设法的写高类聚低耦合的代码,插件化几乎成了不二之选。

阅读全文 »

机器学习 - 1.索引

发表于 2016-03-20 | 分类于 机器学习 | 评论数:

前阵子李世石对战AlphaGo着实让深度学习火了一把,AlphaGo 4:1 赢了比赛,确实牛逼,再不学习学习就落伍了,开这篇博客写写学习笔记。

机器学习 or 深度学习

这两个是包含的关系,深度学习属于机器学习的更深入的研究。

学习的概念:针对经验E (experience) 和一系列的任务 T (tasks) 和一定表现的衡量 P,如果随之经验E的积累,针对定义好的任务T可以提高表现P,就说计算机具有学习能力。

基本概念

训练集,测试集,特征值,监督学习,非监督学习,半监督学习,分类,回归

阅读全文 »

Android - 实用代码片段(3)

发表于 2016-02-29 | 分类于 Android Notes | 评论数:
  • 在View Layout完成后获取 控件大小
1
2
3
4
5
6
7
8
9
final TextView tv = (TextView) findViewById(R.id.myTextView);
ViewTreeObserver vto = tv.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Toast.makeText(MyActivity.this, tv.getWidth() + " x " + tv.getHeight(), Toast.LENGTH_LONG).show();
tv.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
阅读全文 »

Android - 开源项目:OpenGpad(电脑键盘当手游手柄)

发表于 2016-02-28 | 分类于 Android Notes | 评论数:

这是个基于测试框架(UiAutomator)做的一款:使用电脑键盘玩手机游戏的软件。

初衷

本职工作是做Android开发,电脑环境为Linux Mint,没有好的娱乐方式,手机也是长时间插在电脑上的,所以就寻思着,用电脑键盘当手柄,控制手机玩游戏,于是就有了这个项目。

体验视频

阅读全文 »

Android - 测试框架之 UI Testing - 实现多点触控事件

发表于 2016-02-23 | 分类于 Android Notes | 评论数:

UiAutomator已经现有的的API没有提高多点触控的方法,但是我们可以通过注入多点事件的方式来实现。

Android TouchEvent Flow

一个基本的单点事件流

1
2
3
MotionEvent.ACTION_DOWN
MotionEvent.ACTION_MOVE
MotionEvent.ACTION_UP
阅读全文 »

Android - adb forward实现PC和App的Socket通讯

发表于 2016-01-19 | 分类于 Android Notes | 评论数:

PC端的XX助手和手机App的通讯原理:

1
2
# 把PC端8000端口的数据, 转发到Android端的9000端口上.
adb forward tcp:8000 tcp:9000

什么是转发?

执行命令后, PC端的8000端口会被 adb 监听, 这个时候我们只需要往8000端口写数据, 这个数据就会发送到手机端的9000端口上.

阅读全文 »

Python - Mac下PyCharm&PyQt5环境搭建

发表于 2016-01-17 | 分类于 Python Notes | 评论数:

刚学Python的时候都是在文本编辑软件里面写,没有智能提示,效率实在底下,写项目当然要使用现代化的IDE,PyCharm是IntelliJ IDEA的Python版本,是一个非常优秀的IDE。(PS:我的电脑快变成IntelliJ IDEA全家桶了)

所需软件:

  1. PyQt5
  2. PyCharm
阅读全文 »

Python - Mac下PyQt5环境搭建

发表于 2016-01-16 | 分类于 Python Notes | 评论数:

一直想写一些桌面软件,公司电脑是Ubuntu,个人电脑是Mac,Windows又是用户量最多的,想来想去使用跨平台的开发工具来写才是唯一的选择。

最终选择使用PyQt,把Python的便利和Qt的兼容完美结合。

所需软件:

  1. Python3
  2. Qt5
  3. SIP
  4. PyQt5
阅读全文 »

我的电脑环境&工作流

发表于 2016-01-10 | 分类于 刘说八道 | 评论数:

工欲善其事,必先利其器

阅读全文 »
1…567…14
Gavin Liu

Gavin Liu

刘云龙的程序世界

133 日志
20 分类
106 标签
RSS
GitHub Weibo
© 2012 – 2019 Gavin Liu
由 Hexo 强力驱动
|
主题 – NexT.Gemini