Android开发时,那些相见恨晚的工具或网站!

本文来我在知乎话题Android开发时你遇到过什么相见恨晚的工具或网站?下的回答!

在实际Android开发过程确实会有很多相见恨晚的工具或网站出现,下面是我自己的一些分享。

1、源码网站

https://github.com/googlesamples

Android系统每次推出一些新特性,Google都会写一些Demo放在Github上,对于想要了解新特性怎么玩的同学,肯定不能错过它。

https://www.codota.com/

如果你不知道一个Android的类怎么用,可以在Codota上面快速的找到很多不错的示例代码。

https://android-arsenal.com/

你是否还在为找不到合适的开源库而苦恼,Android Arsenal这个网站已经帮你做了一定的分类,可以帮你提高不少效率。

https://android.googlesource.com/

Android所有的源代码都在这里,只需找到对应想要的模块,用Git克隆下来即可。比如,我想要的framework代码。

http://androidxref.com/

克隆Android一个模块的代码量是很多的,有时候我只想要几个类的代码怎么办?AndroidXRef这个网站可以让你单独搜索某个类,要哪几个下载哪几个即可。

http://grepcode.com/

除了AndroidXRef可以查看某个类的源代码外,GrepCode同样也能做到。而且GrepCode不限于Android的源码,这里也推荐一下。

2、源码分析

源码分析的网站很多,这里举几个比较经典的网站。

http://a.codekk.com/

国内Android源码分析的先驱,由滴滴的技术专家Trinea发起,坦白的讲,这个项目对我的影响很大,我也从这里开始体会源码解读的魅力的。

http://0xcc0xcd.com/p/index.php

老罗,罗升阳的个人博客站点,很多人看过他博客里面是如何分析Android和Chrome的源代码的。非常好的一个网站,以前功力不够没能看懂文章,经过一段时间后再回去翻看一些文章,不得不赞。

http://gityuan.com/

GitYuan,MIUI系统工程师,他的博客经常分享Android系统源码解读的文章,质量很高。而且,更新频率也很高!

https://github.com/LittleFriendsGroup/AndroidSdkSourceAnalysis

CJJ,猪场(网易)的开发者,由他带领发起的Android SDK源码解析,同样推荐。

3、酷炫动画

https://github.com/airbnb/lottie-android

Airbnb开源的动画库,为什么推荐它,是因为它让复杂酷炫的动画效果轻松实现了,不仅提高工程师的效率而且性能非常客观。我在YY工作,内部已经有一套和它实现原理一样的框架,所以看到Lottie的时候,一点不觉得奇怪,考虑可能还有不少童鞋应该还不知道它,这里再推荐一下。(PS:Lottie还有iOS、React Native、Web端的实现哦)

4、Crash搜集

https://bugly.qq.com

Bugly,腾讯出品的SDK,对Crash搜集的体验非常赞,能搜集到JNI层的奔溃以及监控线上的ANR问题。

https://try.crashlytics.com/

Crashlytics,国外的一个SDK,我自己没用过,但是用过的朋友对它的评价颇高。

https://github.com/ACRA/acra

ARCA,一个开源的崩溃日志搜集器,轻松让你实现客户端的崩溃日志上传到后台,如果你不喜欢接入别人家的SDK,可以使用它。有一个不足之处,就是它搜集不到JNI层的奔溃。

5、逆向分析

逆向分析工具太多,举几个经典的做例子。

https://github.com/skylot/jadx/

Jdax,轻轻一下,立马让apk宽衣解带,下面是我拿知乎开刀的例子。

https://github.com/google/android-classyshark

Classyshark,轻松查看apk内部每个包的方法数,用了哪些开源库,同样拿知乎开刀做例子。

https://github.com/JesusFreke/smali/wiki/smalidea

smali代码调试插件,你以为没有拿到安卓Java源码就不能调试了吗?图样图森破了吧。

https://www.hex-rays.com/products/ida/

IDA Pro,逆向大利器,不管你是smali还是so文件,照样动态调试你。

注意,这些用来涨知识就好,别干坏事!

6、AS插件

Android Studio插件很多,只推荐两个我常用的。

https://github.com/mcharmas/android-parcelable-intellij-plugin

帮助继承Parcelable的类自动生成相应代码,在没遇见它之前,手动写过大量的Parcelable实现代码,真的好痛苦。

https://github.com/zzz40500/GsonFormat

根据JSON数据快速生成Java实体类,又一波解放生产力。

7、调试利器

http://facebook.github.io/stetho/

Stetho,来自Facebook,它能做什么?无需root,借助Chrome可以查看SharePreferences和数据库中的数据,此外还有网络抓包以及查看View树等。

8、性能优化

http://hukai.me/

胡凯,腾讯开发者,翻译了一系列的Google Android性能优化典范的文章。

https://hujiaweibujidao.github.io/

Hujiawei,魅族开发者,博客最近经常更新Android性能数据搜集统计的相关的文章,本人受益匪浅。

