您的位置:首页 > 移动开发

Android App 开发技术图谱 - 简书

2017-10-27 16:39 344 查看
Android App 开发技术图谱 - 简书

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-35169517-1', 'auto');
ga('send', 'pageview');

var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "//hm.baidu.com/hm.js?0c0e9d9b1e7d617b3e6842e85b9fb068";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();





[/i]写文章
注册
登录

首页[/i]

下载App[/i]

[/i]

Android App 开发技术图谱



anly_jun

2016.07.26 23:32*
字数 744

引言:
今天偶然看到StuQ的技术图谱, 找了找竟然没有Android开发的. 想起之前自己弄了一个, 翻出来看看并不过时, 整理下发出, 大家共同进步.

转载请注明出处: 简书/anly_jun/Android App 开发技术图谱

图片比较大, 加载较慢, 请等待~~



Android_App_Skill_Map

1. 操作系统

Windows/MacOSX/Linux

2. 编程语言

Java

HTML/JS (Hybrid/Web App)

C/C++ (NDK)

SQL (DB)

Kotlin

3. 开发工具

3.1 IDE

Android Studio

Eclipse

3.2 调试工具

3.2.1 网络调试

Charles

Wireshark

Fiddler

tcpdump

Paw/Postman

3.2.2 内存分析

monitor

MAT

3.2.3 Android tools

adb

draw9patch

hierarchyviewer

uiautomatorviewer

3.3 版本管理

3.3.1 Git

Git命令

Github/GitLab

3.3.2 SVN

3.4 CodeReview

Gerrit

Github pull request

3.5 Bug/任务管理

Redmine

JIRA

Bugzilla

Teambition

Tower

3.6 编译工具

Gradle

3.7 持续集成

Jenkins

Travis CI

3.8 应用分发

蒲公英

fir.im

1. App基础

1.1 基本组件

Activity

Service

Content Provider

Broadcast Receiver

Intent/Intent Filter

App Manifest File

1.2 UI

Layouts

Widgets

Resources

Animations

设备适配

1.3 Connectivity

WiFi

Mobile网络

网络状态监听

1.4 MultiMedia

Audio/Video

Camera/Gallery

1.5 GPS&Location&Map

1.5.1 系统定位

GPS定位

Network定位

3rd Map定位

百度Map

高德Map

2. App进阶

2.1 Process&Thread

2.1.1 Process

Linux进程

App进程原理

2.1.2 AIDL

实现方式

原理

2.1.3 Handler/Looper/MQ/Thread

2.1.4 Loader

2.1.5 AsyncTask

2.2 性能优化

2.2.1 ANR

2.2.2 布局层级性能优化

2.3 内存优化

2.3.1 内存检测工具

2.3.2 内存分析工具

2.3.3 Bitmap优化

2.3.4 内存泄露查找及分析

2.5 网络优化

2.5.1 API优化

2.5.2 低网速下优化

2.5.3 流量使用优化

判断当前网络类型

使用缓存

2.6 单元测试

3. App高级

3.1 相关原理熟悉

3.1.1 Activity

启动流程

生命周期回调原理

与View/Window的关系

与Fragment的关系

3.1.2 View/Window

View/Window关系

View渲染

View事件分发处理流程

3.1.3 编译打包

编译打包原理

逆向工程分析

热修复

3.2 Hybrid App

3.2.1 与Native App的异同

3.2.2 主流框架

PhoneGap

ionic

React Native

3.3 架构能力

3.3.1 架构

MVC

MVP

MVVM

Flux

Clean Architecture

3.3.2 App框架

分包

分层

3.3.3 设计模式

OOD原则

常用设计模式运用

3.4 ART&Dalvik

AOT compilation

GC

Bytecode&.Dex

3.5 自动化测试

monkey/monkey runner

UIAutomator

Espresso

Robotium

4. 扩展学习

4.1 响应式编程

4.1.1 Rx

RxJava

RxAndroid

RxBinding

4.1.2 Agera

4.2 主流开源库

4.2.1 快速开发

Android Annotation

ButterKnife

4.2.2 Views

太多

4.2.3 HTTP模型

Retrofit

OkHttp

Volley

4.2.4 图片处理

Glide

Fresco

Picasso

UIL

4.2.5 依赖注入

Dagger2

4.2.6 数据库

ORMLite

GreenDAO

Realm

Sugar

4.2.7 辅助

Logger

LeakCanary

DbInspector

本文已上传至Github AndroidDevResources 项目, 欢迎Fork, 提出意见.

</div>
<!--  -->

<div class="show-foot">
<a class="notebook" href="/nb/2866991">
<i class="iconfont ic-search-notebook"></i>
<span>Android经验谈</span>


© 著作权归作者所有

举报文章

<!-- 文章底部作者信息 -->
<div class="follow-detail">
<div class="info">
<a class="avatar" href="/u/bc1dacc65fae">
<img src="//upload.jianshu.io/users/upload_avatars/851999/e2599a8c087e.png?imageMogr2/auto-orient/strip|imageView2/1/w/96/h/96" alt="96" />


anly_jun

</div>
<div class="signature">看看书, 写写字; 捣鼓捣鼓小技术.


个人博客: http://blog.lmj.wiki

<div class="support-author"></div>

