Android开发时你遇到过什么相见恨晚的工具或网站

Android开发时你遇到过什么相见恨晚的工具或网站?

对于很多Android/ios/wp个人移动开发者来说,开发一个具有网络功能的应用不是一件容易的事,不仅需要购买/租赁服务器,还必须掌握一门诸如Java/.net/php这类的服务器开发语言,每开发一款移动应用程序,就必须开发维护对应的服务器程序。这一切对于移动开发者来说,都是一个冗长的噩梦。今天发现现在有这样的云平台可以让开发者只需注册一个帐号,成功后申请创建任意多个数据库,获得对应的Key,下载对应版本的SDK并将其嵌入到移动应用中,便可以调用存取API,进行数据的任意操作。这样就无需关注后台,专注于客户端开发就行了。不知道大家有没有遇到过类似的相见恨晚的网站或工具?
按投票排序 按时间排序

74 个回答

覃超 ,曾经沧海难为水,Facebook工程师
我来好好谈谈我的看法和感悟。仔细看了楼主的问题(特别是详细描述),感觉题主的关心点是想知道什么现成的工具和平台可以简化Android App的开发,让其更轻更有效率迭代更快。我就从这个出发点上来回答:

首先是在后端上,推荐用企业服务,而不是自己搭后端。比如,使用 Parse,或者是国内的 LeanCloud 。LeanCloud我好像听人吐槽bug多,但是如果自己团队来开发后台的话,照样bug也会一堆,而且还把别人踩过的坑又重新来踩一遍。我自己做过demo,发现使用Parse(Facebook自己也在用)或者LeanCloud,的确让 Android App 开发一下子快了一个级别。整个创业团队只需要把精力让在 App的交互和体验上即可,而且项目转型也可以很轻很快。如果实在LeanCloud无法满足,那么在创业初期,最好也租用云服务,比如阿里云,青云之类的,而不是买服务器自己从头开始搭起。

其次在App端的话,则大规模使用开源库(请站在巨人的肩膀上)。首先技术负责人把所有常用的Android开源库都理清一遍,然后选项目需要的库。另外在文档方面,推荐两个我自己筛选过的很好的文档给创业团队。(只推荐2个,因为Android文档现在是太多而不是太少。在这个信息爆炸的时代,我们需要的是优质的技术文档,同理还有能够专注的技术人员):

1. Android best practice: futurice/android-best-practices · GitHub
中文版: android-best-practices/README.cn.md at master · futurice/android-best-practices · GitHub
2. 对GitHub上的各大开源库的收录和分析: Trinea/android-open-project · GitHub

另外再推荐一个人: JakeWharton (Jake Wharton) · GitHub (Jake Wharton:此人在Square,而Square也位列我之前所说的湾区四小龙之中)

最后一点,也是最重要的一点:能不做App就不做App。
我这一年来看了大量早期的创业项目,特别是技术不是很强的团队。他们普遍都急着想做一个app出来,感觉好像没有app就不能叫做创业公司,就没法出去和人打招呼一样。其实很多创业项目,微信公众号的功能就能满足。除非公众号提供不了你的主打功能,不一定非要急着上app。开发app一来成本很大,二来容易把整个团队精力消耗殆尽。所以还不如先用微信公众号试试水,吸引一批种子用户,看看用户反馈,然后快速改进;这样的模式更轻更快。

---- 题外话 ----

有时遥想当年,在Facebook做Android和iOS开发,由于毕竟是大公司,里面的自有工具,内部库还有技术大牛都很丰富,所以基本上除了使用少数几个经典开源库之外,其他大部分都是自己写,比如 Buck,FBNetworking,FBCache,FBImageLoader等等。这对于创业公司来说是完全不试用。一来没人手,二来很容易碰到一个技术难点就把整个公司给陷进去了。现在想想,当年在大公司真是身在福中不知福啊。。。


