《CoderPig's Android Pocket》——开篇引言与目录

《CoderPig’s Android Pocket》——开篇引言与目录


前言

    在写完Android基础入门教程后,有多家出版社曾邀请我写一本Android基础入门
的书,不过都被我一一婉拒了。原因是:这种东西已经写过一遍了,再写一遍对自己
没什么帮助,而且自己也刚进厂没多久,还要熟悉代码,改改BUG啥的。后来前任和
我分手了,原因就不细说了,我也意识到了社会的现实。分手一个多月后,刚好有一
家出版社找到我,说可以直接拿写好的那个入门教程出书,当然里面有些内容是要改
改的,毕竟出版的刊物,不能有低俗的措辞。我并没有立刻决定,而是回家想了一晚,
我在想,写这本书能给我带来什么?我觉得大概是以下两点吧:

结账的方式有两种,一种是一次性买断,按页算,一页30块,卖多少不关你事;
另一种是版税的形式,印刷数 x 书本售价 * 8%,一本书大概赚4,5块的样子
初略算个大概,写一本书也能有将近10K,当然还要扣税之类的。

  • 名气

毕竟写过书,简历上可以加多条:《Android XXX》作者,给人感觉出过书,很厉害;
或者与业内人士交流的时候,说出自己写过书,别人一顿吹捧,牛逼哄哄。

花点时间把教程整理一遍,就能出书,有钱,还能涨名气,10K对于我来说诱惑不小,
那时是,现在也是,毕竟还是拿着微薄的薪水。当然,直接把教程的内容拿来出版,
和博客一模一样,读者会花这个冤枉钱来买这本书吗?当然,可能有一些情怀粉,
硬是要支持小猪,没用也要买一本。我并没有急着去回复联系我的编辑,花了几天,
我去观察自己猪群里的一些初学者的情况,我发现比起传授知识点,更重要的一点是:

技巧技巧!!技巧!!!

毕竟授之以鱼不如授之以渔,我觉得一个初学者需要了解知道这几点:

  1. Android 如今的一些情况,有的人什么都不知道,或者不是从事这个行业的,
    觉得移动开发很挣钱,然后一股脑的涌进来…
  2. 学习Android开发前的一些准备,硬件环境:一台电脑 + 一部手机;
    编程基础:JavaSE,一点XML等等;
  3. Android学习的方向,以及学习路线,有了明确的方向,才不至于晕头转向;
  4. 学习的过程应该遵循:先模仿,后创造的逻辑,基础的东西没掌握,没学会
    走路,就要上天;当你有了一定的技术积累后,再考虑自己去创造一些东西。
  5. 提问的技巧:代码运行或者导入工程处问题了,第一时间不是嚷嚷着出现
    问题了,你首先要做的是,自行是靠原因,看可能是哪里引起的问题,当然
    还需要掌握相关的调试技巧,打LOG,打断点等;
    如果自己解决不了,那就利用搜索引擎,对你的问题或关键字进行查找,开发
    者那么多,肯定不止你一个人遇到这样的问题;
    如果还是没搜到解决问题的方法,接着就需要找人帮忙解决问题了,找一起
    工作的同事或者到群里问,问的时候把日志,相关代码,以及自己觉得的可
    能出问题的原因都贴出来,然后等待别人的回到,另外有一点是,提问题的
    时候注意礼貌,还有一点要铭记:别人没有义务帮你回答问题,贴了问题很
    久或者没人回到,说明要么没人遇到过要么会的大神不在
    毕竟大神都要是上班做事,像我这种捞比,上班时候也不会怎么打开群,只是
    在编译或者闲暇的时候会打开群看看聊天记录,对没有解答的问题进行解答,
    当然是自己能力范围内的问题;
    再接着,问人也没有会的话,找个技术交流社区或论坛,发帖留言,静候答复
    吧。如果这也没解决问题,我也没辙了,先做其他事咯,说不定回头灵光一闪
    就把问题给解了~
    6.一些常用的站点要知道:我跟你讲,入门群的,加进来一堆问Android
    开发工具是什么?AS在哪里下载?AS怎么安装…等等问题,对于这种环境
    相关的问题,我只能说服了,自己写的教程本来就是给新手玩家看的,然后
    看也不看,直接群里问这些问题,我还能说什么?

Android官网:https://developer.android.com/index.html
AndroidDevTools(开发相关工具下载):http://www.androiddevtools.cn/

更多常用站点请到:http://blog.csdn.net/coder_pig/article/details/52438624 自行查看!

然后内容分梯度的,首先,基本的知识点讲解,然后针对很常见的栗子进行剖析,
然后再写一些扩展性的,实际开发中会用到的点。初学者学习完基础的,可以直接
跳过,后面有兴趣再研究扩展部分,或者当成API,有需要的时候再来查这样。
把基本知识点都过完,最后实战做个项目,我不想只是像其他书一样,一个项目写完
就丢在那里,写完就是写完,没一点意义。我希望引入Git版本控制,使用分支管理,
先写一个基于MVC模式的项目,托管到Github上,然后再重构成一个基于MVP模式
的,让读者体会重构的一个过程,以及对架构有初步的了解,当然书本限制,
写两个基本就到头了,但我不想只做到这样。比如我在写一个用了MVVM或者MVVP的
模式的项目,同样托管到Github上,加上Rx,Kotlin,Retroft等。

    说这么久,你可能会问:你这本书,出了吗?叫什么?逼逼那么久,我买还不行么?

遗憾的是,这本书,我只写了两章不到,就太监了。原因有如下三点:

  • 1.工作上的疲于奔命,磨灭了我对开发的热情,早出晚归,
    拖着疲惫的身体回家,还要去看代码,写书,小猪做不到;
  • 2.自我的懒惰与放纵,以及无用的所谓社交消遣;
  • 3.文化与技术水平过低,经常性写不出东西;

