Android-Tips

This is an awesome list of tips for android.

If you are a beginner, this list will be the first choice for you when you have a difficult time.

Welcome Star and Fork,
your support is my greatest affirmation.


学习 Android 至今,大大小小的坑没少踩过,庆幸的是,在强大的搜索引擎与无私奉献的人们的帮助下,那些坑都顺利地被填平了。

为了日后在遇到同样的问题时,能免于再次搜索带来的麻烦,我养成了收藏书签的习惯,随着书签(Tips)的日积月累,我想,是时候该有这个项目了。

如果你是个 Android 新人,又不善于搜索或不知道从何开始,那么我相信这份列表,将会成为你的首选。

当然,这份列表并不完美,如果不幸,这里没有你所踩到的坑,或者对于某个问题你有更好的 Tips,欢迎与大家分享,让我们一起来维护这个项目!

你可以通过 Pull request 的形式进行提交,当然也欢迎 Star 与 Fork :)

由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交 Issue,Contributers
也可以使用 Utils 里面的 URLChecker 来检测列表里链接的有效性,你可以选择更改为新的有效连接,或者把需要梯子的文章以
Markdown 的形式保存在 Utils/Content 目录下,并注明原文章链接和作者。


目录


A

ADB

  1. Installing ADB on Windows 7
  2. Android ADB常用命令
  3. Android开发调试工具ADB的使用
  4. Android通过Wifi来调试你的应用
  5. Adb connection Error:远程主机强迫关闭了一个现有的连接

Adapter

  1. Android简便通用的SimpleBaseAdapter
  2. Android数据适配器(Adapter)优化:使用高效的ViewHolder
  3. Android 快速开发系列 打造万能的ListView GridView 适配器

AIDL

  1. android进程间通信:使用AIDL
  2. Android AIDL使用详解
  3. android跨进程通信(IPC): 使用AIDL
  4. Android中的跨进程通信的实现(一)——远程调用过程和aidl
  5. Android Studio下如何配置AIDL文件

Android-Async-Http

  1. Asynchronous Http Client for Android
  2. 快速Android开发系列网络篇之Android-Async-Http
  3. android-async-http框架库使用基础

Android
Studio

  1. Android Studio导入项目
  2. Android Studio 简单设置
  3. Android Studio 简介及导入 jar 包和第三方开源库方法
  4. Android Studio使用技巧系列教程(一)
  5. Android Studio中如何使用Git和Github来管理项目
  6. Android Studio 权威教程
  7. 倍数提高工作效率的Android Studio奇技
  8. Android Studio 快捷键(Windows)
  9. Android Studio详细教程汇总
  10. Android Studio有什么奇技淫巧

AQuery

  1. AQuery Image Loading
  2. Android之使用Android-query框架进行开发(一)

AsyncTask

  1. Android AsyncTask完全解析,带你从源码的角度彻底理解
  2. Android中AsyncTask的简单用法
  3. Android开发者:你真的会用AsyncTask吗?
  4. 深入解析AsyncTask,多例子版

Annotations

  1. AndroidAnnotations框架入门教程一之介绍
  2. How to stop an animation (cancel() does not work)

B

Bitmap

  1. 图片处理
  2. Android中自定义布局中加载图片BitmapFactory.options详解
  3. Android学习笔记进阶16之BitmapShader
  4. Android 优化Bitmap避免OutOfMemoryError
  5. Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
  6. Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存?

Broadcast

  1. 【Android】BroadCast广播机制应用与实例
  2. 玩转Android---组件篇---Broadcast Receiver(广播接收器)
  3. 【Android】动态注册广播接收器

C

Callback

  1. How to Define Callbacks in Android?
  2. 一个经典例子让你彻彻底底理解java回调机制
  3. Java设计模式-回调函数和观察者模式

CardView

  1. Android5.0新控件CardView的介绍和使用
  2. Android CardView Example
  3. Android CardView Widget – Add Cards to a List using
    RecyclerView

Configuration
Change

  1. Android Configuration change引发的问题及解决方法
  2. Handling Runtime Changes

Context

  1. android学习—— context 和 getApplicationContext()
  2. Android中Context详解 ---- 你所不知道的Context
  3. Difference between getContext()
    , getApplicationContext() , getBaseContext() and “this”

CoordinatorLayout

  1. CoordinatorLayout与滚动的处理
  2. Handling Scrolls with CoordinatorLayout

D

