0 条评论 , 版本 32, Last modified at

Diycode Android 开发入门开源书籍(2016 版)

《Diycode Android 开发入门开源书籍(2016 版)》diycode计划组织策划一本Android 开发入门开源书籍,目前名字还没有想好,姑且用这个标题吧。书籍编写不为出版,只为了可以成为一本比较经典的Android开发入门开源书籍。

说明:书籍大纲我将会在近期和第一批参与的同学一起撰写出来,然后将会将大纲发送给几个 Android 资深大牛一起提意见,总结大家意见之后,本书籍的计划将会向中文开发圈子召集 志愿者加入书籍撰写团队。

策划:@jixiaohua

组织:@d_clock @yasic

写作形式:团体写作,列好大纲之后,将会组织一批同学参与本书撰写,本书也同时将会在Github上面组织编写,本书将包含几大部分:

方法:先整理出知识点,然后根据知识点做好书籍大纲,大纲做好后,需要做一个章节的案例模版,最后大家认领剩余章节根据模版写作。等全部章节完成后,邀请网友review,最后完成开源书籍撰写计划。

第一部分:程序员/技术人美好的品德和底线;

欢迎加入Android 开发行列,在你成为一名工程师之前,希望你了解作为一名程序员/技术人美好的品德和底线;

  • 具有好奇心
  • 热爱分享
  • 具有社区意识

第二部分:程序员/技术人需要具备的核心能力

第三部分:Android 基础知识体系学习

以下仅仅开始做本书构架,并不是本书章节名称,目前分了十个大类,分别为:

0、Android studio

1、四大组件

  • Activity
  • Service
  • BroadCastReceiver
  • ContentProvider
  • 四大组件之间的纽带Intent

2、核心布局

  • LinearLayout
  • FrameLayout
  • AbsoluteLayout
  • RelativeLayout
  • TableLayout
  • FlexLayout

3、常用控件

  • Button(按钮)
  • TextView(文本框)
  • EditText(编辑框)
  • CheckBox(多选框)
  • RadioButton(单选按钮)
  • Spinner(下拉列表)
  • ScrollView(滚动视图)
  • ProgressBar(进度条)
  • SeekBar(拖动条)
  • ImagesView(图片视图)
  • GridView(网格视图)
  • RecyclerView

4、UI交互控件

  • DialogFragment
  • ViewPager

5、网络访问

  • HttpClient:是Apache提供的。
  • HttpURLConnection:是谷歌根据Java自带的URLConnection改进的。
  • Socket:Socket是Java自带的基于TCP/IP的通信工具。
  • WebView:WebView是基于谷歌chromium内核的一个可以作为浏览器的视图。

6、网络加载

  • HttpClient:是Apache提供的。
  • HttpURLConnection:是谷歌根据Java自带的URLConnection改进的。
  • Socket:Socket是Java自带的基于TCP/IP的通信工具。
  • WebView:WebView是基于谷歌chromium内核的一个可以作为浏览器的视图。

7、数据存储

  • SQLite
  • SharedPreference
  • File
  • ContentProvider
  • 网络存储

8、动画效果

  • View Animation(Tween Animation)
  • Drawable Animation(Frame Animation)
  • Property Animation

9、自定义控件

10、多媒体技术

11、常用Android开源项目学习

├─ 网络库
│  └─ OkHttp
│  └─ Retrofit 
│  └─ Volley
│  └─ android-async-http
│  └─ android-async-http
├─ 数据库:
│  └─ SQLIte
│  └─ Realm
│  └─ greenDao
│  └─ ORMLite
├─ Log库:
│  └─ Logger
│  └─ Hugo
│  └─ Timber
├─ 测试库:
│  └─ Robotium
│  └─ uiautomator
│  └─ Espresso
│  └─ Calabash
│  └─ Appium
├─ 调试库:
│  └─ Stetho
├─ 图表库:
│  └─ MPAndroidChart
│  └─ Hellocharts-Android
│  └─ WilliamChart
├─ 调试库:
├─ 缓存库:
├─ 图片加载库:
│  └─ Picasso
│  └─ Glide
│  └─ Fresco
│  └─ Android-Universal-Image-Loader
├─ 网络解析库:
│  └─ JSON
│       └─ GSON
│       └─ Fast-json
│  └─ HTML
│       └─ Jsoup
│       └─ HTMLParser
├─ 事件总线:
│  └─ AndroidEventBus
│  └─ OTTO
├─ 依赖注入库:
│  └─ ButterKnife
│  └─ AndroidAnnotations
│  └─ Dagger 2
├─ 性能优化:
├─ 插件化:
│  └─ DroidPlugin
├─响应式编程:
│  └─ RxJava
└─└─ Agera
└─热补丁动态修复框架

第四部分:Diycode App开发过程

第五部分:Android 新技术介绍

1、Hotfix:微信、淘宝、支付宝、QQ空间四家好的实践。
2、插件化 章节: DroidPlugin作者张勇
3、响应式编程:RxJava、Agera
4、设计模式:MVC、MVP、MVVM
5、Hybrid:

目前收集的建议:

stay

有些重要的东西漏掉了
Fragment
ViewPager
有些不需要的
HttpClient
GridView
AbsoluteLayout
android-async-http
有些可加可不加的
GridLayout
MVC MVP MVVM
是不是想一个完整的项目需求,拆分成这些对应的知识点,一个个组合就成了一个项目?如果只是这些零散的知识点,跟其他人写的书也没什么区别了

paisy

核心布局:
1. 核心布局居然没有 GridLayout;
2. AbsoluteLayout 似乎很不建议使用,就不用介绍了吧?
3. TableLayout 是 LinearLayout 的子类(我还真不知道),有必要介绍吗?
4. https://github.com/mmin18/FlexLayout 这个库非常强大,比之前推出的 percent layout 强大得多,可以考虑加上。
常用控件:
1. 加上 RecyclerView?
UI交互控件:
不确定是指什么。导航栏 ViewPager?
网络访问:
居然不把 OkHttp + Retrofit 放在第一位。。。

我觉得这个项目可以更多的基于已经广为业界接受,当前最先进的技术。向 Volley,HttpUrlConnection 之流,还是不要讲了吧,真要讲,倒是可以加一个 depracated 章节。