<div class="meta-bottom">
<div class="btn like-group"></div>
<div class="share-group">
<a class="share-circle" data-action="weixin-share" data-toggle="tooltip" data-original-title="分享到微信">
<i class="iconfont ic-wechat"></i>
</a>
<a class="share-circle" data-action="weibo-share" data-toggle="tooltip" href="javascript:void((function(s,d,e,r,l,p,t,z,c){var%20f='http://v.t.sina.com.cn/share/share.php?appkey=1881139527',u=z||d.location,p=['&url=',e(u),'&title=',e(t||d.title),'&source=',e(r),'&sourceUrl=',e(l),'&content=',c||'gb2312','&pic=',e(p||'')].join('');function%20a(){if(!window.open([f,p].join(''),'mb',['toolbar=0,status=0,resizable=1,width=440,height=430,left=',(s.width-440)/2,',top=',(s.height-430)/2].join('')))u.href=[f,p].join('');};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else%20a();})(screen,document,encodeURIComponent,'','','http://cwb.assets.jianshu.io/notes/images/4976621/weibo/image_88b289420c2a.jpg', '推荐 @anly-jun 的文章《Android App 开发技术图谱》( 分享自 @简书 )','http://www.jianshu.com/p/39c63eff3c36?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=weibo','页面编码gb2312|utf-8默认gb2312'));" data-original-title="分享到微博">
<i class="iconfont ic-weibo"></i>
</a>
<a class="share-circle" data-toggle="tooltip" href="http://cwb.assets.jianshu.io/notes/images/4976621/weibo/image_88b289420c2a.jpg" target="_blank" data-original-title="下载长微博图片">
<i class="iconfont ic-picture"></i>
</a>
<a class="share-circle more-share" tabindex="0" data-toggle="popover" data-placement="top" data-html="true" data-trigger="focus" href="javascript:void(0);" data-content='
<ul class="share-list">
<li><a href="javascript:void(function(){var d=document,e=encodeURIComponent,r='http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url='+e('http://www.jianshu.com/p/39c63eff3c36?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=qzone')+'&title='+e('推荐 anly_jun 的文章《Android App 开发技术图谱》'),x=function(){if(!window.open(r,'qzone','toolbar=0,resizable=1,scrollbars=yes,status=1,width=600,height=600'))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();"><i class="social-icon-sprite social-icon-zone"></i><span>分享到QQ空间</span></a></li>
<li><a href="javascript:void(function(){var d=document,e=encodeURIComponent,r='https://twitter.com/share?url='+e('http://www.jianshu.com/p/39c63eff3c36?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=twitter')+'&text='+e('推荐 anly_jun 的文章《Android App 开发技术图谱》( 分享自 @jianshucom )')+'&related='+e('jianshucom'),x=function(){if(!window.open(r,'twitter','toolbar=0,resizable=1,scrollbars=yes,status=1,width=600,height=600'))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();"><i class="social-icon-sprite social-icon-twitter"></i><span>分享到Twitter</span></a></li>
<li><a href="javascript:void(function(){var d=document,e=encodeURIComponent,r='https://www.facebook.com/dialog/share?app_id=483126645039390&display=popup&href=http://www.jianshu.com/p/39c63eff3c36?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=facebook',x=function(){if(!window.open(r,'facebook','toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330'))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();"><i class="social-icon-sprite social-icon-facebook"></i><span>分享到Facebook</span></a></li>
<li><a href="javascript:void(function(){var d=document,e=encodeURIComponent,r='https://plus.google.com/share?url='+e('http://www.jianshu.com/p/39c63eff3c36?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=google_plus'),x=function(){if(!window.open(r,'google_plus','toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330'))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();"><i class="social-icon-sprite social-icon-google"></i><span>分享到Google+</span></a></li>
<li><a href="javascript:void(function(){var d=document,e=encodeURIComponent,s1=window.getSelection,s2=d.getSelection,s3=d.selection,s=s1?s1():s2?s2():s3?s3.createRange().text:'',r='http://www.douban.com/recommend/?url='+e('http://www.jianshu.com/p/39c63eff3c36?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=douban')+'&title='+e('Android App 开发技术图谱')+'&sel='+e(s)+'&v=1',x=function(){if(!window.open(r,'douban','toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330'))location.href=r+'&r=1'};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})()"><i class="social-icon-sprite social-icon-douban"></i><span>分享到豆瓣</span></a></li>
</ul>
'>更多分享</a>
</div>
</div>
<div id="vue_comment"></div>


<script type="application/json" data-name="page-data">{"user_signed_in":false,"locale":"zh-CN","os":"windows","read_mode":"day","read_font":"font2","note_show":{"is_author":false,"is_following_author":false,"is_liked_note":false,"follow_state":0,"uuid":"2a54a476-b4fe-4d7d-adcd-132365df1e3d"},"note":{"id":4976621,"slug":"39c63eff3c36","user_id":851999,"notebook_id":2866991,"commentable":true,"likes_count":94,"views_count":7308,"public_wordage":744,"comments_count":10,"total_rewards_count":1,"is_author":false,"author":{"nickname":"anly_jun","total_wordage":68811,"followers_count":1860,"total_likes_count":2150}}}</script>

<script src="//cdn2.jianshu.io/assets/babel-polyfill-676833c6a4d68573b4c3.js" crossorigin="anonymous"></script>
<script src="//cdn2.jianshu.io/assets/web-base-3b4a327922f6c3b40878.js" crossorigin="anonymous"></script>


(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: