Android 技术栈总结

Android 技术栈总结

开发工具

IDE

AndroidStudio

  • Android Studio使用总结

  • 神奇的Android Studio Template

  • 让你变懒的 Android Studio Live Templates

  • 你真的了解Instant Run吗?

编译工具 & 反编译 & 安全

  • 官方:Configure your build
  • GRADLE构建最佳实践
  • Gradle 完整指南(Android)
  • App环境分离的实现:Android篇
  • Android Apk打包过程
  • 深入浅出Android打包
  • 使用“aapt dump”查看APK内容
  • Android 反编译初探 应用是如何被注入广告的

jcenter & maven

  • Android 快速发布开源项目到jcenter

Java 代码质量 CodeReview

  • 让 CodeReview 这股清流再飞一会儿
  • 使用Lint 和 Annotations来提升代码质量
  • [Google] Improve Your Code with Lint
  • [Google] Improve Code Inspection with Annotations
  • 提高代码质量-工具篇

Structure

App Resource

  • [CodePath] Understanding App Resources (Understanding Strings and Resources)

Application

  • [CodePath] Understanding the Android Application Class (Custom application object)

Context

  • [CodePath] Using Context (What is context and how is it used?)

Configuration

  • [CodePath] Handling Configuration Changes (Screen Rotation)

Other

  • [CodePath] Organizing your Source Files (Cleaning up source of your apps)

UI相关

Views and Layouts

  • [CodePath] Constructing View Layouts (How to layout views)
  • [CodePath] Defining Views and their Attributes (Gravity, Margin, Padding, etc)
  • Android xml资源文件中@、@android:type、@*、?、@+含义和区别

TextView

  • [CodePath] Working with the TextView (Properties, Drawables, Custom Fonts)
  • 强大的SpannableStringBuilder

ImageView & Bitmap

  • [CodePath] Working with the ImageView (Drawables, Size and Scale, Density, Raw Bitmaps)
  • Android总结 - ImageView
  • Android Bitmap面面观
  • Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存?
  • Android 高仿微信语音聊天页面高斯模糊效果
  • 教你一分钟实现动态模糊效果

include merge ViewStub

  • Android抽象布局——include、merge 、ViewStub

ViewSwitcher、TextSwitcher、ImageSwitcher

  • ViewSwitcher、TextSwitcher、ImageSwitcher 使用方法

WebView

  • [CodePath] Working with the WebView
  • WebView你真的熟悉吗?看了才知道

ScrollView

  • [CodePath] Working with the ScrollView
  • [CodePath] Implementing a Heterogenous ListView ScrollView

Soft Keyboard

  • [CodePath] Working with the Soft Keyboard

Interaction

DialogFragment

  • [CodePath] Dialogs with DialogFragment (Displaying a content overlay)

Menus and Popups

  • [CodePath] Menus and Popups (Context Menu, PopupMenu, PopupWindow)
  • Android总结 - Menu

Toast

  • [CodePath] Displaying Toasts (Quick notices and includes custom views)

ToolBar & ActionBar

  • [CodePath] Using the App Toolbar (ActionBar Replacement)
  • Toolbar作为ActionBar与标题居中

SystemUI

  • 管理System UI (状态栏 + 导航栏) ,翻译自[Google] Managing the System UI

Snackbar

  • [CodePath]Displaying the Snackbar (Quick notices with actions)

Floating Action Button

  • [CodePath] Floating Action Buttons (Android 5.0, Promoted Action)

CoordinatorLayout

  • [CodePath] Handling Scrolls with CoordinatorLayout (Collapsing toolbars)
  • 一个神奇的控件——Android CoordinatorLayout与Behavior使用指南
  • 源码看CoordinatorLayout.Behavior原理

BottomSheet

  • Android 原生BottomSheet 介绍及坑
  • Material Design系列,Behavior之BottomSheetBehavior与BottomSheetDialog

