Android新手,学习Android从哪开始

大家好,请问开发Android APP都需要那些知识?有类似PHP语音这样的YII THinkphp框架吗?

开发一个类似河狸家这样的APP需要多久和那些技术?

谢谢SF的兄弟们。

阅读 12.1k
14 个回答

看你的Java水平了,如果对Java一窍不通,那么还是建议先从Java学起吧,如果你是从Java转Android方向,那么看看郭霖的《第一行代码》,看完后,一定要学习http://developer.android.com/index.html,如果仍有余力,建议参照https://github.com/google/iosched进行系统学习,因为该开源项目是由google出品,学习其开发思维和开发规范。

手机软件和其他网页或者台式软件有一定的区别。例如内存相对小,屏幕相对小等特性。

我学安卓的时候我是已经有三年iOS的经验。对手机开发有一定了解。我大概用一个月就了解了很多基本东西。初学者如果每天都说一点应该三个月可以了解基本。

新手上路,请多包涵

提供一些优秀的资源
Android系列课程
Coursera上的公开课,链接中是系列中的第一部分。对基础知识点有较全面的介绍,作业难度不大,但对知识点的考察和应用。
「Android编程权威指南」
几乎是最好的Android入门书籍,将Big Nerd Ranch一周课程改编而成。
学习本书中,就像有一位细心的老师在身旁,总会最及时地回答你的疑问。

先了解下android的四大组件是什么,然后动手写一些小的项目练练手,不懂的问android官方文档,写了两个之后,发现自己不懂的会越来越多,这时候你会发现需要一本书来系统性的学一学android了,推荐一本《第一行代码》

首先熟悉api,看api demo。然后实际做一些东西慢慢积累经验。如果没有目的,看了未必能理解,也很容易就会忘记。在项目中摸爬滚打成长最快。

除了可以参考Google官方教程,看<第一行代码>,一开始先接触简单项目更直观,可以在极客学院 上先看看别人开发的大致流程(记得一开始注册送一段时间VIP,视频都能看).
至于框架,可以试着学习国人的Andbase框架,代码还不错,松耦合,主要控件,网络请求,图片处理的库基本集成了.

其实看书不能直接动手写代码,最近在慕课网上学习一些自定义view的实现,当然也有基础的Android教程,推荐给你。

新手上路,请多包涵

推荐郭霖《第一行代码》

可以参考下这篇知乎Android精华区的回答:
JAVA学到什么水平就可以转战Android了?
先简单的分两种情况:
一、有编程基础,或者科班出身的,直接上吧。强烈推荐郭霖老师的《第一行代码-Android》
二、没编程基础的,先入门java,如果天天都有比较多的空闲时间的话,这个入门时间要在2周完成,如果没有的话,1个月内完成吧,不要让拖延耽搁你的激情。
如果你准备好了进军Android:
不管你什么时候开始学习Android,请使用Android Studio,首现改主题,然后去网上搜一下常用的20个快捷键截图放在电脑桌面上!
如果是色彩盲,请自行收藏这个网站:Material Design Color Palette Generator
所有书上的UI部分扫一遍就行了,我相信现在还没有书按material design标准讲解。
从一开始起就严格按照material design写,Material Design我想你一开始学习的时候身边是没设计师的吧,但是按照标准,你不需要设计师:)
不要自定义一堆padding margin,但你需要边框,边距的时候,请看看?android:attr/里面有木有你需求的(由于android studio强大的补全功能,你一般只需打几个关键词就有提示了),比如你需要给一个ImageButton加点击效果,不要傻不拉几的去写一个selector了,你只需要输入 item select这些关键词,自动补全就会给你提示了。
不要定义一大堆乱七八糟的字体大小了,materail design上的几种基本字体大小可以满足你!
再也不要使用ListView了,改成RecycleView吧!
再也不要寻找第三方下拉刷新控件了,SwipeRefreshLayout肯定符合你的要求(不信你看,知乎Android客户端都是用的这个(●ˇ∀ˇ●))。
再也不要使用第三方侧滑栏了,DrawerLayout能满足你!
再也不要使用ViewPagerTabStripe这一类的第三方Tab控件了,请使用TabLayout!
再也不用找圆形头像控件,圆角控件了,其他的Univeral Image Loader /Picasso也不用看了,直接上Fresco | Fresco 中文说明吧,它都有!不如用省下的时间看看Fresco的源码。
少去国内论坛瞎晃,然后各种求指点,安心写两个月,你会发现自己水平比他们都强,有问题请去stackOverflow搜索,国内博文除了几个大牛的都少看,都是假的!都是骗人的!很多写着是原创,但是博文内容他们自己都没试验过,鄙视这些不负责任的!
少听一些人说的有问题要写博客记下来!把这个时间省下,学一下UML图怎么画,给自己的工程加一些规范的注释吧!你的这些规范的源码和规范的注释就是你以后的资料库和经验库!
请学会使用Git,自己一个人也要用,我们先不说那些团队合作什么的高大上的,就说你这一版代码修残了,要从原来的重新修改,怎么办?用Git,回滚版本!就说你突然一天电脑出问题了,或者你范二了,没备份就重装系统了,想哭怎么办?用Git,再也不用担心代码突然丢啦!
---------------------------------2015/8/13-------------------------------------------------------
评论里面有些同学有疑问关于如何学习material design控件,我的建议是去GitHub搜,有很多同行给的例子,比如chenyangcun/MaterialDesignExample · GitHub

这些栗子足够入门。

---------------------------------2015/8/8----------------------------------------------------------
有朋友说要是动真格的话,需要NDK以及JVM等的知识,首现NDK并不是神秘的东西,你跟着官方的步骤走一遍就知道什么回事了,无非就是一些代码格式以及原生/JAVA内存交互,进阶一点的有原生/JAVA线程交互,线程交互确实有点蛋疼,但平常避免用就好了,再说对于初学者来说关心NDK干嘛,据鄙人以前的经历,只在音视频通信和一个嵌入式信号处理(离线)的两个项目中用过,嵌入式信号处理是JAVA->NDK->.SO->MATLAB这样调用的我原来MATLAB的代码,其他的大多就用在游戏上了吧,一般的互联网公司会有人给你公司的SO包的。
至于JVM,该掌握的那部分,相信我,你会掌握的,不该你掌握的,有那些专门研究JVM的人来做,不如省省心有空看看计算机系统,编译原理。
一句话,平常多写多练,这是最基本的程序员的素质,尽量挤时间,读理论基础书籍,JVM不是未来30年唯一的虚拟机,JAVA也不一定再风靡未来30年工业界,其他的系统和语言也会雨后春笋冒出来,但你理论扎实会让你很快理解学会一个语言或者框架,你平常写的多会让你很快熟练的将新学的东西应用到实际中。

初学者,一句话,多练。

1.有java基础
2.直接看视频或者买本书(慕课网等教学视频网站),跟着写例子,多练习。 这就是捷径。

推荐问题
logo
101 新手上路
子站问答
访问
宣传栏