--- END ---
- Do have the faith in what you love
收藏 没有帮助 作者保留权利
田元 ,Android学习群:392591666/爱并行/后端小…
  • google/material-design-icons ,material官方图标,不会做图标又想写APP练手的同学的福音;
  • ImageView的滤镜效果,详解Paint的setColorFilter(ColorFilter filter),一张纯白纯白图标蜕变为彩色和渐变色图标都不是事;
  • 事件流编程,github.com/greenrobot/E,一方面解耦各大组件之间的数据交互,再也不需要用AsyncTask这种上古时期的繁琐怪物了。而且在一些类型的应用中,事件流编程有着独一无二的优势,比如,我在做一个IM应用时,需要先打开Socket->发送登陆信令->服务端返回应用层ACK后开始启动心跳线程->发起交换私钥命令->交换成功后打开IM通道,如果用传统的回调函数来实现,很容易陷入多层花括号嵌套的困境,但使用事件流编程的思维后,我们只需要emit一个个的事件,在on中执行具体的业务,一个业务的结尾处emit下一个事件,你甚至可以直接再包装一层,组成下面这样子:EventModle.getInstance()->flow("event1","event2","event3","event4");
逻辑是不是瞬间清晰了~;
  • GitHub - wasabeef/awesome-android-ui: A curated list of awesome Android UI/UX libraries,再也不用担心自己写界面没灵感了~
  • pan.baidu.com/s/1qXdYqD,我在Android Studio出来了一年后才从Eclipse中跳出来,Android Studio真是大大提高效率,谁用谁知道,真恨自己没早点摆脱懒惰用~;
  • SurfaceView,developer.android.com/r,Android的动画机制进行伪3D变换时,卡顿的不行,但是在需要动画的地方,简单的覆盖一个透明的SurfaceView来做,极大的提升流畅性;
  • arraycopy(src, srcPos, dest, destPos, length)方法,瞬间摆脱Low到家的for循环来拷贝数组
  • 在Binder间传送序列化对象时,Bundle中不要用Parceble,要用Json序列化后的String!不然会有莫名其妙的bug
  • 进行类的单例化时,用这个就OK:
    public class myclass{
      //some property..
      // some mothod
      public static class HOLDER {
    public myclass instance = myclass();
    }  public static myclass getInstance(){
    return HOLDER.instance;}
    }
    
    不用再考虑其他什么线程安全是一次同步还是两次同步。
  • 但凡和线程池/线程/同步/锁等有关的实践问题,尽量不要用Android的解决方案,如AsyncTask,而要用Java中已经历经考验的实践方案 如FutureTask+ThreadPoolExecuters。
  • 数组复制,请使用System.arrayCopy或Arrays.copyOf 实现,且在JAVA中后者基于前者实现。
  • Android DataBinding,现在还没有完全的双向绑定,而且很多我们常用的属性的getter和setter也没有,需要我们手动wrapper,但我相信这些在未来都会有更便捷的方案的。
收藏 没有帮助 禁止转载
汤涛 ,专注Android最佳实践,公众号:AndroidTre…
这几年一直专注在Android开发,主攻海外市场,国内也有做过,浏览器,新闻,电商还有其他一些领域都或多或少有些了解,别的不敢说,国内外各种工具与服务还了解得比较全,没办法,人不够,工具服务来凑,这些工具服务帮了我们很大的忙,因此这题我还是可以答一答的。

其实在另外一题里,我已经大致介绍了我用过的国外主流第三方服务:
Android 开发:开始一个项目前,做好哪些准备可以事半功倍? - 汤涛的回答

这里我专门就工具服务展开说明下,同时补充介绍我推荐的国内第三方服务,每个类别尽量只推荐一个,太多选择其实就是没有选择。

统计分析
国内:Talking Data, 可惜友盟现在启动就带上阿里全家桶。
国外: Flurry, 国外统计分析系统的标杆,免费的。

Crash分析
国内: 腾讯Bugly, 号称全球唯一自带ANR收集,其实原理很简单,不知别家为何不做。
国外: Crashlytics, 已经收归Twitter Fabric开发者工具集,免费好用。

推送
国内: LeanCloud,这个没实际用过,身边朋友反馈很好。
国外: Parse, 正如 覃超所说,FB也在用,30qps免费限制,一般中小应用够用。

分享
国内: ShareSDK,专业做社交分享。
国外: 各社交平台自家SDK, 注意不同国家主流社交平台不同。

评论
国内:畅言, 基本抄的Disqus, 免费,算是良心产品了。
国外:Disqus, 基本不用考虑其他家的,虽然确实有竞品。

广告变现
国内:百度 or 广点通,两个效果差不多。
国外:FB or Google,做native广告,效果最佳。

支付
国内: 支付宝, 微信
国外: payssion, 专业做海外跨境收款的,能省很多事。

短信验证
国内:没用过,Google找一家最便宜的就行。
国外:Fabric Digits, twitter出品,居然不要钱。

灰度测试
国内:AppAdhoc,移动AB测试国内最专业的一家。
国外:optimizely, 支持Android, iOS, 直接在线改UI做AB测试, 三观都要颠覆了。

云测
国内:百度云测试。
国外:test in, 其实百度的也跑,国内的Android设备都卖到国外去了。

客服
国内:微客服, 有免费额度,中小应用够用。
国外:helpshift,国外最专业的客服平台。

推广
国内:这个真不了解。
国外:Appsflyer, 海外推广为数不多的选择之一。

可视化分析
国内:growingio, 还在内测中,linkedin数据分析大牛回国创业,据说黑科技,可以直接在app上实时查看各种转化率数据。
国外:appsee, 绝对黑科技,PM最爱,转化率什么的再也不怕上不去了,用过后我们团队成员一致好评,在我的微信公众号里有专门文章介绍使用体验。

----2015.11.27更新----
网络优化
国外:TwinPrime, 颇具特色的网络优化服务,目前正在尝试中,可移步我另外一篇回答查看
Android开发如何进行网络优化? - 汤涛的回答
国内:暂时还没发现同类产品,不过TwinPrime理论上是支持全球的。

最后,给大家介绍传说中的Android军火库,我很多东西都是在这里面找的。
国内: DevStore_移动互联网企业运营解决方案整合平台
国外: android-arsenal.com

----2015.11.28更新----
安利一下我的另外一篇回答,用心写的都木有人看,好桑心呀。
面试时,问哪些问题能试出一个 Android 应用开发者真正的水平? - 汤涛的回答

最近刚开始运营一个微信公众号AndroidTrending,里面主要是Android开发最佳实践,最好用的工具与服务的总结,如果大家感兴趣,可以关注一下。做技术有捷径,少走弯路即是。
收藏 没有帮助 禁止转载
知乎用户 ,Android开发工程师
题主说的是简化后端开发的。 @覃超已经说的很好了。

我那再说点其他的。
崩溃统计
  • 友盟
  • BugHD — 实时监控APP的崩溃分析工具
  • TalkingData
用户统计/分享/自动更新/应用内测
消息推送
  • 个推
  • 腾讯信鸽
  • 小米推送
  • 极光推送
自动化测试
  • Testin
  • 等等
程序加固
  • 梆梆加固
  • 爱加密
  • 360加固
  • Dexguard

以下是Android开发的

在线查看Android源代码,尤其适合没下载源码以及需要查看特定版本实现
示例代码搜索,API不会用怎么办,搜索个示例呗,从百万个来源中寻找示例代码。
Android趋势,了解最近大家在用什么,哪个项目火了
Android知识点
其他
  • Google,尝试一下用Google English版本,使用英文关键词,可能会比中文找到更好的解决方案
  • 翻墙(sorry,此部分。被人举报。 @王坚 ,抄袭我答案不提来源不说,顺道把我举报了)