重复周期任务

  • [CodePath] Repeating Periodic Tasks (Handler, ScheduledThreadPoolExecutor)
  • using-with-alarmmanager-for-periodic-tasks
  • Scheduling Repeating Alarms
  • 关于使用AlarmManager的注意事项
  • ThreadPoolExecutor 官方使用说明

AdapterViews

ListView

  • Android之ListView的getItemViewType和getViewTypeCount

RecyclerView

  • 基础和使用

    • [CodePath](Using the RecyclerView (Android 5.0))
    • RecyclerView 技术栈
  • Adapter 和 ViewHolder

    • 打造属于RecyclerView的万能适配器Adapter和ViewHolder
  • RecyclerView LayoutManager布局

    • [CodePath] Heterogenous Layouts inside RecyclerView (Android 5.0)
  • HeaderView and FooterView

    • RecyclerView添加Header的正确方式
    • Android 优雅的为RecyclerView添加HeaderView和FooterView
  • 下拉刷新 和 自动加载

    • [CodePath] Implementing Pull to Refresh Guide
    • [CodePath]Endless Scrolling with AdapterViews and RecyclerView (Infinite pagination)
    • RecyclerView 实现下拉刷新和自动加载
  • 开源库整理

    • RecyclerView 开源框架大集合
    • 你必须了解的RecyclerView的五大开源项目-解决上拉加载、下拉刷新和添加Header、Footer等问题

CardView

  • [CodePath] Using the CardView

Navigations

  • [CodePath] Common Navigation Paradigms (Tabs, Swipe-able Views, Pull-out Drawer)
  • [CodePath] Common Implicit Intents (Making a Call, Sending a Text, Opening a URL)
  • [CodePath] Sharing Content with Intents (and ShareActionProvider)

Designing and Styling Views

  • [CodePath] Android Design Guidelines (Overview of Android design standards)

Drawable & Canvas

  • [CodePath] Drawables (and how to polish UI views)

  • Android的矢量图支持 - VectorDrawable

  • Android设计中的.9.png

  • Android 2D绘图解析之 Canvas,Paint

  • Canvas之translate、scale、rotate、skew方法讲解!

  • LoadingDrawable源码分析

Styles and Themes 样式 主题

  • [CodePath] Styles and Themes (Consolidating view styles)
  • [CodePath] Developing Custom Themes (Integrating drawables, styles and themes)
  • Attr、Style和Theme详解
  • Android主题换肤 无缝切换

Material Design

  • [CodePath] Material Design Primer (Lollipop Design Overview)
  • [Google] 面向开发者的 Material Design
  • [CodePath] Dynamic Color using Palettes (Adaptive colors, Android 5.0)

Design Support Library

  • [CodePath] Design Support Library (Material Design Library)

Animation 动画

  • [CodePath] Animations (Animating views, layouts, activities and more)

  • [CodePath] Ripple Animation (Android 5.0)

  • [CodePath] Circular Reveal Animation (Android 5.0)

  • Activity 动画

    • 酷炫的Activity切换动画,打造更好的用户体验
    • 实现Activity跳转动画的五种方式
  • Transition 动画

    • Getting Started with Activity & Fragment Transitions
    • [CodePath] Shared Element Activity Transition (Android 5.0)
  • 自定义动画

    • Android自绘动画实现与优化实战——以Tencent OS录音机波形动画为实例
  • Interpolator 动画插值器

    • PathInterpolator简介 , 贝塞尔曲线
    • Android 自带Interpolator(插值器)讲解
  • 其他

    • 开发者选项中动画时长原理分析(Android M)
    • Android动画FillEnabled、FillBefore、FillAfter理解

Custom Views 自定义控件 自定义View

  • [CodePath] Defining Custom Views (Needs Attention)
  • [CodePath] Extending SurfaceView (Needs Attention)
  • Android SurfaceView 源码分析及使用
  • 自定义View系列教程
  • 自己总结:带有一键清空功能的EditText
  • 浅谈Android自定义锁屏页的发车姿势
  • 实现类似新浪微博帖子显示(2)——话题、@好友、表情解析工具类