Download

  1. Download a file with
    Android, and showing the progress in a ProgressDialog
     译文
  2. Java 服务器端支持断点续传的源代码【支持快车、迅雷】
  3. Java 多线程断点下载文件
  4. Android 后台Service下载 (一)
  5. Android网络编程 --断点续传下载文件
  6. android 多线程断点续传下载 一

Dagger


E

EventBus

  1. EventBus使用详解(一)——初步使用EventBus
  2. 快速Android开发系列通信篇之EventBus
  3. Android EventBus实战 没听过你就out了

F

Fragment
- 碎片

  1. Android Fragment完全解析,关于碎片你所需知道的一切
  2. Android Fragment 你应该知道的一切
  3. Android系列之Fragment(二)----Fragment的生命周期和返回栈
  4. 处女男学Android(九)---Fragment进阶篇之Fragment生命周期和回退栈
  5. Fragment笔记整理
  6. Android实战技巧:Fragment的那些坑
  7. android Fragments详解四:管理fragment
  8. Android Fragment 嵌套使用(Nested Fragments)

FlowLayout
- 自定义流布局

  1. Android 自定义ViewGroup - 实现FlowLayout - 本文出自【张鸿洋的博客】

G

Glide

  1. Glide 一个专注于平滑滚动的图片加载和缓存库
  2. Google推荐的图片加载库Glide介绍

Gradle

  1. 用Gradle 构建你的android程序
  2. Android Studio系列教程四--Gradle基础
  3. 使用Gradle构建Android项目
  4. 使用Gradle管理你的Android Studio工程
  5. 灵活强大的构建系统Gradle
  6. Gradle Android Could not find method testPackage()
  7. Android Studio 1.0 Gradle Error with getConfiguration()
  8. Android打包的那些事
  9. 深入理解Android之Gradle
  10. gradle build fails on lint task
  11. “Gradle Version 2.10 is required.” Error

greenDao

  1. ORM 框架之 greenDAO 使用心得
  2. SQLite数据库框架ORMLite与GreenDao的简单比较
  3. 在AndoridStudio中引入GreenDAO

GridView

  1. Android入门第八篇之GridView(九宫图)
  2. 用Volley让GridView加载网络图片
  3. Add space to top and bottom of GridView

H

Hotfix

  1. Android热更新实现原理
  2. Android App 线上热修复方案
  3. Nuwa

Handler

  1. Handler和他的小伙伴们

I

ImageView

  1. [Android] ImageView.ScaleType设置图解

Immersive
Full-Screen Mode

  1. Using Immersive Full-Screen Mode 译文

Intent

  1. Android系列教程之十:Intents and Intent Filters(一)
  2. Android高手进阶教程(十七)之---Android中Intent传递对象的两种方法(Serializable,Parcelable)!
  3. Intent filter 关于Action、Category属性详解---附带实例源码
  4. startActivityForResult用法详解
  5. Android 开发笔记——通过 Intent 传递类对象

J

Java
8

  1. Modern Java - A Guide to Java 8
  2. Java8系列 - Java8简明指南

Json

  1. Android系列---JSON数据解析
  2. android json解析及简单例子
  3. Android开源库--Gson谷歌官方json解析库
  4. DataContract4A-简化Json解析与生成

JNI

  1. Hello JNI

K

Kotlin

  1. Kotlin Programming Language
  2. Kotlin中文站点
  3. 使用Kotlin进行Android开发

L

ListFragment

  1. Android App组件之ListFragment -- 说明和示例
  2. Android 使用ListFragment显示列表

ListView

  1. 在Activity中响应ListView内部按钮的点击事件

Log

  1. Logger工具类
  2. KLog

M

MessageDigest

  1. Java利用MessageDigest获取字符串或文件MD5详解
  2. 类 MessageDigest

Material
Design

  1. Google Material Design: Everything You
    Need to Know
  2. An exploration in Material Design
  3. 谢谷歌大神传我动画设计30年功力
  4. Codelab for Android Design Support Library used in I/O Rewind
    Bangkok session

MVP

  1. 浅谈 MVP in Android
  2. Android中的MVP
  3. 开源项目Philm的MVP架构分析
  4. 一种在android中实现MVP模式的新思路
  5. 说说Android的MVP模式

N

NavigationView

  1. Easy Navigation Drawer with Design Support Library

Notification

  1. Android——Notifications笔记
  2. Android学习之Notification的简单使用

O

ORMLite

  1. Android 快速开发系列 ORMLite 框架最佳实践
  2. Android ORM框架之 ORMLite

OkHttp

  1. 开源项目OkHttpPlus——支持GET、POST、UI线程回调、JSON格式解析、链式调用、文件上传下载
  2. Android OkHttp完全解析 是时候来了解OkHttp了

