AndroidTips

Introduction: A collections of tips in Android developing.
More: Author   ReportBugs   
Tags:

A collections of tips in Android developing. Android 开发总结。

前言

我们在日常开发中,会遇到各种各样的问题,或大或小。正是通过解决这些问题,使得我们的开发技能得到进步。养成记录的好习惯,方便自己日后查看,也方便广大开发者能找到自己遇到的问题的解决方案。

PS:持续更新中(last update date:2019-10-29 14:40)

目录

一.模拟器

二.Android Studio

三.Gradle

四.Android 四大组件

五.动画

六.View

七.XML

八.Java

九.混淆

十.优化

十一.优秀开发资料

十二.值得关注的 Android 大牛

十三.Canvas

十四.学习方法总结

十五.Kotlin

十六.MaterialDesign

十七.自学资料

十八.RxJava

十九.开发框架(如 MVP 等)

二十.Android 开发面试资料

二十一.Android 逆向与安全

二十二.Android 编译构建

二十三.Android 动态加载

二十四.Google 最新的跨平台框架 Flutter

正文

一.模拟器

1.genymotion 模拟器如何锁屏?

答:在模拟器的设置-->安全-->屏幕锁定-->选择除<>以外的其他选项。 然后点击模拟器的电源按钮即可锁屏(或在命令行中输入adb shell keyevent 26原理和按电源键一样,模拟电源键点击事件)

参考链接:http://stackoverflow.com/questions/29292060/how-to-lock-genymotion

2.genymotion 模拟器如何打开输入法软键盘?

答:在设置输入法选项中,关闭物理键盘即可。

3.genymotion 如何安装谷歌服务?

答: http://stackoverflow.com/questions/17831990/how-do-you-install-google-frameworks-play-accounts-etc-on-a-genymotion-virt

二.Android Studio

1.Andorid Studio 中有哪些好用的插件?

答: 1>.GsonFormat:用 json 数据一键生成 JavaBeans

2>. ADB Idea:ctrl + Shift + A 查找中添加常用卸载安装 app 的一些操作,无需命令行

3>.android-parcelable-intellij-plugin 快速实现 parcelable 序列化

4>.android-butterknife-zelezny ButterKnife 生成器,快速生成 View 声明代码

5>.Android WiFi ADB 使用 WiFi 连接而不需要 USB 连接 Android 设备达到安装、运行、调试应用的目的。

6>.simpleUMLCE 自动生成类图

2.Android Studio 提升效率的技巧文章

答:

http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/

http://www.developerphil.com/android-studio-tips-of-the-day-roundup-2/

http://www.developerphil.com/android-studio-tips-of-the-day-roundup-3/

http://www.developerphil.com/android-studio-tips-of-the-day-roundup-4/

http://www.developerphil.com/android-studio-tips-of-the-day-roundup-5/

http://www.developerphil.com/android-studio-tips-of-the-day-roundup-6/

上述 Android Studio 技巧的中文版

3.更新 Android Studio 报如下错误如何解决?

Android Studio: Error:/android-studio/gradle/gradle-2.4/lib/plugins/gradle-diagnostics-2.4.jar (No such file or directory)

更新 Android Studio 后,Gradle 的也得到了更新。cd 到 gradle 文件夹下查看里面 gradle 文件夹的名字。例如 gradle-2.8。然后在 Android Studio 中依次打开 Module Settings->Project,将 Gradle version 改成和之前文件夹对应的版本。Rebuild 项目就好了。

4.Android Studio 的常用快捷键?

答:

1.快速生成 get,set 代码(Command+N)

2.查找方法(Find Action)(Command+Shift+A)

3.查看类的层级(Ctrl+H)

4.选中一侧代码(Alt+鼠标左键)

5.提取方法(Command+Option+M)

5.Android Studio 中开启 DDMS?

答:在 Android 中,依次点击 Tools->Android->Android Device Monitor

6.Android Studio 与 Gradle 教程

答:

1.拥抱 Android Studio 之一:从 ADT 到 Android Studio

2.拥抱 Android Studio 之二:Android Studio 与 Gradle 深入

3.拥抱 Android Studio 之三:溯源,Groovy 与 Gradle 基础

4.拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建

5.拥抱 Android Studio 之五:Gradle 插件开发

三.Gradle

1.Gradle 有什么教程?

1.Gradle User Guide 中文版

2.Gradle 官方教程

3.灵活强大的构建系统 Gradle(美团技术团队)

4.Android 官方 Gradle 教程

5.Gradle 官方 Training

6.android-studio.org 的 Gradle 教程

7.Android Plugin DSL Reference

8.Gradle 脚本基础全攻略

9.深入理解 Android 之 Gradle

10.Android 开发必备知识:我和 Gradle 有个约会(腾讯 bugly 团队)

11.Android Recipes for Android

2.Gradle 在编译的时候报如下错误:Error:Timeout waiting to lock buildscript class cache for build file ,怎么解决?

答:

Windows:删除 C:\Users\Administrator.gradle\caches.这个文件夹

OS X:删除~/.gradle/caches 这个文件夹

参考:http://stackoverflow.com/questions/31784132/errortimeout-waiting-to-lock-buildscript-class-cache-for-build-file-when-change

3.什么是 Gradle,为什么在 Android Studio 中引进 Gradle?

答:

http://stackoverflow.com/questions/16754643/what-is-gradle-in-android-studio

四.Android 四大组件

1.Activity

2.Service

3.ContentProvider

4.BroadcastReceriver

五.动画

1.关于动画有什么教程?

1.Android 官方

2.tutorialspoint 动画教程

3.Android 属性动画完全解析(上),初识属性动画的基本用法

4. Android 属性动画完全解析(中),ValueAnimator 和 ObjectAnimator 的高级用法

5.Android 属性动画完全解析(下),Interpolator 和 ViewPropertyAnimator 的用法

6.Using animations in Android application

7 .动画系列 - 传统 View 动画与 Property 动画基础及比较

8 .动画系列 - PropertyAnim 详解

9 .动画系列 - PropertyAnim 实际应用

10 .动画系列 - ViewPager 动画

11 .Android 动画基础

12 .codepath_android_guides_animations

12 .bignerdranch_frame-animations-in-android

13 .Building Meaningful Motion(Plaid 作者 Android 动画演讲分享)

六.View

1.View 是如何绘制的?

1.How Android Draws Views

2.Android 视图状态及重绘流程分析,带你一步步深入了解 View(一)

3.Android 视图状态及重绘流程分析,带你一步步深入了解 View(二)

4.Android 视图状态及重绘流程分析,带你一步步深入了解 View(三)

5.Android 视图状态及重绘流程分析,带你一步步深入了解 View(四)

2.如何实现自定义 View?

1.Android 官方教程

2.Android 官方教程中文版

3.Creating custom and compound Views in Android - Tutorial

4.Tutorialspoint 教程

5. Android 自定义 View 的实现方法,带你一步步深入了解 View(四)

6.Canvas and Drawables

7.Android 自定义 View 系列文章

3.Android touch 事件分发机制

1.Managing Touch Events in a ViewGroup

2.Android 事件分发机制完全解析,带你从源码的角度彻底理解(上)

3.Android 事件分发机制完全解析,带你从源码的角度彻底理解(下)

4.Android 事件传递机制

5.Handling single and multi touch on Android - Tutorial

4.ImageView 使用 src 和 background 设置图片的区别?

1.http://stackoverflow.com/questions/5454491/what-is-the-difference-between-src-and-background-of-imageview

2.Android 中 imageView 的 Src 和 Background

5.View 中 onTouch 和 onTouchEvent 的区别?

1.http://stackoverflow.com/questions/5002049/ontouchevent-vs-ontouch

七.XML

1.为什么在 XML 代码中有 tools 命名空间? 代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="wrap_content">     
       <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:text="0"/>
</LinearLayout>

tools:text,其实就是给 ADT 用的,用于在 design 页面能够预览到这个属性的值,但是当实际上运行的时候是看不到这个值的。具体可查看Designtime Layout Attributes

八.Java

1.深入理解 Java 中的 final 关键字

2.Java 中==和 equals 的区别

3.Java 中的 hashCode()方法和 equals()方法

4.Java 资源大全中文版(awesome-java-cn)

九.混淆
  1. Android 混淆有什么资料教程?

