/AndroidTips

A collections of tips in Android developing.Android开发总结。我的博客:

Primary LanguageJava

AndroidTips

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](./book/Gradle Recipes for Android.pdf)

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.如何提高开发效率?(微信移动客户端开发团队)

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官网
  1. Kotlin官网(中文版)
  1. 《Kotlin for android developers》中文版
十六.MaterialDesign
十七.自学资料
  1. Android开发官方文档(英文版)
  1. Android开发中文文档
  1. 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](./book/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技术分享的逆向教程 2. Android反破解之一:Android Java混淆(ProGuard) 3. APK反破解之二:Android APK 签名比对 4. APK反破解之三:NDK编译.so动态库 5. 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