P

Parcelable

  1. Android中Parcelable接口用法

PackageManager

  1. Android中获取应用程序(包)的信息-----PackageManager的使用(一)
  2. 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
  3. Android获取已安装应用信息(图标,名称,版本号,包)
  4. 关于android 如何安装 assets文件下的apk

Palette

  1. Extracting Colors to a Palette with Android Lollipop
  2. Android Lollipop
    新特性 - Palette

Preference

  1. PreferenceActivity(首选项设置页)
  2. Android的设置界面及Preference使用

Picasso

  1. Picasso官方网站及javadoc
  2. Android图片下载缓存库picasso解析

R

React
Native

  1. React Native for Android 入门老虎
  2. React Native For Android初体验

Reference

  1. Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference
  2. Java 7之基础 - 强引用、弱引用、软引用、虚引用

RecyclerView

  1. RecyclerView使用详解(一)
  2. Android RecyclerView 使用完全解析 体验艺术般的控件
  3. A Guide to Android RecyclerView and CardView
  4. Android-RecyclerView-Item点击事件设置
  5. Why doesn't RecyclerView
    have onItemClickListener()? And how RecyclerView is different from Listview?
  6. Create RecyclerView with multiple view type
  7. Simple RecyclerView Divider

Retrofit

RxJava

  1. RxJava: Reactive Extensions for the JVM
  2. 给 Android 开发者的 RxJava 详解
  3. NotRxJava懒人专用指南

RandomAccessFile

  1. Java RandomAccessFile用法

S

SearchView

  1. 详细解读Android中的搜索框(三)—— SearchView

Serializable

  1. Android系统中Parcelable和Serializable的区别
  2. Android: Difference between Parcelable
    and Serializable?

Service

  1. Android Service完全解析,关于服务你所需知道的一切(上)
  2. ExecutorService 的理解与使用
  3. Android基本功:IntentService的使用
  4. Android基础笔记(十一)- Service基础和注意事项以及Activity与Service的通信

SharedPreference

  1. Android SharedPreferences使用以及原理详解
  2. Google为何这样设计OnSharedPreferenceChangeListener
  3. SharedPreferences在多进程中的使用及注意事项

SparseArray

  1. Android应用性能优化之使用SparseArray替代HashMap
  2. Android SparseArray
  3. Android性能优化之使用SparseArray代替HashMap
  4. HashMap的实现与优化

SQLite

  1. Android中SQLite应用详解
  2. ANDROID开发之SQLite详解
  3. 使用嵌入式关系型SQLite数据库存储数据
  4. Android将数据库保存到SD卡的实现

Support
Library

  1. Android Support兼容包详解
  2. Android各个Support Library介绍
  3. Android Support Library 23.1的变化

SwipeRefreshLayout

  1. Android SwipeRefreshLayout
  2. 下拉刷新之 swipeRefreshLayout

T

Textview

  1. Remove underline from links in TextView
  2. What is the default text size on Android?
  3. Which unit of measurement does
    the Paint.setTextSize(float) use?
  4. How to set unit for Paint.setTextSize()
  5. Android Center text on canvas

TouchEvent

  1. 两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!
  2. MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序
  3. Android Deeper(00) - Touch事件分发响应机制

Thread

  1. ThreadPoolExecutor运转机制详解
  2. ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
  3. Java并发编程:Callable、Future和FutureTask
  4. Java 7之多线程线程池 - Callable和Future
  5. Java 7之多线程线程池 - 线程池原理(1)
  6. Android线程间交互(Java synchronized & Android Handler)
  7. Android--多线程之Handler
  8. Java(Android)中线程池的使用
  9. Java(Android)线程池

U

Unit
Test

  1. Android单元测试
  2. Don’t Test Blindly: The Right Methods
    for Unit Testing Your Java Apps
  3. 在Android Studio中进行单元测试和UI测试

V

ViewPager

  1. Android ViewPager使用详解
  2. ViewPager + Fragment实现滑动标签页
  3. 【移动开发】Android中Fragment+ViewPager的配合使用
  4. Android 手把手教您自定义ViewGroup(一)本文出自:【张鸿洋的博客】
  5. Android的坑之ScrollView嵌套ViewPager

View

  1. Android LayoutInflater原理分析,带你一步步深入了解View(一)
  2. Android中View绘制流程以及invalidate()等相关方法分析
  3. Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
  4. Android开发:LayoutParams的用法
  5. Saving Android View state correctly