答:

2.资源混淆有什么好的技术文章?

答:

1.美团 Android 资源混淆保护实践

2.安装包立减 1M--微信 Android 资源混淆打包工具

十.优化

1.Android 内存优化杂谈(微信移动客户端开发团队)

2.如何提高开发效率?(微信移动客户端开发团队)&version=11020201&pass_ticket=ZXGITxr6bbn9Jmjzi5s4TzNgphY7BZ3j7xzQh%2BtYcqRDRivYxSjA1JbKPe1ME1q4)

3.Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存?(腾讯 Bugly 团队)

十一.优秀开发资料

1.如何寻找优秀开源库?

答:

2.在线查看 Android 源码的网站:

3.在线书籍:

4.程序员的读书清单

答:

5.Android 图片相关工具

6.Android 开发相关书籍推荐

十二.值得关注的 Android 大牛

国外

国内


CSDN

(PS:*表示 Android 系统研究)

微信公众号

  • 1.Google 开发者(Google_Developers)
  • 2.QQ 空间终端开发团队(qzonemobiledev)
  • 3.手机淘宝技术团队 MTT(AlibabaMTT)
  • 4.腾讯 bugly(weixinBugly)
  • 5.微信移动客户端团队(WeMobileDev)
  • 6.好东西传送门(awesomeport)
  • 7.阿里聚安全

注:括号内为微信号

Google+

公司技术团队

Android 开发技术资讯网站

Github 上那些值得关注的公司组织

个人独立博客

十三.Canvas

1.Canvas 相关的教程:

十四.学习方法/路线总结

1.Android 学习进阶路线导航线路

2. Android 学习路线指南

3.Android 学习之路

4.Android 开发进阶指南

5.怎样的 Android 开发毕业生可以算达到优秀的水平?

6.Android 程序猿如何继续深入的研究技术层的知识?

7.给那些刚入行的 iOS/Android 开发新手们的一些建议

十五.Kotlin
  1. Kotlin 官网

  2. Kotlin 官网(中文版)

  3. 《Kotlin for android developers》中文版

十六.MaterialDesign
十七.自学资料
  1. Android 开发官方文档(英文版)

  2. Android 开发中文文档

  3. Android 学习资料收集

十八.RxJava
  1. 给 Android 开发者的 RxJava 详解
  2. Adopting RxJava on Airbnb Android
  3. Grokking RxJava 系列
  4. Reactivex 官方教程
  5. RxJava Essentials 中文翻译版
  6. RxJava 文档中文版
  7. Awesome-RxJava
  8. Learning RxJava.pdf
十九.开发框架(如 MVP 等)

1.一步一步实现 Android 的 MVP 框架

2.Android Application Architecture

3.Google 官方 Android 架构示例

二十.Android 开发面试资料

1.Android interview questions for 2-5 yrs experienced(2-5 年经验的 Android 开发面试问题)

2.250 Android Interview Questions(250 道 Android 开发面试题)

3.Android interview questions(Android 面试问题)

二十一.Android 逆向与安全

1.Android 技术分享的逆向教程

  1. Android 反破解之一:Android Java 混淆(ProGuard)
  2. APK 反破解之二:Android APK 签名比对
  3. APK 反破解之三:NDK 编译.so 动态库
  4. APK 反破解之四:Android 代码动态加载技术
二十二.Android 编译构建

1.Android 构建过程分析

二十三.Android 动态加载

1.Android 动态加载基础 ClassLoader 工作机制

2.Android 插件化研究

3.Android 插件化原理研究

4.Understanding Java ClassLoader

二十四.Google 最新的跨平台框架

1.闲鱼技术团队的 Flutter 研究文档

参与维护

欢迎 Pull Request 和使用 issue

LICENCE

以上内容采用 CC BY-NC-SA 3.0进行许可

关于我

网络 ID:JohnTsai

Android 开发者,手机发烧友。

我的博客:https://www.johntsai.xyz

博客园博客:http://www.cnblogs.com/JohnTsai

简书:http://www.jianshu.com/users/07ba99ac6962/latest_articles

Google+:https://plus.google.com/106757597621151145389/posts

邮箱:JohnTsai.Work#gmail.com

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools