为了账号安全,请及时绑定邮箱和手机立即绑定

遇见好答案,Android开发问答专场

遇见好答案,Android开发问答专场

慕女神 2016-08-08 11:45:25
移动互联网已经成为当今世界发展最快、市场潜力最大的业务,而Android则是移动互联网上市场占有率最高的平台。移动互联网与Android的结合必然带来更多的就业机会与创业机会,这都值得每个安卓开发者好好把握的时机!What?有问题还不快快来提问,安卓大咖等你来!李刚,十余年软件开发从业者疯狂软件教育中心教学总监,疯狂Java实训营创始人广东技术师范学院计算机科学系兼职副教授培训的学生已在华为、IBM、阿里软件、网易、电信盈科等名企就职。国内著名高端IT技术图书作家,其中疯狂Java体系图书均已沉淀多年,赢得极高的市场认同,并被多所“985”、“211”高校选作教材。在评论区块,发布一条问题并在描述中 @李刚老师活动时间:8月8日--8月12日慕女神希望:你的问题是经过深思熟虑,且描述问题要详细;你能友好的和专家探讨问题的答案,有异议可以友善发表观点,拒绝互喷;大家好,很高兴能来到慕课网和大家就Android开发的话题进行交流。近年来新兴的移动开发市场,对广大开发人员来说既是挑战也是机遇。尤其对于有Java开发基础的程序员来讲,转身于Android开发并非难事,只要遵循一定的学习规律,多动手写案例,开发出可以付诸使用的APP则变得指日可待。进而,从Android开发转向iOS应用开发,也不再是什么难事。
查看完整描述

96 回答

?
qq_向来缘浅柰何情深_0

TA贡献2条经验 获得超24个赞

@李刚老师  请问如果学完慕课网的Android工程师求职路线,能不能到达出去工作的水平

查看完整回答
21 反对 回复 2016-08-08
  • 李刚老师
    李刚老师
    我暂时还没有时间去审查慕课网的Android工程师求职路线,所以这个暂时不方便发表时间。 但就找一份android工作的要求来看,这个要求并不高,其实只要扎实学完Google官方提供的Android Developer Guide或《疯狂Android讲义》,将书中每个案例都好好练熟,找份工作完全不是一个事。
  • 李刚老师
    李刚老师
    基本要求是,很好地掌握Java编程。 Android方面必须掌握以下内容: 界面编程、各种UI组件的用法和扩展用法,自定义UI组件。 Activity、Service、ContentProvider、BroadcastReceiver这4大组件肯定要乱熟于心。 Android的各种资源管理 图形、图像以及动画机制, 各种数据存储机制、SQLite、 网络通信编程 各种传感器编程 定位与地图开发、以及第三方地图开发
  • 慕仔7159344
    慕仔7159344
    嗯······
点击展开后面1
?
诺言0时光

TA贡献4条经验 获得超15个赞

@李刚老师

老师您好,我现在是一名Android开发初学者,在慕课刚刚看完了android工程师培养计划,现在我和我的几位同学正在开发一个app,但是因为这是我们第一次开始做app,所以对于如何开发一个app的流程还不是很清楚,我也看过了一些人家的建议,但总感觉没有合适的,所以我想请问老师您有没有什么好的建议或推荐之类的。

查看完整回答
15 反对 回复 2016-08-09
  • 李刚老师
    李刚老师
    开发流程都是通用的,一般建议是: 1. 项目计划——确定你的APP要做什么、应用需要的界面及界面跳转、数据存储方式(本地还是来自后台服务器)等。 2. 项目设计:设计项目架构,确定技术选型,界面用Java开发?还是HTML 5开发?屏幕适配的解决方案、数据存储、网络通信、数据缓存解决方案、性能优化方案等。 3. 设计界面:确定APP整体风格、让美工把APP的各个界面做出来,切图,菜单、按钮、对话框等各种界面元素都需要完整的设计。 4. 编码实现。有时候可能还需要做后台服务端开发。 5. 测试。 6. 签名发布。
  • 李刚老师
    李刚老师
    很多时候,你觉得开发起来不顺利,除了流程不熟之外,可能也由于技术不扎实。
  • 诺言0时光
    诺言0时光
    是的老师,我也觉得有时候还是技术太薄弱.
点击展开后面1
?
ZWYmiss

TA贡献1条经验 获得超15个赞

@李刚老师

您好老师,现在HTML5开发app越来越多,未来是否会取代Java来开发Android呢?