收藏 没有帮助 作者保留权利
知乎用户 ,Full stack developer
保持水平不落伍每周要看
每周一期 Android Weekly
国内有 App开发 | 帖子版块分类

解决问题
Stack Overflow

找轮子
android-arsenal.com/

最大的同性交流社区
GitHub · Build software better, together.

系统
Mac OS X 或者 Linux 系统 能无痛NDK开发

模拟器
尽量用真机,实在没有的情况下使用 Genymotion

设计
如果没有UI设计师,自己想做漂亮但是懒得思考,那么就抄。
Inspired UI - Mobile Apps Design Patterns [Android]
Dribbble - Show and tell for designers
收藏 没有帮助
stormzhang ,微信公众号: AndroidDeveloper「googdev」
一名自学成才的Android开发者怒答!

1. Google
做开发前完全是小白,真心不知道有Google这东西,只晓得百度,遇到问题直接百度,不是黑百度,百度在娱乐八卦方面确实靠谱,但是技术方面查出来的东西基本千篇一律,有些答案甚至还会起到误导作用,直到有一天我的老大告诉我用Google,我才知道这个世界上原来还有另外一个搜索引擎,那个时候Google还没有被墙,从此算是迈过了一道坎。。。自此便成为脑残G粉。

2. stackoverflow
用Google之后搜索出来的东西还是习惯性的点击中文结果,直到有一天我发现基本每次搜索排名第一的都是这个网站,于是尝试着点进去用我蹩脚的英语阅读,之后真是相见恨晚的感觉啊,上面几乎能搜到你遇到的绝大部分问题,某种程度上来说推荐用Google搜索的原因之一是因为排名靠前的答案基本都在stackoverflow上。

3. GitHub
Google+stackoverflow基本上能解决开发中遇到的大部分“奇葩”问题了,但是开发到一定程度你需要进一步提升自己的技能,这个时候GitHub简直就是快速提升必备,在上面可以找到很多第三方组件,不用重复发明轮子,也可以直接阅读牛人们的代码,吸取他们的精华,代码读的多了不知不觉有一种质的飞越,直到最后你会开源自己的项目,大力拥抱开源社区,这是接触了另一个世界。

4. Terminal
命令行对于一般的开发基本接触不到,大部分开发都是GUI,最开始接触终端确实很抵触,但是一旦上手之后简直爱不释手,git, adb, sqlite, gradle, home brew, ruby, vim等直接一个终端搞定,命令行操作不但让你了解其原理,在别人眼里你就是个牛人!(mac上公认最好用的终端是iTerm)

5. Sublime
接触终端之后接触了vim这种轻量级编辑器,以前只知道IDE的概念,却原来不知道还有这么一群轻量级编辑器的存在,开始学习了一段vim,但是感觉上手有点难,也需要不少学习成本,之后同事推荐了sublime text,试用后便欲罢不能了,受够了IDE启动、编译的缓慢过程,现在查看并编译源码从来都是sublime + iTerm + gradle, 简单快速,至于你们提到的导入eclipse或者studio之类的简直太low了

6. Android学习之路
我当时学习Android的时候资料哪像现在这么多,开源社区也没有现在这么流行,所以学习起来很痛苦,很理解一些新手们无从下手的心情,为此写了一篇博客,夸张点说这篇博客已经公认为Android新手们的学习指南,甚至改变了一些人的命运。如果你现在才刚知道,也许相见恨晚。

7. 最后推荐下国内与国外Android开发一些不错的博客
当然我自认为我的博客还是非常有质量的 stormzhang博客精华

国内博客列表: android-cn/android-dev-cn · GitHub
国外博客列表: android-cn/android-dev-com · GitHub