综上,留给自己写书的时间可想而知,还有一点是:写着写着我发现自己写成了
一本工具书,而非一本初学者入门指南;为了竟可能的详尽,对于一个知识点,
我总会尽可能地去发散,整理归纳提炼和这个点有关的内容。然后发现,越写
越多,而自己不会的也越来越多。我开始感到焦虑,而且还有一些烦躁不安,
回头审视了下自己,不知不觉做安卓开发也差不多有两个年头了,相比起刚出校门
时有了些许进步,但是和同届的开发者相比差距不是一点半点,有时会感到
很无力,明知道做一件做事情,迫于能力,天赋,环境,也只能达到某个水平,
是一件很无奈的事情…先解决环境的因素吧,不一定要多好,但是至少是自己
喜欢的工作环境,我想每天带着正能量去工作,而不是每天疲于应付,so,
想法是可能是年后会到深圳那边看下机会,毕竟年前还有件最重要的事情,就是
把自己的高数上给过了,接着是把自己手上的项目都完成,大BUG改好,然后都
重构成kotlin版本,也算给我厂留点东西吧,毕竟现在还处在事务总线阶段。
顺便求一波:深圳Android开发相关的内推,毕竟海投我肛不过培训选手,
而且还没拿到学位证,2333

    说回这个系列吧,如题,内容是记录小猪Android开发学习相关的点点滴滴,
毕竟要学的东西太多,不可能全部记住,在学习某个知识点后,把总结和心得记下来,
当开发的时候用到或者遇到对应的问题,再回头来查,这样会更加事半功倍,
对自己有利,也能帮助到后来者,何乐而不为呢?尽管可能会有些耗时~

只想到这么多,后面想到再补上,先把大概的纲要列出来,后面再补充~
(玩了几天的Kotlin,感觉非常酷炫,写多了就不想用Java写代码了,
准备先写几节这个,当然,得等我手上的叉分升级先弄好~嘿嘿 )


零.学习Android之前

  • 0.1 Android学习相关站点

  • 0.2 Android开发博客集合

一.常识与概念相关

  • 1.1 背景相关与系统架构

  • 1.2.Android 5.1 源码目录结构与源码阅读相关

  • 1.3 Android系统的启动流程浅析

  • 1.4 Android应用的安装流程浅析

  • 1.5 Android应用的启动流程浅析


二.工具相关

  • 2.1 抓包工具
  • 2.1.1 Charles 抓包工具的使用
  • 2.1.2 Fiddler 抓包工具的使用

  • 2.2 反编译工具

  • 2.2.1 ApkTool + dex2jar + JD-GUI
  • 2.2.2 Procyon + Jadx + AndroidDecompiler
  • 2.2.3 Google官方反编译工具:ClassyShark
  • 2.2.4 Android Killer
  • 2.3 Android Studio使用

  • 2.4 网页工具/插件

  • 2.5 adb命令合集

  • 2.6 Linux命令合集


三.项目规范,结构,代码风格,协作

  • 3.1 Android编码规范

  • 3.2 Git版本控制

  • 3.3 在AS中的使用Lambda表达式(Retrolambda插件)

  • 3.4 异步响应库RxJava

  • 3.5 Android中的Swift——酷炫Kotlin

  • 3.6 MVC

  • 3.7 MVP

  • 3.8 MVVM

  • 3.9 MVPVM

  • 3.10 CleanArchitecture

  • 3.11 AOP(面向切面编程)


四.性能检测与优化

  • 4.1 内存检测与优化

  • 4.2 流畅度检测与优化

  • 4.3 网络优化

  • 4.4 APK安装包瘦身

  • 4.5 单元测试

  • 4.6 自动化测试


五.混淆打包,持续集成,应用分发,插件化,APK叉分升级

  • 5.1 Gradle

六.Android UI(User Interface)相关

  • 6.1 布局

  • 6.2 基本UI控件

  • 6.3 V4包中的UI中UI控件

  • 6.4 V7包中的UI控件

  • 6.5 Material Design与Design库

  • 6.6 第三方UI库

  • 6.7 事件分发机制

  • 6.8 Drawable

  • 6.9 Bitmap与图片加载

  • 6.10 Android动画(帧,补间,属性动画)

  • 6.11 自定义View

  • 6.12 屏幕适配


七.Android四大组件,Intent与Fragment

  • 7.1 Activity(活动)

  • 7.2 Service(服务)

  • 7.3 BroadcastReceiver(广播)

  • 7.4 ContentProvider(内容提供者)

  • 7.5 Intent(意图)

  • 7.6 Fragment(碎片)


八.数据存储

  • 8.1 文件存储读写

  • 8.2 SharedPreference保存用户偏好参数

  • 8.3 SQLite数据库


九.网络编程

  • 9.1 Http协议相关

  • 9.2 XML与JSON数据解析

  • 9.3 网络状态获取相关

  • 9.4 文件上传与下载

  • 9.5 网络请求相关的开源库

  • 9.5 WebService调用

  • 9.6 Socket网络编程

  • 9.7 Https


十.Android MultMedia(多媒体)


十一.相关服务与系统参数,杂项


十二.安全相关


十三.地图相关


十四.推送与即时聊天


十五.支付


十六.Wifi相关


十七.蓝牙


十八.Hybrid App

  • 18.1 前端基础

  • 18.2 PhoneGap

  • 18.3 ionic

  • 18.4 React Native


十九.OpenGL与OpenCV


二十.逆向工程


二十一.Framework层开发


你可能感兴趣的:(CoderPig's,Android,Pocket)