Component

Activity

  • Activity 任务、返回栈、保存Activity的状态
  • 彻底弄懂Activity四大启动模式
  • [CodePath] Navigation and Task Stacks (Controlling the behavior of the task stack)

Broadcast

  • BroadcastReceiver的注册和使用

Service

  • Service使用总结

Fragments

  • [CodePath] Creating and Using Fragments
  • [CodePath] Displaying a DialogFragment
  • [CodePath] Sliding Tabs with PagerSlidingTabStrip
  • [CodePath] ViewPager with FragmentPagerAdapter
  • [CodePath] Fragment Navigation Drawer
  • 个人总结 - Fragment

Content Providers

  • Android数据库升级攻略
  • ContentProvider 的批处理操作

Permissions 权限

  • [CodePath] Understanding App Permissions
  • [CodePath] Managing Runtime Permissions with PermissionsDispatcher
  • 聊一聊Android 6.0的运行时权限

后台任务

  • [CodePath] Starting Background Services (with IntentService and Receivers)
  • [CodePath] Notifications (Persistent Notices on the Dashboard)
  • Notification 使用
  • [CodePath] Push Messaging (Parse Push and Broadcast Receiver Overview)
  • [CodePath] Managing Threads and Custom Services (Looper, Handler, ThreadPoolExecutor)

Networking and Models

Network Requets

HTTP & HTTPS

  • Android网络编程(一)HTTP协议原理
  • Android 偶遇HTTPS
  • HTTPS 理论详解与实践
  • 详解Https是如何确保安全的?

Native API

  • [CodePath] Sending and Managing Network Requests (API Calls, Image Downloading)

OkHttp API

  • [CodePath] Networking with the OkHttp Library

Retrofit API

  • [CodePath] Consuming APIs with Retrofit
  • [Bugly] 深入浅出 Retrofit
  • Retrofit 2.0 超能实践系列
    • Retrofit 2.0(一) 超能实践,完美支持Https传输
    • Retrofit2.0(二) 完美同步Cookie实现免登录
    • Retrofit 2.0 超能实践(三),轻松实现文件/图片上传
    • Retrofit 2.0 超能实践(四),完成大文件断点下载
    • 基于Retrofit2.0 封装的超好用的RetrofitClient工具类
    • 玩转IOC,教你徒手实现自定义的Retrofit框架

Display And Download Images

Fresco

  • Displaying Images with the Fresco Library

FileTransfer 文件下载

  • Android快速实现文件下载(只有4行代码)
  • 多线程断点下载

Socket

  • [CodePath] Sending and Receiving Data with Sockets

Persistence

  • [CodePath] Persisting Data to the Device (Preferences, Files, SQLite, ORMs)
  • [Android总结 - 保存数据到存储器中]
  • [CodePath] Storing and Accessing SharedPreferences
  • [CodePath] Settings with PreferenceFragment
  • [CodePath] Local Databases with SQLiteOpenHelper
  • [CodePath] Storing Secret Keys in Android (API keys, credentials)

Sensors and Device SDKs

  • [CodePath] Accessing the Camera and Stored Media (Camera, Photo Roll)
  • [CodePath] Retrieving Location with LocationServices API (Location)
  • [CodePath] Listening to Sensors using SensorManager (Light, Accelerometer)
  • [CodePath] Audio Playback and Recording (MediaPlayer)
  • [CodePath] Video Playback and Recording (VideoView)
  • 自动抢红包,自动安装原理之AccessibilityService

Testing

  • [CodePath] Android Testing Options

  • [CodePath]Unit Testing with Robolectric

  • [CodePath]UI Testing with Espresso

  • 解读Android官方MVP项目单元测试

  • Android单元测试 - 如何开始?


Android JNI

  • 关于Android的.so文件你所需要知道的

Libraries (开源库)