8. Android Studio + Gradle
我学习的时候可没有这两个这么棒的工具,但是身为Android开发现在你还不知道这两个工具就out了,简直是Android开发的未来,提升你开发效率的同时还能提升你的逼格。怎么学习?跟着我的博客带你飞:
Android Studio系列教程一--下载与安装
Android Studio系列教程二--基本设置与运行
Android Studio系列教程三--快捷键
Android Studio系列教程四--Gradle基础
Android Studio系列教程五--Gradle命令详解与导入第三方包
Android Studio系列教程六--Gradle多渠道打包
收藏 没有帮助 作者保留权利
知乎用户 ,haust计算机专业,对心理学、认识科学有…
YangLogan Guo知乎用户 赞同
没有人提robotium吗?自动化测试框架。想想你要花多久的时间在调试、测试上面,就知道这个自动化测试框架有多重要了。
收藏 没有帮助
专注客户端开发,不想自己还写后端,那就用Bmob之类的云平台咯。
收藏 没有帮助

补充几个利器

  1. Gradle
Android Studio默认的自动化构建工具,可以单独用命令行运行。相比Maven、Ant,Gradle更易于自定义配置。如果有自定义构建的需求,Gradle可以节省巨大精力。如制作一个应用的多个变种版本时特别有用;例如友盟渠道打包,针对各个渠道做不同的渠道标记,一次性生成所有渠道包;在各个变种版本的包名、部分资源(图片、字符串、颜色等)、部分代码逻辑、AndroidManifest组件声明、签名、混淆都有所不同时,Gradle都能轻松搞定,如不同渠道需要定制不同的内容。构建脚本写好后,每次更新完共同部分代码后,就能很轻松的一次性生成所有变种。
  1. Gist
如果需要和别人分享某小段代码,或者是自己要保存短代码片段在云端,gist是个很好的选择,因为gist会自动用git对每次保存的代码文本进行维护,我们就可以随时查看历史数据,大胆进行新的更改。
推荐使用GistBox,对Gist做了一层漂亮的封装,它的口号是The Beautiful Way to Organize Code Snippets。
  1. Cmd Markdown 编辑阅读器
如果需要写Markdown文档,有个好用的Markdown在线编辑器可以少操不少心,此非作业部落出品的Cmd Markdown 编辑阅读器莫属。支持实时同步预览,实时保存数据在云端无需手动保存。
为知笔记现在也在全平台支持Markdown编辑和预览,但不能实时同步预览,有跨平台编辑的需要也可使用。
收藏 没有帮助
收藏 没有帮助
知乎用户 ,一介码农
Android Asset Studio拿来简单处理图片和找一些图标太方便了。再也不用去platforms目录翻图标了。
Stack Overflow虽然我是英语渣,但是这网站救过我好多回,几次遇到非常麻烦的问题都在上面找到了答案。
Material Design这个翻译好的 Material Design设计语言规范,帮到我这个英语渣,我看了好几遍。
还有优秀的博客 Trinea,以及他整理的GitHub开源项目列表。
收藏 没有帮助
Steve Nash ,背下陵高,足往神留,遗情想像,顾望怀愁
我补充一个网站吧, Material Design Icons,里面有很多现成的图标,来自社区和其他一些app,作为一个美术功底为零的开发者,做自己的项目的时候直接拿里面的icon来用……
收藏 没有帮助
知乎用户 ,Android Developer,ex运营。
  • V.P.N
因为众所周知的原因,AS的更新速度几乎没有,目前在用的是云梯,速度时好时慢,总体上还是不错的。(或者修改h.o.s.t : google hosts 2014,持续更新 ,这个站点更新比较及时)


Android 开发工具的一个整理,一般的工具这里都有。

每日一篇Material Design相关的文章

Android Weekly,这个不用说了吧,知乎上有中文翻译,戳这里: Android Weekly - 知乎专栏,非常感谢无私的翻译。

一个Android开源库整理的网站。

这也是一个挺有意思的网站,归纳整理Github的标记。

最后推荐 @stormzhang 老师的Android交流群(187252236),很少有闲聊,遇到不太懂的问题,都会有人耐心的帮忙解决。