ViewFlipper

  1. Android ViewFlipper的使用分析
  2. Android 滑动效果入门篇(一)—— ViewFlipper

VideoView

  1. Android--使用VideoView播放视频
  2. Playing a video in VideoView in Android
  3. Position Video Inside a VideoView

Volley

  1. Android Volley
  2. Android Volley完全解析(一),初识Volley的基本用法
  3. Android库Volley的使用介绍
  4. 网络请求库Volley详解
  5. Volley 源码解析
  6. 使用okHttp、Volley、Gson快速组装HttpClinet

W

WebView

  1. WebView详解
  2. Java 与 JavaScript 如何进行交互
  3. Android与js交互实例
  4. Android中Java和JavaScript交互
  5. 顶部带进度条的Webview
  6. Android WebView播放视频问题
  7. 理解WebKit和Chromium: Android 4.4 上的Chromium WebView
  8. 在WebView中如何让JS与Java安全地互相调用
  9. Android WebView的Js对象注入漏洞解决方案

Others

Code
Style

  1. Java编程规范
  2. Android 命名规范 (提高代码可以读性)
  3. Code Style Guidelines for Contributors

Git

  1. Pro Git
  2. GitHub秘籍
  3. git - 简易指南
  4. 基于Github参与开源项目指南
  5. 使用git和github进行协同开发流程
  6. 如何高效利用GitHub
  7. 廖雪峰的GIT入门教程
  8. GitHub&Git入门基础
  9. git-flow 备忘清单

JCenter

  1. Android Studio发布项目到Jcenter
  2. 将Library上传到Jcenter
  3. 使用Gradle发布aar项目到JCenter仓库

反编译

  1. android_smali语法学习
  2. apk的包名修改
  3. 为Sublime Text安装smali代码语法高亮插件
  4. Android APK反编译详解(附图)
  5. Android开发学习总结(六)—— APK反编译
  6. 我是如何使用Android反编译软件的?
  7. Android程序的反编译对抗研究

设计模式

  1. Java开发中的23种设计模式详解
  2. MVC,MVP 和 MVVM 的图示
  3. 如果让我重新设计一款Android App
  4. 一个人如何开发一款
    App?
  5. Android应用架构 (Android Dev Summit 2015)
  6. Android源码设计模式分析项目

夜间模式

  1. Android Night Mode 夜间模式实现
  2. Android夜间模式实现
  3. Android 中 知乎日报和知乎设置夜间模式是怎么样做到不重启Activity的?

自定义控件

  1. Android 自定义View及其在布局文件中的使用示例
  2. 自定义控件进阶:declare-styleable重用attr
  3. android 自定义控件 使用declare-styleable进行配置属性(源码角度)
  4. Android使用AttributeSet自定义控件的方法
  5. 从源码中浅析Android中如何利用attrs和styles定义控件
  6. Android SDK: Creating Custom Views
  7. Creating custom and compound Views in Android - Tutorial
  8. Tutorial: Enhancing Android UI with Custom
    Views
  9. Android 自定义View (一)
  10. What does postInvalidate() do?
  11. When it's necessary to execute invalidate()
    on a View?
  12. Android笔记:invalidate()和postInvalidate() 的区别及使用

No
category

  1. THE DEX 64K LIMIT IS NOT A PROBLEM ANYMORE, ALMOST
  2. Android 4.4从图库选择图片,获取图片路径并裁剪
  3. 浅析android应用增量升级
  4. Android四大基本组件介绍与生命周期
  5. Android代码优化——使用Android lint工具
  6. Android 插件化 动态升级
  7. Java String StringBuilder StringBuffer
  8. tools:context=".MainActivity的作用
  9. 关于APK瘦身值得分享的一些经验
  10. 性能优化之数据库优化
  11. How to check visibility of software keyboard
    in Android?
  12. android 4.4.4侧滑退出显示app启动界面 ​
  13. How to get a Color from hexadecimal Color String
  14. 【译】Android应用架构
  15. Android静默安装实现方案,仿360手机助手秒装和智能安装功能
  16. How to convert a color integer to a
    hex String in Android?
  17. IllegalArgumentException:
    width and height must be > 0 while loading Bitmap from View
  18. Unable to instantiate
    application com.android.tools.fd.runtime.BootstrapApplication ?