查看完整回答
15 反对 回复 2016-08-08
  • 李刚老师
    李刚老师
    对于一些偏重展示、广告、而且需要经常更新的内容,用WebView嵌入一个HTML5页面可能是较为成熟的做法,可以做到及时更新,不再受制于应用商店的审核,快速上线。也可以同步更新Android和iOS APP的应用界面。 HTML 5的主要优势在于上手快,对于一些前端编程人员而言,可以迅速切换为Android、iOS开发人员 对于一些用户交互、响应较高的APP,HTML 5应该目前很难媲美原生android API 。无论是用户交互的实时性,还是响应的效率,以及性能的优化上,HTML 5都很难与Java开发的Android应用媲美。
已采纳
?
null_xj

TA贡献1条经验 获得超7个赞


@李刚老师 您好!

我是一名应届毕业生,现在的公司做的是阿里云OS的android开发,感觉云OS基本都没人用,现在学了这些,以后想重新找工作会不会很难?

查看完整回答
7 反对 回复 2016-08-10
  • 李刚老师
    李刚老师
    你说的是对的,所谓的“云OS”基本没有人用了。 国内这些所谓的OS,其实只能算android rom,由于Google正逐步加强对Android的控制,而且Android越来越成熟,因此这些Android ROM的存活空间越来越小。不过你也不用太担心,因为本质上你依然是在做android开发,因此以后即使更换其他Android平台也不会有太大问题的。
  • null_xj
    null_xj
    谢谢老师!
  • 陪你Sunset
    陪你Sunset
    其实云os和是android是完全两个不同的系统,但是底层结构代码什么的很像,以至于很多人认为云os是一个android rom,但是云os的确是个系统,区别于android,但是为了让这个系统更广泛,这个系统兼容了android程序。
?
慕粉3276784

TA贡献4条经验 获得超47个赞

@李刚老师

老师通过这段时间的学习,个人有一种感觉,“任何技术来源于生活,服务于生活。一切好的技术都能的在现实生活中找到例证。比喻Java的继承和封装特性。还有很多例子。要想更好的学习技术,一定要更多的在现实生活多思考,进而在技术中去研究验证和结合,大胆假设。小心求证。方才能到达技术的巅峰,(技术生活化,生活技术化,)(程序人性化,人性程序化)。《疯狂java讲义》这本书很全面的论述了这个观点,站在了一个鸿观的角度来讲解技术层面,非常精辟和专业,非常适合我们这种浮躁的初学者。不但教会了我技术,更教会了我驾驭技术的能力。对此请问老师是怎么看待这个观点的?

查看完整回答
9 反对 回复 2016-08-09
  • 李刚老师
    李刚老师
    哇,我对你的感悟有点震惊,不知道你学习编程多久了。 我从事编程多年之后才能得到你这种感悟:技术生活化——年轻时我学习编程时,开始以为编程很复杂。20多年前,我刚开始接触RAM(国内翻译为随机访问存储器)这个概念时,我想了一个学期都不明白,我觉得计算机真是“神奇”,计算机数据居然可以随机访问,我当时的理解是:设备随机在某个点记录数据,接下来设备居然可以随机在另一个点读取数据,很长一段时间以来,我对编程都很敬畏,感觉这东西太神奇了。 多年以后,我开始对编程有了更深刻的理解,逐渐明白:计算机科学,其实并不神奇,甚至可以说简单,因为科学本身来自生活,或者说任何科学家首先是一个普通人,他的“科学思维”一定源自生活,真正理解了这些看似“高深”的知识、并生活化的方式理解这些知识之后,就不难发现它们其实并不高深。打个比方,很多人觉得内存分配、内存管理很复杂,其实内存管理的机制可能来自酒店中“房间管理”:酒店为了有效地管理所有房间,于是给每个房间都编个房间号;系统为了有效地管理所有内存单元,于是给每个内存单元都编个号码——这个号码就是所谓的内存地址。其间小小的区别只是酒店管理房间编号用10进制,而系统管理内存单元编号用2进制。 “技术生活化”这句话非常好!
  • 慕粉wz
    慕粉wz
    强烈赞同!
?
殷昊

TA贡献1条经验 获得超10个赞

@李刚老师

老师您好,现在APP市场的需求已经越来越趋向于饱满,一批又一批的培训公司出来的学员打着两年工作经验来搅乱市场,从而导致现在的IOS和Android找工作越来越难,让我们这些自学安卓的应届毕业生不知怎么办,所以想请教一下老师对于以后的Android的市场怎么看?我们应该学好Android的哪些功能才能够让我们更突出?还请老师解答,谢谢!

