This is an awesome list of tips for android.
If you are a novice, this list will be the first choice for you to learn and to have a difficult time.
Finally, your support is my greatest affirmation.
学习 Android 至今,大大小小的坑没少踩过,庆幸的是,在强大的搜索引擎与无私奉献的人们的帮助下,那些坑都顺利地被填平了。
为了日后在遇到同样的问题时,能免于再次搜索带来的麻烦,我养成了收藏书签的习惯,随着书签(Tips)的日积月累,我想,是时候该有这个项目了。
如果你是个 Android 新人,又不善于搜索或不知道从何开始,那么我相信这份列表,将会成为你的首选。
当然,这份列表并不完美,如果不幸,这里没有你所踩到的坑,或者对于某个问题你有更好的 Tips,欢迎与大家分享,让我们一起来维护这个项目!
你可以通过 Pull request 的形式进行提交,当然也欢迎 Star 与 Fork :)
由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交 Issue,Contributers 也可以使用 Utils 里面的 URLChecker 来检测列表里链接的有效性,你可以选择更改为新的有效连接,或者把需要梯子的文章以 Markdown 的形式保存在 Utils/Content 目录下,并注明原文章链接和作者。
- Android ADB常用命令
- Android开发调试工具ADB的使用
- Installing ADB on Windows 7
- Adb connection Error:远程主机强迫关闭了一个现有的连接
- Android通过Wifi来调试你的应用
- Android简便通用的SimpleBaseAdapter
- Android数据适配器(Adapter)优化:使用高效的ViewHolder
- Android 快速开发系列 打造万能的ListView GridView 适配器
- android进程间通信:使用AIDL
- Android AIDL使用详解
- android跨进程通信(IPC): 使用AIDL
- Android中的跨进程通信的实现(一)——远程调用过程和aidl
- Android Studio下如何配置AIDL文件
- 快速Android开发系列网络篇之Android-Async-Http
- android-async-http框架库使用基础
- Android Studio导入项目
- Android Studio 简单设置
- Android Studio 简介及导入 jar 包和第三方开源库方法
- Android Studio使用技巧系列教程(一)
- Android Studio中如何使用Git和Github来管理项目
- Android Studio 权威教程
- AQuery Image Loading
- Android之使用Android-query框架进行开发(一)
- Android AsyncTask完全解析,带你从源码的角度彻底理解
- Android中AsyncTask的简单用法
- Android开发者:你真的会用AsyncTask吗?
- 图片处理
- Android中自定义布局中加载图片BitmapFactory.options详解
- Android学习笔记进阶16之BitmapShader
- Android 优化Bitmap避免OutOfMemoryError
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- 【Android】BroadCast广播机制应用与实例
- 玩转Android---组件篇---Broadcast Receiver(广播接收器)
- 【Android】动态注册广播接收器
- How to Define Callbacks in Android?
- 一个经典例子让你彻彻底底理解java回调机制
- Java设计模式-回调函数和观察者模式
- Android5.0新控件CardView的介绍和使用
- Android CardView Example
- Android CardView Widget – Add Cards to a List using RecyclerView
- Android Configuration change引发的问题及解决方法
- Handling Runtime Changes
- android学习—— context 和 getApplicationContext()
- Android中Context详解 ---- 你所不知道的Context
- CoordinatorLayout与滚动的处理
- Handling Scrolls with CoordinatorLayout
- Download a file with Android, and showing the progress in a ProgressDialog 译文
- Java 服务器端支持断点续传的源代码【支持快车、迅雷】
- Java 多线程断点下载文件
- Android 后台Service下载 (一)
- Android网络编程 --断点续传下载文件
- android 多线程断点续传下载 一
- EventBus使用详解(一)——初步使用EventBus
- 快速Android开发系列通信篇之EventBus
- Android Fragment完全解析,关于碎片你所需知道的一切
- Android Fragment 你应该知道的一切
- Android系列之Fragment(二)----Fragment的生命周期和返回栈
- 处女男学Android(九)---Fragment进阶篇之Fragment生命周期和回退栈
- Fragment笔记整理
- Android实战技巧:Fragment的那些坑
- android Fragments详解四:管理fragment
- Android Fragment 嵌套使用(Nested Fragments)
- Android 自定义ViewGroup - 实现FlowLayout - 本文出自【张鸿洋的博客】
- Glide 一个专注于平滑滚动的图片加载和缓存库
- Google推荐的图片加载库Glide介绍
- 用Gradle 构建你的android程序
- Android Studio系列教程四--Gradle基础
- 使用Gradle构建Android项目
- 使用Gradle管理你的Android Studio工程
- 灵活强大的构建系统Gradle
- Gradle Android Could not find method testPackage()
- Android Studio 1.0 Gradle Error with getConfiguration()
- ORM 框架之 greenDAO 使用心得
- SQLite数据库框架ORMLite与GreenDao的简单比较
- 在AndoridStudio中引入GreenDAO
- Android入门第八篇之GridView(九宫图)
- 用Volley让GridView加载网络图片
- Add space to top and bottom of GridView
- [Android] ImageView.ScaleType设置图解
Immersive Full-Screen Mode
- Using Immersive Full-Screen Mode 译文
- Android系列教程之十:Intents and Intent Filters(一)
- Android高手进阶教程(十七)之---Android中Intent传递对象的两种方法(Serializable,Parcelable)!
- Intent filter 关于Action、Category属性详解---附带实例源码
- startActivityForResult用法详解
- Android 开发笔记——通过 Intent 传递类对象
- Android系列---JSON数据解析
- android json解析及简单例子
- Android开源库--Gson谷歌官方json解析库
- DataContract4A-简化Json解析与生成
- Android App组件之ListFragment -- 说明和示例
- Android 使用ListFragment显示列表
- 在Activity中响应ListView内部按钮的点击事件
- Java利用MessageDigest获取字符串或文件MD5详解
- 类 MessageDigest
- Google Material Design: Everything You Need to Know
- An exploration in Material Design
- 谢谷歌大神传我动画设计30年功力
- Codelab for Android Design Support Library used in I/O Rewind Bangkok session
- Easy Navigation Drawer with Design Support Library
- Android——Notifications笔记
- Android学习之Notification的简单使用
- Android 快速开发系列 ORMLite 框架最佳实践
- Android ORM框架之 ORMLite
- Android中Parcelable接口用法
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- Android获取已安装应用信息(图标,名称,版本号,包)
- 关于android 如何安装 assets文件下的apk
- Extracting Colors to a Palette with Android Lollipop
- Android Lollipop 新特性 - Palette
- PreferenceActivity(首选项设置页)
- Android的设置界面及Preference使用
- Picasso官方网站及javadoc
- Android图片下载缓存库picasso解析
- Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference
- Java 7之基础 - 强引用、弱引用、软引用、虚引用
- RecyclerView使用详解(一)
- Android RecyclerView 使用完全解析 体验艺术般的控件
- A Guide to Android RecyclerView and CardView
- Android-RecyclerView-Item点击事件设置
- Why doesn't RecyclerView have onItemClickListener()? And how RecyclerView is different from Listview?
- Create RecyclerView with multiple view type
- Simple RecyclerView Divider
- Java RandomAccessFile用法
- 详细解读Android中的搜索框(三)—— SearchView
- Android系统中Parcelable和Serializable的区别
- Android: Difference between Parcelable and Serializable?
- Android Service完全解析,关于服务你所需知道的一切(上)
- ExecutorService 的理解与使用
- Android基本功:IntentService的使用
- Android SharedPreferences使用以及原理详解
- Google为何这样设计OnSharedPreferenceChangeListener
- Android应用性能优化之使用SparseArray替代HashMap
- Android SparseArray
- Android性能优化之使用SparseArray代替HashMap
- Android中SQLite应用详解
- ANDROID开发之SQLite详解
- 使用嵌入式关系型SQLite数据库存储数据
- Android Support兼容包详解
- Android SwipeRefreshLayout
- Remove underline from links in TextView
- 两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!
- MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序
- ThreadPoolExecutor运转机制详解
- ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
- Java并发编程:Callable、Future和FutureTask
- Java 7之多线程线程池 - Callable和Future
- Java 7之多线程线程池 - 线程池原理(1)
- Android线程间交互(Java synchronized & Android Handler)
- Android--多线程之Handler
- Java(Android)中线程池的使用
- Java(Android)线程池
- Android单元测试
- Don’t Test Blindly: The Right Methods for Unit Testing Your Java Apps
- ViewPager + Fragment实现滑动标签页
- 【移动开发】Android中Fragment+ViewPager的配合使用
- Android 手把手教您自定义ViewGroup(一)本文出自:【张鸿洋的博客】
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- Android中View绘制流程以及invalidate()等相关方法分析
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
- Android开发:LayoutParams的用法
- Android ViewFlipper的使用分析
- Android 滑动效果入门篇(一)—— ViewFlipper
- Android--使用VideoView播放视频
- Playing a video in VideoView in Android
- Android Volley完全解析(一),初识Volley的基本用法
- Android库Volley的使用介绍
- Java 与 JavaScript 如何进行交互
- android与javascript交互调用
- Android与js交互实例
- Android中Java和JavaScript交互
- 顶部带进度条的Webview
- Android WebView播放视频问题
- 理解WebKit和Chromium: Android 4.4 上的Chromium WebView
- 在WebView中如何让JS与Java安全地互相调用
- Android WebView的Js对象注入漏洞解决方案
- Java编程规范
- Android 命名规范 (提高代码可以读性)
- Code Style Guidelines for Contributors
- Pro Git
- GitHub秘籍
- git - 简易指南
- 基于Github参与开源项目指南
- 使用git和github进行协同开发流程
- 如何高效利用GitHub
- 廖雪峰的GIT入门教程
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- apk的包名修改
- 为Sublime Text安装smali代码语法高亮插件
- Java开发中的23种设计模式详解
- MVC,MVP 和 MVVM 的图示
- Android 自定义View及其在布局文件中的使用示例
- 自定义控件进阶:declare-styleable重用attr
- android 自定义控件 使用declare-styleable进行配置属性(源码角度)
- Android使用AttributeSet自定义控件的方法
- 从源码中浅析Android中如何利用attrs和styles定义控件
- Android SDK: Creating Custom Views
- Creating custom and compound Views in Android - Tutorial
- Tutorial: Enhancing Android UI with Custom Views
- Android 自定义View (一)
- THE DEX 64K LIMIT IS NOT A PROBLEM ANYMORE, ALMOST
- Android 4.4从图库选择图片,获取图片路径并裁剪
- 浅析android应用增量升级
- Android四大基本组件介绍与生命周期
- Android代码优化——使用Android lint工具
- Android 插件化 动态升级
- Java String StringBuilder StringBuffer
- tools:context=".MainActivity的作用
- 关于APK瘦身值得分享的一些经验
- 性能优化之数据库优化
- How to check visibility of software keyboard in Android?
- android 4.4.4侧滑退出显示app启动界面
Born in 1992, now a student of Southeast University, master of software engineerin. Loving technology, programming, reading and sports.
I will graduate in June 2017, expect the internship or full-time job in Android or iOS.
If you have any questions or want to make friends with me, please feel free to contact me : imtangqi#gmail.com