知豆D2S多媒体模块使用Kotlin编写,框架基于谷歌官方推荐框架Android Architecture Components,以及databinding库进行数据和视图绑定。初次用这些技术,所以目前功能还在完善中,bug也不少,代码也有很多不规范的地方,望大神提出建议改进问题。
安装Android Studio 3.1.2版本以及Shadowsocks,安装文件位于公司虚拟桌面共享目录软件一科/曾翼/D2S
,拷贝目录文件到本地windows系统,安装android-studio-ide-173.4720617-windows.exe
。
解压gradle-4.7-all.zip
,将其bin路径加入Path环境变量中,用于打包apk,如D:\gradle-4.7\bin
因为项目中依赖了google仓库,因此需设置gradle代理,解决依赖问题。拷贝gradle.properties
至C盘用户目录.gradle
下(如C:\Users\yizeng\.gradle
)
由于网络限制,简书和安卓官网等网站上的参考资料无法浏览,需设置Chrome浏览器代理。安装ChromeSetup.exe
谷歌浏览器后,点击更多工具-扩展程序
,将SwitchyOmega_Chromium.crx
拖入其中。安装Shadowsocks.exe
,设置代理。
代理配置私聊我,因为是个人付费账号
因为是本地开发,远程依赖太多,并且有些代码是在编译时期生成的,需要用gradle打包生成apk后,以预编译应用程序的形式进行Android make编译。具体操作:
Android Studio Terminal终端输入cd APP_Music
,然后输入gradle build
,打包成功后会在相应工程目录下生成apk ,将apk传输入虚拟桌面中;
Gitlab项目分支上创建Android.mk
(写法参考),拷贝apk至同级目录下,mm -B
编译
media-library已上传至JCenter,发布爬坑参照这篇文章
Kotlin是一种在Java虚拟机上运行的静态类型编程语言,它也可以被编译成为JavaScript源代码。虽然与Java语法并不兼容,但Kotlin被设计成可以和Java代码相互运作,并可以重复使用如Java集合框架等的现有Java类库。—— 维基百科
官方文档
中文pdf文档
什么是函数式编程思维
Lambda 表达式有何用处?如何使用?
Kotlin 协程异步操作库
『译』Coroutines 与 RxJava 异部机制对比之异步编程
Kotlin扩展
官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
玩转 Kotlin 委托属性
Android官方组件框架Android Architecture Components
- ViewModel: 用于为UI组件提供数据,并且能够在旋转屏幕等Configuration Change发生时,仍能保持里面的数据。当UI组件恢复时,可以立刻向UI提供数据.
- Lifecycle: 能够根据Activity或者Fragment的生命周期自行调整类的行为.
- LiveData: LiveData是有生命周期感知能力的,这意味着它可以在activities, fragments, 或者 services生命周期是活跃状态时更新这些组件.可以在生命周期结束的时候立刻解除对数据的订阅,从而避免内存泄漏等问题.
- Room: 数据库解决方案,Room在SQLite上提供了一个方便访问的抽象层
Architecture Component的官方例子
理解Android Architecture Components系列
使用Room的7个专业小建议
数据绑定库DataBinding
Android DataBinding 从入门到进阶
当RecycleView遇上DataBinding
Android Data Binding: RecyclerView
Databinding与LiveData的合作