查看完整回答
10 反对 回复 2016-08-09
  • 李刚老师
    李刚老师
    1. APP市场确实逐渐饱和,任何技术都是这样一个周期:缺口大-->大量人进入-->饱和-->稳定。所以趋于饱和是完全正常的。 2. 心态要好!如果是真正好的培训机构出来的学员,别人经过长达半年、甚至一年的系统而艰苦的学习,确实比应届毕业生更好用。你此时的心态其实已经暴露了你心理上的弱势。 3. 长期来看,Android市场会一直存在,但Java市场肯定比Android市场更大。 4. 对于找份Android工作的要求:基本要求是,很好地掌握Java编程。 Android方面必须掌握以下内容: 界面编程、各种UI组件的用法和扩展用法,自定义UI组件。 Activity、Service、ContentProvider、BroadcastReceiver这4大组件肯定要乱熟于心。 Android的各种资源管理 图形、图像以及动画机制, 各种数据存储机制、SQLite、 网络通信编程 各种传感器编程 定位与地图开发、以及第三方地图开发。
  • 殷昊
    殷昊
    因为我也是培训出来的,不过培训的是Java,然后感觉培训也只是入个门,所以我并没觉得培训不对,毕竟都是学,只是有些培训公司出来的学员,学的并不好,但是找到了一份好工作,结果没工作两个月能力不行被公司开了,渐渐的公司也会有这方面的阴影,然后从而导致我们没造假的找工作也有点抵触。不过老师您说的确实是本质,心态很重要,学好技术才是最重要的,谢谢老师!感谢!
?
没有颜色叶子

TA贡献1条经验 获得超8个赞

@李刚老师

您好!我是一名正在自主学习Android开发的开发小学生,基本功可能不是很扎实。不知道是先把java的基础知识学习透了再学习Android开发;还是直接在Android开发的实例当中来积累java基础知识并灵活贯通好一些?如果要学习java来为Android奠定基础的话,那java需要学习哪些知识结构就可以满足Android开发需要?希望李刚老师能给予指导和建议。谢谢祝您生活愉快!

查看完整回答
8 反对 回复 2016-08-09
  • 李刚老师
    李刚老师
    当然应该是先学习Java知识啊,千万不要浮躁。你们是从哪里听来可以从Android开发实例当中来累计Java基础知识这种学习方法的?现在的年轻人怎么浮躁成这样了。 Java学好了,基础打扎实了,android学起来其实很容易。 最起码,Java的流程控制、面向对象、集合、常用API、泛型、注解、IO、网络通信这几块内容要弄熟,多线程最好也能掌握。 学习Java推荐《疯狂Java讲义》
?
路漫漫哟

TA贡献1条经验 获得超8个赞

 @李刚老师

Android未来发展趋势是什么,该如何进阶。

查看完整回答
8 反对 回复 2016-08-08
  • 李刚老师
    李刚老师
    如果已经掌握了Android应用开发的相关知识。 Android进阶开发大致有两个方向: 1.向游戏开发方向发展,这肯定是未来的一个趋势,这要求开发者对图形图像、动画处理的更加熟悉,并掌握OpenGL-ES开发,当然也需要掌握一些成熟的游戏引擎。 2.另一个方向就是物联网方向,未来物联网必然是大势所趋,物联网的要求是所有设备都能“智能”,目前来看iOS肯定不现实,Android也是必然的选择,因此进阶学习Android底层NDK开发,底层驱动开发,这一块都有很好的市场前景。
  • 夏Jue
    夏Jue
    考古!不过老师说的好有道理!每一条回复都看了,醍醐灌顶啊,我现在也是面临进阶的迷茫
  • 慕粉1020236938
    慕粉1020236938
    受教了
?
萧雁翎

TA贡献57条经验 获得超235个赞

@李刚老师

    大神您好,今天能向大神本尊提问,激动不已,先膜拜3分钟...
    (3分钟过去了)
    我有一个想请教的问题:
    在后台的内存回收机制上,iOS、WP采用了墓碑机制,类似于“伪后台”,而我理解的Android的“真后台”机制是:
内存充足的情况下应用可以允许后台运行,但是对此有一些限制来保证程序不会持续耗电;每个应用在运行时都会被系统评级,当内存不足时将按照评级规则进行自动清理。
    所以理论上来说,严格遵循安卓设计标准的,安卓其实没必要去关注占用。但安卓的开放性,注定了不会有一个标准的环境,尤其是在国内这个安卓软件市场极为混乱的境况下,各种app的唤醒、自启、应用关联、争夺权限,在后台会占用大量硬件资源,造成用户体验变差
    而这本是因为许多国产app的流氓行为而造成的恶果,最后却影响了安卓系统本身的的声誉。关于这一点上,您如何看待?未来的安卓系统有没有可能针对这方面采取相应的改动?