android 开发从入门到精通的更多相关文章

  1. Java ME之Android开发从入门到精通

    1. 搭建Android开发环境 方式一:使用ADT插件安装 ADT插件的下载与安装,ADT插件获取网址:http://www.androiddevtools.cn/ 下载好的ADT插件如图所示: 在 ...

  2. Android 学习资料入门到精通(PDF集合)共54本

    最近收集一些安卓入门到精通,包含游戏编程,网络编程,多媒体开发,需要学习朋友就下载保持下来,下载链接在最下面 下面是网盘内容 14天学会安卓开发_(完整版).pdf Android 4  游戏高级编程 ...

  3. 学Android开发,入门语言java知识点

    学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...

  4. Nginx开发从入门到精通 学习目录分享学习 (阿里著作)

    Nginx开发从入门到精通   缘起 nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众多的开发以及运维同学都迫切的想要了解nginx模块的开发以及它的内部 ...

  5. 「Android 开发」入门笔记

    「Android 开发」入门笔记(界面编程篇) ------每日摘要------ DAY-1: 学习笔记: Android应用结构分析 界面编程与视图(View)组件 布局管理器 问题整理: Andr ...

  6. C# Windows服务开发从入门到精通

    一.课程介绍 大家都知道如果想要程序一直运行在windows服务器上,最好是把程序写成windows服务程序:这样程序会随着系统的自动启动而启动,自动关闭而关闭,不需要用户直接登录,直接开机就可以启动 ...

  7. 使用Ant搭建Android开发环境入门

    使用Ant搭建Android开发环境入门   使用Ant搭建Android开发环境,建立android项目 配置Ant环境 下载Ant:http://ant.apache.org/bindownloa ...

  8. 《Java 开发从入门到精通》—— 2.3 使用IDE工具序

    本节书摘来异步社区<Java 开发从入门到精通>一书中的第2章,第2.3节,作者: 扶松柏 , 陈小玉,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.3 使 ...

  9. [书目20160624]Android应用开发从入门到精通

    卢海东 著 第1章 揭开神秘面纱——Android系统简介 1   1.1 认识Android系统 2   1.1.1 Android成长历程 2   1.1.2 发行版本 3   1.1.3 得到大 ...

随机推荐

  1. activiti uuid主键

    1.1.1.  activiti默认主键生成方式 ; 下面我们看一下主键的生成策略:主键的生成策略定义在IdGenerator接口中,接口定义如下所示: public interface IdGene ...

  2. Spring的DataSource配置、将Hibernate配置全部写到Spring配置

    DataSource可以集中管理数据库连接,减少维护工作量,使部署更简单: Spring的DataSource配置:(Spring数据源配置)这里使用dbcp,还有很多其他的如c3p0,jdbc,jn ...

  3. 2014年7月10日,我人生的最重要Upgrade

    2014年7月10日上午,我的小公主顺利的出生于国妇婴.之前各种紧张,各种不安.在不安中的前天晚上陪着来上海的董博士于方先生在人民广场聚餐.大家都是工作几年的,各种感慨,对于工作中的零零种种.还有对未 ...

  4. 修改GDAL库支持IRSP6数据

    使用GDAL库发现不能打开IRSP6的数据,不过看GDAL提供的文件格式里面却是支持IRSP6的数据的,具体可以参考网页http://www.gdal.org/frmt_fast.html.下面图1是 ...

  5. Java-IO之PrintWriter(字符打印输出流)

    PrintWriter是字符类型的打印输出流,继承于Writer,用于向文本输出流打印对象的格式化表示形式. PrintWriter的主要函数: PrintWriter(OutputStream ou ...

  6. 部署Openfire3.9.3源码部署

    1,下载Openfire3.9.3源码代码:http://www.igniterealtime.org/downloads/index.jsp 2,具体的配置请参考http://blog.csdn.n ...

  7. 如何在Cocos2D 1.0 中掩饰一个精灵(一)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 原帖来自Ray Wunderlich写的精彩的文章 How To ...

  8. Android性能优化之常见的内存泄漏

    前言 对于内存泄漏,我想大家在开发中肯定都遇到过,只不过内存泄漏对我们来说并不是可见的,因为它是在堆中活动,而要想检测程序中是否有内存泄漏的产生,通常我们可以借助LeakCanary.MAT等工具来检 ...

  9. Android项目-高考作文项目架构(三)

    上一篇我们讲到了,  Http Json的功能的抽取. 如果我们请求的是一个列表的数据呢? 我们使用那个功能就不是很好. 因为一个列表, 还有很多其他功能(比如每个listView都需要setAdap ...

  10. android studio编译慢的问题

    1.修改android studio的使用堆内存,根据自己电脑的内存,尽量设置的大一点,点击help->如下图: 2.接下来设置使用离线gradle构建,一开始就是使用了内置的默认路径gradl ...