Google出品,必属精品
最近Google刚开源了一款播放器叫android-UniversalMusicPlayer,除了设计精美、交互合理、功能简洁之外,最重要的是跨平台,不管你是手机、平板还是Android Wear设备都可以完美运行,真是可以算作是一款Android平台上的教科书级播放器。
另外我大概粗略的看了下代码,代码量非常少,代码里没有注释,因为项目简单,逻辑清晰,我认为即使没有注释依然可以清晰的看懂。大家可以拿这个项目练手,非常适合有点经验的初、中级以上Android开发人员学习。
值得一提的是,我在这之前在博客上发表了一篇《Android模块化编程之引用本地的aar》,而Google的这个项目就采用了这种方式,不得不为自己超前的思想点赞!
最后大家一起来一睹这个项目的一些运行截图吧:
GitHub地址:https://github.com/googlesamples/android-UniversalMusicPlayer
最后,如果觉得我的分享一直以来对您有点帮助,不妨分享到您的朋友圈,推荐身边的相关人士关注此账号,这将是我持续分享的动力!
点击“阅读原文”直接查看《Android模块化编程之引用本地的aar》这篇博客。
Google出品,必属精品相关推荐
- 全世界最详细的图形化VMware中linux环境下oracle安装(三)【weber出品必属精品】...
数据库软件和数据库都建好了,基本上可以说完成90%的工作,但是美中不足的就是企业管理器还没有安装好,现在我们就开始安装企业管理器吧. 安装之前我们先将补丁给补上.补丁我们也是采用禁默安装.补丁:p83 ...
- 解决linux下oracle进入sqlplus环境中后退键显示^H、上下键无效与ctrl+l无法清屏等问题【weber出品必属精品】...
习惯linux中上下键回退历史输入的人们肯定也希望sqlplus中也能实现相同的效果,可是不幸的是,sqlplus中不提供诸多方便的快捷键,这个时候我们就需要另外安装一个插件来实现这个想法. 这个插件 ...
- 使用DML语句【weber出品必属精品】
DML语句包含以下语法: INSERT:往一个表中增加新行 DELETE:从一个表中删除掉现有的行 UPDATE:更改一个表中现有的行 INSERT语句 语法:INSERT INTO TABLE(CO ...
- 控制用户的访问之权限、角色【weber出品必属精品】
权限的作用 限制用户对数据的访问 权限的分类 1. 系统权限:能够存取数据库的权限 2. 对象权限:操作数据库对象的内容 系统权限 1.1 如何创建用户: SQL> create user ...
- 【阿朱出品 必属精品】你也说医院,我也说医院
怎么说俺也是在卫生部官办国企做了4年啊,那就说道说道.由于中国医疗制度牵扯全民利益所以变革非常谨慎微小,中国医生圈子大多属于几个院系派系嫡系自我近支繁衍,体制内有事业单位编制问题,体制外有莆田系金钱交 ...
- ChatGPT团队出品,必属精品—Bito插件完全指北
Bito是一个IntelliJ IDEA插件,由ChatGPT团队开发,用于提高开发效率和生产力. 首先,安装Bito插件非常简单.在IntelliJ IDEA编辑器中打开"Plugins& ...
- 剪映,最简单的PC端视频处理工具,大厂出品必属精品~
相信在座的小伙伴都用过抖音app,看的多了难免也有想要发视频的冲动. 这时我们就会想到诸如Ae.Pr之类的视频制作工具,但他们都有一定的上手难度-- 好在抖音霸霸很早就推出了免费的官方全能剪辑工具,也 ...
- 关于电信重组(华为中兴观察员出品,必属精品)
关于电信重组 论坛里很多人对国产设备商的未来在我看来过于乐观,电信重组最简单的结果就是运营商减少,这使得第四名第五名直接kill掉了,重组前这些运营商处于弱势,对技术的前沿性要求不高,从而在外国设备商 ...
- 吾爱出品,必属精品~
前言 吾爱破解论坛目前是一个非常老牌的软件解密与技术交流地,从名字可以看出论坛内有着非常丰富的PJ软件资源,但随着最近的几次整改,论坛实质也逐渐与破解无缘.这也是没有办法的事,作为一个日访问量10万+ ...
- Python 编程笔记(本人出品,必属精品)
文章目录 Part.I 准备工作 Chap.I 下载安装 Chap.II 实现快捷键清屏 Chap.III 概念汇编 & 注意事项 Part.II 基础知识 Chap.I 快应用 Chap.I ...
最新文章
- matlab中线性变压器,用MATLAB优化计算差动变压器的线性范围
- k-Means算法(Machine Learning in Action)基于python3.6
- MySQL调优(二):数据类型和schema优化,MySQL8.0取消查询缓存的原因
- .NET高级调试 | 通过JIT拦截无侵入调试 C# Emit 生成的动态代码
- 基于JAVA+SpringMVC+Mybatis+MYSQL的药方中医管理系统
- php.ini 302,302使用nginx和WordPress重定向循环
- 【python】面向对象的封装、继承、多态的练习题
- 美国太空部队加入美国情报系统,以确保太空的安全
- apache的开源项目-模板引擎(Velocity)(转)
- Lecture 7:策略梯度
- java 阿拉伯数字日期转换为中文大写日期方法_日期转换为中文大写数字
- 三星S5P6818工控底板 (ARM Cortex-A53架构)
- 设计模式-外观模式(家庭影院你值得拥有)
- .NET MongoDB Driver GridFS 2.2原理及使用示例
- MySQL必知必会(1)
- 人工智能机器人是什么编程
- 转行数据分析师后悔了?转行需要做哪些准备?
- MagicLeap SDK 安装指南
- 【老生谈算法】matlab实现人工免疫算法——人工免疫算法
- 蓝桥杯校内选拔赛(河南农业大学)