查看完整回答
8 反对 回复 2016-08-09
  • 陪你Sunset
    陪你Sunset
    从android 4.4版本后获取root的权限越来越难,说明谷歌在对android控制加强
?
XhstormR

TA贡献140条经验 获得超197个赞

 @李刚老师


请问在声明 ViewHolder 内部类时,为什么要建议使用 static 关键字啊?

查看完整回答
6 反对 回复 2016-08-08
  • 李刚老师
    李刚老师
    这是Java面向对象的基础知识. 用static关键字就是静态内部类,使用起来更加方便;如果没有static属于非静态内部类——《疯狂Java讲义》上也将其称为实例内部类,实例内部类的实例必须寄生在外部类的实例中,用起来较为麻烦。
  • XhstormR
    XhstormR
    谢谢。
?
星期天Sunday

TA贡献4条经验 获得超13个赞

@李刚老师 安卓要学到什么程度,在外才能找到工作?

查看完整回答
7 反对 回复 2016-08-08
  • 李刚老师
    李刚老师
    基本要求是,很好地掌握Java编程。 Android方面必须掌握以下内容: 界面编程、各种UI组件的用法和扩展用法,自定义UI组件。 Activity、Service、ContentProvider、BroadcastReceiver这4大组件肯定要乱熟于心。 Android的各种资源管理 图形、图像以及动画机制, 各种数据存储机制、SQLite、 网络通信编程 各种传感器编程 定位与地图开发、以及第三方地图开发
?
ValarRay

TA贡献11条经验 获得超9个赞

@李刚老师