=========2015.5.10更=========
云梯的速度实在是~~~~~~
已转向「轻.云.」,优点:快且稳定;缺点是略贵,26元/月/20G

=========2015.6,25更=========
@胡飞亚 童鞋推荐,可以使用亚马逊ec2免费的VPS搭建免费的VPN。

我最近转用到shadowsocks,几十块钱半年,速度还不错。
收藏 没有帮助 作者保留权利
Gracker ,无名之辈
说一下工具:
开发工具:Android Studio
内存调试工具:MAT
函数流程调试工具:Systrace和Method Trace
代码托管:Github
团队协作:Tower
收藏 没有帮助
从开发中一些细小的地方说一些有用工具和技巧:
  1. 快速为设备截图并将截图取到本地。经常使用,方便快捷。
    function adbsc() { adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > $1.png; }
    

  2. 如果你和我一样,在开发时可能需要同时连接多台Android设备,那么默认的adb命令用起来就不太舒服了(需要用-s指定序列号)。为此有人写一个Shell脚本,我在此基础上写了一个Python脚本,为其加入高亮和过滤功能。
    使用的效果的是这样的:

  3. Jeff Sharkey写的Logcat color scriptJakeWharton写的pidcat
    使用的效果分别是:

  4. WiFi ADB - Debug Over Air 部分时候会用到无线adb的方式。需要Root。
  5. 通过adb backup ,在非root的情况下拿到数据库等文件。方法见Random Stuff: Access Android app data without root。这个方法恐怕知道的人不多,有些时候非常有用。
  6. 有些时候并不方便连接电脑,需要直接在手机上查看数据库,这时候SQLite Editor这样的软件就派上用场了。需要Root。
  7. DebugLog,很简单的一个Lib项目,却能在很大程度上帮助开发者。可以在打印Log的时候自动打印出方法名和行号。
收藏 没有帮助 作者保留权利
Kaede ,暇な時、君を想うと、恋いしくて、すれば…
Eclipse/Intellij/Android studio 的工具栏里的 Refactor,人生短暂,请用Refactor
收藏 没有帮助
小郑 ,程序员,客户端前端工程师
知乎用户、Robinnick john 赞同
Jenkins,让产品自己打渠道包简直解放了我!
收藏 没有帮助
少年 ,Game Developer
珍爱生命,请用真机调试
收藏 没有帮助
知乎用户 ,移动互联网/安全
dash
收藏 没有帮助
Allan ,Android 爱好者 -> 开发者
Stetho - a debug bridge for Android applications
还在用 logcat 么,还在用 Log.v 么?
Stetho 让你用 Chrome Develop Tools 来看你所有的网络图片请求,所有的 SharedPreference 以及所有的 SQLite 数据库。
收藏 没有帮助 作者保留权利 更多
我来回答这个问题

写回答…

加入知乎

与世界分享你的知识、经验和见解

验证码
已有帐号?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Extra Icons插件是适合想要让IntelliJ IDEA的Project视图更加亮眼的用户的插件。它增加了一组默认情况下IntelliJ IDEA不支持的图标,这些图标不仅美观,还能简化文件之间的导航,因为您可以更直观地识别文件类型。最重要的是,这些图标是高度可定制的,您可以在Preferences/Settings -> Appearance & Behavior -> Appearance -> Extra Icons中进行微调。\[1\]这个插件可以让您的开发环境更加个性化,并提升您的开发效率。 #### 引用[.reference_title] - *1* [Intellij IDEA(Android Studio)好用的插件和软件](https://blog.csdn.net/qq_33505109/article/details/81171590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [IntelliJ IDEA中有什么让你相见恨晚的好用插件?](https://blog.csdn.net/jakpopc/article/details/125409655)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [个人实践总结 -- IDEA 优秀开发提效插件推荐](https://blog.csdn.net/weixin_41905660/article/details/127776315)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值