【啰嗦~】自从接触Android以来,大概也有3年时间,基本是跟着项目走,做过的东西不算多也不算少,从当初做上层应用到系统级应用,再到Framework,以及后来接触功耗、性能优化等需求。给我的感觉就是学的东西杂而很难精益求精,我想有必要写点东西,把自己认可的干货或学习心得做个记录,一来以备查询,挽救我这令人心伤的破记忆,二来也可以跟Android相关开发/爱好者共同交流,取长补短,提升自我!有不足之处也请各种践踏,给予批评指正!

---------------------------------------------------------------------------------------------------------------------------------------

从今天开始,对于Android N的源码分析,主要来源于以下三方面的资源:

1、个人项目中所做模块的经验分享

由于目前接触的项目几乎都是建立在Android 5.1和6.0上的,所以与N对比,源码还是出现了很大的改动,从17开始,整机开发的Android系统应该都会是基于7.0以上。目前很多模块对于源码的分析参差不齐,而且很多都大同小异。

基于6.0源码分析的尚且甚少,基于7.0的更少,过旧的源码框架和变更的函数及接口不太适合新手或模块新人去跟踪源码并学习分析,所以后面写的每一篇源码都会基于7.0的版本。(PS:当然Android O也快出来了,有新特性还是会一起分析分享)

这个专区主要的模块应该会集中在系统层面,所分析的源码集中于Framework/下,当然也会涉及到一些其他目录下的源码(只能说,水太深),我会尽量写的基础,写的全面,让你知道去哪找,能够读懂上下文!

2、除项目以外,个人兴趣模块学习经验分享

相信大家除了工作上迫不得已被逼迫的搞一些自己不愿意的模块以外,还是想研究一些自己感兴趣的东西,比如我一直被压迫搞基础框架(AMS、PMS...),其实我想搞网络基础协议(Wifi),比如我被逼迫搞三方兼容性问题(其实就是一个扯淡的工作,很少有改动代码的工作量),其实我想写几行代码!再比如...

由于大部分的经验都集中在框架层,不严格的来说是Android中间层,还是对上层应用组件比较感兴趣的,毕竟也想去研究学习~

对于应用这一块还是新手,希望能够从系统转应用的过程中,尽量多的学习,跟大家多多交流,欢迎打脸!

3、Linux相关的知识点总结和经验分享

我始终坚信想搞好Android,对于Linux的基础掌握是必须的,如果能够很好的了解Linux系统的相关知识(当然能够深入一点是最好的),对于Android的编译和底层(包括JVM)等的学习和掌握还是相当好的!这其中会包含git、shell等知识点的学习!

对于Linux的学习,我也会以专题的形式,写一些干货,与大家一起交流学习!再次鼓励打脸!

---------------------------------------------------------------------------------------------------------------------------------------

【再啰嗦~】以上为个人今后技术总结的蓝图雏形,定个大概方向,后面就慢慢的强化细节吧。总的来说,梦想是好的,能不能坚持下去,还是个问题,不过梦想还是要有的,万一实现了呢?

【Android N_启示录】的更多相关文章

  1. Android启示录——开始Android旅途

    为了明年可以开始进行android程序开发,开始从零开始学习android,仅以此代表第一步开始(*^_^*),开始搭建环境…… 1. 软件下载 http://developer.android.co ...

  2. Android启动篇 — init原理(一)

    ========================================================          ================================== ...

  3. Android 7.0 启动篇 — init原理(一)(转 Android 9.0 分析)

    ========================================================          ================================== ...

  4. Android网络编程(一)HTTP协议原理

    相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley使用方法全解析 A ...

  5. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  6. 配置android sdk 环境

    1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/

  7. Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记

    以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...

  8. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  9. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

随机推荐

  1. 基于Struts自定义MVC-1

    自定义MVC        数据库:Oracle表:User(id,uname,upwd)自定义Struts框架一.定义Action接口 1 import javax.servlet.http.*; ...

  2. Azure Messaging-ServiceBus Messaging消息队列技术系列4-复杂对象消息是否需要支持序列化和消息持久化

    在上一篇中,我们介绍了消息的顺序收发保证: Azure Messaging-ServiceBus Messaging消息队列技术系列3-消息顺序保证 在本文中我们主要介绍下复杂对象消息是否需要支持序列 ...

  3. 学习HTML5一周的收获4

    /* [CSS常用文本属性]  * 1.字体.字号: font-weight:字体的粗细,可选属性值:bold加粗  lighter细体  100~900数值(400正常,700 bold)   fo ...

  4. js数组,字符串常用方法汇总(面试必备)

    字符串: 1.concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串.  2.indexOf() – 返回字符串中一个子串第一处出现的索引.如果没有匹配项,返回 -1 .  3.ch ...

  5. [译]Selenium Python文档:目录

    作者:Baiju Muthukadan 协议:本文档采用知识共享署名 - 共享4.0国际许可. 原英文网址:http://selenium-python.readthedocs.io/index.ht ...

  6. css-dialog样式实现弹框蒙层全屏无需JS计算高度兼容IE7

    <!DOCTYPE html><html><head>  <meta charset="UTF-8">  <title> ...

  7. PHP的错误处理

    PHP的错误处理机制 php的错误处理是比较复杂的, 本文讲解php中所有错误相关的重要知识点做一次梳理, 便于理解php的错误机制. 基础知识 在此之前, 先熟悉一下php error的基础知识 预 ...

  8. mac压缩文件乱码

    http://blog.b3inside.com/apple/solve-file-name-garbled-with-betterzip/

  9. Python 一些有趣的技巧哦!

    #Python 技巧命令 python 如一股清流,可以说屌到飞起,下面咱就来看看一些屌的东西 ### python2 最简单的web服务 ` python -m SimpleHTTPServer 8 ...

  10. PL/SQL编程重点语句输出整理

    create or replace procedure pr_mytest is v_test number() :=; v_char varchar2():='数据库'; c_changl cons ...