李刚老师,你如何看待Android Studio开发平台,像我们初步接触安卓开发时的同学,需要eclipse和Android studio都掌握吗,还是说先精通一个(主要为了找工作 ^_^ 

查看完整回答
5 反对 回复 2016-08-08
?
JustWannaHugU

TA贡献452条经验 获得超796个赞

@李刚老师

李老师您好,我是一个有java基础的初级开发者。最近在自学android开发,在学习的方法上存在些困惑;

1.Android开发学习是要以点为单位面面俱到的学习好呢,还是通过项目的实战(哪里不会再回头找API文档或者视频进行学习理解)来学习好呢?

2.android开发现在如火如荼,开发者学习者众多。那么如何保证自己在众多开发者中有闪光点,能够脱颖而出呢?您认为,除了知识体系,项目经验之外,什么才是android开发者的核心竞争力呢?

3.希望有机会拜读您的大作!谢谢


查看完整回答
5 反对 回复 2016-08-08
  • 李刚老师
    李刚老师
    1. 我的学习方法是,按照知识本身的规律,由浅入深、循序渐进地把每个知识点都掌握扎实了——后面很多事情就水到渠成了。你提到的学习方法,尤其是所谓的通过“项目实战”不会的查找API文档或视频,这种方式我是比较反感的,因为很难找到一个项目会用到整个Android体系的所有知识,这种方法看起来很快,实际上往往适得其反:可能可以在短时间内跑通一套流程,但只要实际开发中项目略微发生一点改变,往往就束手无策。国内这样浮躁且自以为是的所谓程序员太多了。
  • JustWannaHugU
    JustWannaHugU
    嗯,一步一个脚印才是根本的学习之道。
?
风儿吹

TA贡献1条经验 获得超5个赞

 @李刚老师  现在在学习移动端,发现市场上有好多的框架,我们如果要做的话是选择一个框架进行还是自己写代码,还有如此多的框架我们如何选择?如何快速的入门?

查看完整回答
5 反对 回复 2016-08-08
  • 李刚老师
    李刚老师
    通常都会选择一些成熟的框架,在已有框架的基础上进行开发。 这样既能利用已有框架的成熟、稳定,也可以充分提高开发效率。
?
qq_童年_1

TA贡献7条经验 获得超11个赞

@李刚老师

你好,我现在准备读大三了,主攻的方向是JavaWeb开发,但是我又想以后做安卓开发,因为感觉安卓开发比Java开发更受欢迎,而且平均工资更高,前景更加广阔!我现在学了一些安卓的基础知识,但都不是很懂,因为Java都没有学的很好,所以学起安卓来还是很有难度,学校老师有没有教安卓的,只能够靠自学,但是自学确实难度很大啊,Javaweb方面有没有什么项目经验,感觉出来很难找得到工作。现在都不知道自己做哪一个方向的开发好,希望老师指点一下我们这些小白!

查看完整回答
4 反对 回复 2016-08-09
  • 李刚老师
    李刚老师
    学好Java Web开发,再掌握一些主流的企业级Java框架,其实就业面非常广,工资也未必比android的工资低,相反今年android的就业市场正在逐渐趋于稳定,可能并没有你期望的那么大的市场缺口。 话说回来,无论是学习Java Web开发、还是学习Android开发,其实Java语言都是根本,因此建议一定要把Java先学好。建议参考一下《Core Java》或《疯狂Java讲义》,如果都能很快看懂,书中案例、习题都能做好,那么Java功底足以很好地学习Java Web开发或Android开发了。
  • 李刚老师
    李刚老师
    至于你提到Java Web或Android两个方向,再我看来其实并非泾渭分明的,只要Java学好了,前期你可以任意选择一个方向学习,以后你一定能很轻易同时掌握Java Web开发和Android开发的。
?
星期天Sunday

TA贡献4条经验 获得超13个赞

@李刚老师,安卓学习中需要掌握哪些核心知识

查看完整回答
5 反对 回复 2016-08-08
  • 李刚老师
    李刚老师
    基本要求是,很好地掌握Java编程。 Android方面必须掌握以下内容: 界面编程、各种UI组件的用法和扩展用法,自定义UI组件。 Activity、Service、ContentProvider、BroadcastReceiver这4大组件肯定要乱熟于心。 Android的各种资源管理 图形、图像以及动画机制, 各种数据存储机制、SQLite、 网络通信编程 各种传感器编程 定位与地图开发、以及第三方地图开发
?
鲁国人

TA贡献2条经验 获得超3个赞

@李刚老师 马上就要选专业方向课,但是学校老师并不看好Android推荐JAVA,要是学习Android的话老师可以给些建议吗?

查看完整回答
3 反对 回复 2016-08-08
  • 李刚老师
    李刚老师
    我觉得你的思路是错误的——我知道市面上很多培训机构出于种种目的,强行将Java和Android分离开来,其实我觉得这本身是错误的。因为Android和Java并不是泾渭分明的: 1. 如果你要学习Android,首先就需要学习Java,Java学的越好,Android学习起来越轻松。 2. 有些人可能会想,我只想学Android,我略微学一下Java基础语法即可,应该不需要学习那么多Java开发框架吧。但实际上Android里有些框架,原本就已经在Java开发中用到,比如HttpClient以及其他Web Service框架就是这样。从实际企业开发来看,如果是一个大公司,可能确实有专门的Android开发人员,不需要开发后台Java应用;但大部分中小型企业,你开发完Android客户端,企业往往也希望你参与后台Java开发。 总结一下:你学好了Java,学Android非常容易,你可以把Android就当成Java的一个框架。
?
ziom

TA贡献948条经验 获得超1109个赞

@李刚老师

请问您的这本《疯狂Android讲义》具体内容有什么?适合哪些人群?

查看完整回答
3 反对 回复 2016-08-08
?
weichenNB

TA贡献1条经验 获得超3个赞

@李刚老师,我有c和JAVA基础,如果入手安卓需要重点区别哪些内容~您觉得作为一名合格的开发人员,需要掌握哪几个基础的计算机语言?

查看完整回答
3 反对 回复 2016-08-08
?
陵辉

TA贡献2条经验 获得超5个赞

@李刚老师
老师您好,我刚接触Android开发不久,平时也比较喜欢折腾折腾手机什么的,开发基础的话,刚看完Headfirst Java和第一行代码的全六章,有些内容也需要理解,不过在日常使用APP的时候有遇到一些问题,据我所学,Android APP的联网是需要在清单文件中申明权限的,社交APP的信息通知提醒也是客户端从服务器接受对方发回来的信息,然后发送广播调用系统震动或者声音提醒功能,但是当APP出于后台的时候,经常会出现接收不到提醒,有收到信息但是没有震动或者声音提醒,有时候APP会直接自己断开网络连接,需要重新启动APP才会连上网络,请问为什么会出现这种情况呢?谢谢!

查看完整回答
3 反对 回复 2016-08-08
  • 李刚老师
    李刚老师
    学习android建议参考Google官方的Android developer Guide或《疯狂android讲义》——或者其他知识体系与Android developer Guide类似全面的图书,市面上各种参考书鱼龙混杂,可能本身就存在系统性和全面性不足的问题,所以导致你知识掌握不系统。
首页上一页1234下一页尾页
  • 96 回答
  • 17 关注
  • 52890 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信