时间: 2024-10-11 04:59:37

Android开发时,那些相见恨晚的工具或网站!的相关文章

Android开发时提示Your project contains error(s),please fix them be

有次在使用eclipse写好Android的代码,代码没有报错.然后 想在AVD中运行测试时,总是会弹出错误框,提示信息为: “Your project contains error(s),please fix them before running your application.” 不管是重启AVD 重启eclipse 甚至创建一个新的Android工程项目都不能运行 有几种原因: 1.在不同的电脑下开发,而且文件存放路径不同,错误的主要原因是  “.classpath”  文件的载三方类

记录我在百度地图开发和ArcGIS for Android开发时出现的一些错误及解决方案(后续更新)

[1]The import com.baidu.mapapi.map.Geometry conflicts with a type defined in the same file 解决:百度api包下的Geometry和某个类名相冲突,将类名换成另外的名字,不要和百度相关类里面的类名相同 [2]java.lang.ClassCastException: 解决:类型转换错误.查看Test_Geometry项目的Mainfest.xml清单文件,在<applicaiton>标签里面少了对Myap

Android 开发时如何正确获取使用扩展存储路径

Android 开发时如何正确获取使用扩展存储路径 先介绍一下Android的存储 在 2.x 版本中,Android设备都是单存储,第三方App写文件,必须申请 WRITE_EXTERNAL_STORAGE 权限: 在4.0之后,Android设备开始有了内置闪存,即 primary storage,并且可以外置SD卡,即 secondary external storage device: WRITE_EXTERNAL_STORAGE 权限变成了仅仅控制 primary storage,同时

解决mac上Android开发时出现的ADB server didn&#39;t ACK

mac 上adb连接不到android手机可以参考:这里 xxxdeMacPro:~ xxx$ adb start-server * daemon not running. starting it now on port 5037 * ADB server didn't ACK * failed to start daemon * 出现上面的情况,其中一种情况是其它软件占用了端口,可以 直接干掉占用端口的进程,怎么查看 google 一下方法,挺多的 还有一种就是坑了,我也找了好久,真是个大坑

Android开发时包名、签名、渠道和版本号的易坑点(转)

本文中总结一下 Android 开发中容易被忽视的一些注意事项吧: 一.谨慎选择包名 包名 (Package Name) 就相当于一款应用在户口本上登记的名字,是系统用来区分不同应用的字段.重复的包名会被认为是同一款应用,不能同时安装在一个系统里.一般来说,包名建议使用域名反序.比如豌豆荚的网站域名是 www.wandoujia.com,那么豌豆荚的一系列 Android 应用的包名就是 com.wandoujia.***.这种约定俗成的办法可以最大程度地避免“撞名”的事故. 案例一 某个手机

最强最全干货分享:Android开发书籍、教程、工具等

最全干货分享,本文收集整理了Android开发所需的书籍.教程.工具.资讯和周刊各种资源,它们能让你在Android开发之旅的各个阶段都受益. 入门<Learning Android(中文版)>本书为Android开发入门图书,循序渐进地介绍了如何利用Android基本构件来实现构造用户界面.存储数据.连接网络等实践中必不可少的需求.作者以亲手实现一个类Twitter的应用为主线,通过不断为其添加功能展开讲解.而这一学习过程积累出的代码模式库,可以灵活运用于真实Android应用开发.本书内容

解决Mac上Android开发时adb连接不到手机问题

今天在Mac OS上进行Android开发的时候,打开eclipse连接不到手机MX4问题 1. 插入手机打开 Terminal,输入 system_profiler  SPUSBDataType 2. 在显示结果中找  Vendor ID: USB 3.0 Hi-Speed Bus: Host Controller Location: Built-in USB Host Controller Driver: AppleUSBXHCI PCI Device ID: 0x9c31 PCI Revi

【转载】Android开发时,那些相见恨晚的工具或网站!

源码网站 https://github.com/googlesamples Android系统每次推出一些新特性,Google都会写一些Demo放在Github上,对于想要了解新特性怎么玩的同学,肯定不能错过它. https://www.codota.com/ 如果你不知道一个Android的类怎么用,可以在Codota上面快速的找到很多不错的示例代码. https://android-arsenal.com/ 你是否还在为找不到合适的开源库而苦恼,Android Arsenal这个网站已经帮你

android开发时,finish()跟System.exit(0)的区别

这两天在弄Android,遇到一个问题:所开发的小游戏中有背景音乐,玩的过程中始终有音乐在放着,然后在我退出游戏后,音乐还在播放! 我看了一下我最开始写的退出游戏的代码,就是简单的finish()语句.我想应该是这个地方出了问题.后来想了想,以前好像见过有用System.exit(0)退出游戏的,然后就尝试了一下,发现问题果然解决了. 现在来彻底弄清楚两者的区别. 首先一个Activity是有生命周期的,onCreate,onStart,onResume,onPause,onStop,onDes