自己使用

  • ButterKnife
    • [CodePath] Reducing View Boilerplate with Butterknife (View Annotations)
    • 深入理解 ButterKnife,让你的程序学会写代码

汇总

  • [CodePath] Must Have Libraries (Networking, Persistence, Compatibility, Convenience, etc)
  • [CodePath] Popular External Tools (Analytics, Crash Reporting)
  • awesome-android

动画相关

  • Transitions-Everywhere Material Design 中 Transition动画,向后兼容
  • AndroidViewAnimations Android Property Animation, Animator

TroubleShooting

  • Android进程保活招式大全

  • Android-完全退出当前应用程序-新公司学习到的细节

  • Android子线程中更新UI的3种方法

  • ListView、RecyclerView、ScrollView里嵌套ListView 相对优雅的解决方案:NestFullListView

  • 在滚动列表中实现视频的播放(ListView & RecyclerView)

  • ViewPager 嵌套百度地图事件冲突的解决方法

  • 防止按钮重复点击

  • Android系统中Parcelable和Serializable的区别

  • android actionBar searchview 默认展开,并且放大镜图标在编辑框内。

  • Android实现点击AlertDialog上按钮时不关闭对话框的方法

  • Splash实践 , 启动页、开屏页、广告页

  • 26款优秀的Android逆向工程工具

  • 那些值得你试试的Android竞品分析工具

  • Windows Git Tip: Hide ^M (Carriage Return) in Diff


常用代码

Android 相关

  • AndroidUtils 自己总结
  • Google Samples
  • Android开发人员不得不收集的代码
  • project_and_code_guidelines

第三方扩展库

  • guava
    The Guava project contains several of Google's core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.

    Google Guava官方教程(中文版)

  • joda-time
    Joda-Time provides a quality replacement for the Java date and time classes.

  • commons-lang
    Provides extra functionality for classes in java.lang.

  • commons-collections
    Extends or augments the Java Collections Framework.


APP Advance

Architecture 架构

  • [CodePath] Architecture of Android Apps (Understanding how apps should be structured)
  • 最全的安卓架构合集
  • Google MVP Examples
  • Android架构思考:模块化、多进程

响应式编程

Rx*

  • Android开发技术周报特刊之RxJava&RxAndroid Issue#1

Android 插件化(组件化)开发

  • 蘑菇街 App 的组件化之路

Android 热修复

  • Android热修复技术专题:来自微信、淘宝、支付宝、QQ空间的热修复方案
  • 当你准备开发一个热修复框架的时候,你需要了解的一切
  • Android 动态链接库加载原理及 HotFix 方案介绍

Hybrid APP

性能优化

  • [Google] Best Practices for Performance
  • Android 性能优化典范系列
  • Android客户端性能优化(魅族资深工程师毫无保留奉献)

UI 优化

  • Android性能优化-过度绘制解决方案
  • Android UI性能优化 检测应用中的UI卡顿

内存优化

  • Android DiskLruCache完全解析,硬盘缓存的最佳方案
  • 安卓面试题 5 – 关于内存泄漏
  • 从OnTrimMemory角度谈Android代码内存优化
  • 说一说Android Studio和IDEA中一个很有用的内存调试插件

网络优化

  • APP弱网络条件下,体验优化之道

Android Framework

System

  • 详解 Android 是如何启动的

AMS

  • [译]Android Application启动流程分析

WMS

  • Android 的窗口管理系统 (View, Canvas, WindowManager)
  • 像360悬浮窗那样,用WindowManager实现炫酷的悬浮迷你音乐盒(上)

InputSystem

  • Android 5.0(Lollipop)事件输入系统(Input System)
  • TouchEvent
    • 可能是讲解 Android 事件分发最好的文章
    • 那些你应该知道却不一定知道的——View坐标分析汇总

View System

  • Android LayoutInflater深度解析 给你带来全新的认识

你可能感兴趣的:(Android 技术栈总结)