Frank's Blog

When you're nothing at all,there's no more reason to be afraid

Android 学习笔记思考篇

概述Android 系统从 2008 年正式发布到现在已经过去了 10 年,系统版本也来到了 9,作为开发者,或者作为用户,我们见证了系统一次次大大小小的改动,见证了系统的不断完善,见证了我们写的每个 Android 小程序给我们带来的成就感。但是,当我们写的程序越来越多时,当我们对 Android 应用开发越来越了解时,我们发现它并不完美,甚至有些简陋:Service 从字面上理解就是后台......

AI 之旅:跳伞

概述像跳伞、蹦极、滑雪之类惊险刺激的运动是旅行乐趣中非常重要的一部分,而 AI 之旅中同样存在这样好玩刺激的项目,它就是 Magenta,一个探索机器学习在创作艺术和音乐过程中的作用的研究项目。也就是说,让 AI 涉足艺术领域,包括写歌、画画、写小说等,你可能会说了,AI 所谓的创作永远无法超越人类,是这样的,至少目前和可预见的未来是这样的,而 Magenta 的目的不是为了取代人类进行创作......

AI 之旅:花海

概述正如《AI 之旅:启程》一文所说,“机器学习作为实现 AI 的主要手段,涉及到的知识和领域非常多,而 Google 提供的 TensorFlow 平台让普通人创建或训练机器学习模型成为可能,作为普通人,你无法提出革命性的机器学习理论,甚至无法理解很多数学知识,但是有了 TensorFlow 平台,有了一些训练好的模型,你就可以创建自己想要的,能帮助你自己或者帮助他人解决问题的模型”。Te......

AI 之旅:启程

“All models are wrong, but some are useful.” — George Box 机器学习(Machine Learning)最大的魅力在于改变了开发者的思考方式,开发者不需要再费力地给程序编写固定的逻辑指令,而是让程序对大量的未知数据进行分析思考,然后学会如何去处理未知的输入,如何对结果进行预测,如何采取动作 基本术语 监督式机器学习(Super......

Android 学习笔记架构篇

架构原则关注点分离 一个组件应该只关注一个简单的问题,只负责完成一项简单的任务,应该尽少依赖其它组件 就算依赖另一个组件,也不能同时依赖它下下一级的组件,要像网络协议分层一样简单明确 Activity 和 Fragment 作为操作系统和应用之间的粘合类,不应该将所有代码写在它们里面,它们甚至可以看成是有生命周期的普通 View,大部分情况下就是 被 用来简单 显示数据的 模型驱动视图......

Android 学习笔记核心篇

基础知识底层原理 Android 操作系统是一个多用户 Linux 操作系统,每个应用都是一个用户 操作系统一般会给每个应用分配一个唯一的 Linux 用户 ID,这个 ID 对应用是不可见的。但有些情况下两个应用可以共享同一个 Linux 用户 ID,此时他们可以访问彼此的文件,甚至还可以运行在同一个 Linux 进程中,共享同一个虚拟机。但两个应用的签名必须是一样的 每个进程都有自己的虚......

音视频技术基础

音视频技术基础概述保存视频的每一帧,每一个像素没要必要,而且也是不现实的,因为这个数据量太大了,以至于没办法存储和传输,比如说,一个视频大小是 1280×720 像素,一个像素占 12 个比特位,每秒 30 帧,那么一分钟这样的视频就要占 1280×720×12×30×60/8/1024/1024=2.3GB 的空间,所以视频数据肯定要进行压缩存储和传输的。而可以压缩的冗余数据有很多,从空间......

Kotlin 语言学习笔记

关于现代开发语言的思考像 Java, Objective-C 这些上个世纪的开发语言越来越没法满足现代移动开发的需要,所以要有一些更现代化的语言和编译器,它能够够更像人类的语言,更符合人类的表达习惯,更加简洁,更加富有语义性,能够根据上下文环境判断我们想表达东西并理解我们的简述,能够察觉或者纠正我们的语法错误,能够有一些语法之内或之外的一些约定俗成的表达习惯,能够很好地支持面向对象编程、函数......

Dart 语言学习笔记

基础语法注释Dart 的单行注释也是 // ,注释内容最好是个完整的句子,通常以大写字母开头,以句点或其他标点符号结束:12// Not if there is nothing before it.if (_chunks.isEmpty) return false; /* ... */ 只适合用来注掉某一段暂时不用的代码,不适合当成注释使用。/// 是 Dart 推荐使用的文档注释语法,da......

Android Architecture Components 之 Room 篇

Room,一个 SQLite 的 ORM 库,可以方便地将 Java 对象转成 SQLite 的表数据,不用再像传统方式那样写 SQLite API 的样板代码了。同时 Room 提供了 SQLite 语法的编译时检查,并且可以返回 RxJava,Flowable 和 LiveData observables。 添加依赖12345// Room (use 1.1.0-beta2 for la......