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

【花式填坑第7期】如何开发一款完整的Android App?

/ 猿问

【花式填坑第7期】如何开发一款完整的Android App?

慕女神 2017-06-06 12:04:41

http://img.mukewang.com/5936280100014db905000423.jpg


花式填坑第7期最新话题:Android  App。


全球有超过二十亿的设备安装Android操作系统。最近,Android之父安迪.鲁宾发布了名叫Essential的新手机,其公司推出了名为“Home”的智能家居枢纽设备,这一举动昭示着Android平台已然扩张到其他领域,App开发变得尤为重要。


如果你对这方面感兴趣,那这一期的话题活动别错过了~~


http://img.mukewang.com/593628c9000172cf01730048.jpg

那么,如何开发一款完整的Android APP呢?

在开发过程中,如何设计APP框架?又如何进行敏捷开发?

欢迎参与本期话题,跟老师聊聊在Android开发过程中遇到的那些事儿。


话题交流时间:6月9日--6月11日

话题交流方式:可以先在下方提问,老师会在活动期间一一给大家回复的



http://img.mukewang.com/593629470001fdc301730048.jpg

   qiujuer老师个人主页,可点击查看

http://img.mukewang.com/5936299900014e3c05000334.jpg

http://img.mukewang.com/593629aa000159cd01730048.jpg

  •   什么是坑?

相信每一位热爱学习の小伙伴都曾经遇到过各种各样的问题有待解决,我们称这种悬而未决的问题为坑。在各种各样奇奇怪怪的坑中,不乏深坑、巨坑,甚至是自己亲手挖的坑,但是光挖不填何年何月才能走上人生巅峰?

  •   怎么填?

每期1位大牛老师,围绕本期话题进行答疑与互动讨论

  •   怎么参加?

可根据话题主题在活动页下方进行留言,活动期间老师会为你解答

  • 活动时间结束了还能参与话题讨论吗?

可以。进行话题分享,获取更多答案。


查看完整描述

44 回答

?
笑笑笑你3872606

。。。刚好想发错地方了,看您的android项目中用到了好多个model,我比较喜欢多建几个包,给我带来的好处没怎么体会到啊,反而我添加依赖的时候各种麻烦,想请您讲解一下为什么项目中要用多个modle引用

查看完整回答
2 反对 回复 2017-06-09
  • Qiujuer
    Qiujuer
    你好,这个问题其实和他们问的都不同哈,也证明你有自己的学习方向,这是非常不错的,赞~对于AS中分module的开发,这个其实是为了进行一定意义上的物理隔离。什么意思呢?我在这里举例说一下,现在一个项目,其中有支付,有下载,有数据打包上报,我们常规的情况下都是进行的分package来进行开发,但是这样在大型项目中往往会遇到的问题是,可能多个不同的业务逻辑上有相互的代码交叉(耦合);那么这种代码在后期是非常难进行维护的,而且层级上也并不够;所以我们建议的是进行一定业务的分包module操作,把不同的逻辑分开为不同的包,然后在不同的module中去完成对应的逻辑,这样的情况下就会形成一种都被app引用,不同module可以线性引用,但是无法相互引用的模式,从而避免了业务的交叉,当一个模块有问题的时候也更加容易定位。当然这样的分包并不一定是按照业务逻辑来进行分包,也可以提出公共部分比如commom、网络、图片加载、数据存储等常规的模块进行独立的module开发,也方便不同的人员之间的协作开发;减少冲突的作用。在我的课程IM实战课程中就有这些的讲解,不妨看看哦。多谢你的提问,祝你愉快~
?
奶油味的葱

在校学到什么地步 就可以胜任安卓工程师的工作


查看完整回答
2 反对 回复 2017-06-08
  • Qiujuer
    Qiujuer
    同学,这个问题就尴尬了哈。要在学校学到什么地步才能胜任任何工作,这个我可以保证的说,暂时没有任何人能胜任任何工作,人的精力本就有限,不可能什么都懂,就算是懂 但是也不能样样精通。所以不能达到任何职位的要求。另外学校学习的在我看来其实都是引子算是一个开始,具体的发展需要自己去学习,这个学习如果是随意的学习那么时间耗费会很长,而如果是和实践结合,一边工作一边来就会加快进度,当然加快进度也就意味着精通,但并不能全知,即便如此我还是倾向于从实践中去学习进步。祝愉快。
?
ifunction

老师您好,想请教一下

  1. mvp模式适合所有项目吗

  2. 应该如何进行测试

查看完整回答
1 反对 回复 2017-06-11
  • Qiujuer
    Qiujuer
    首先,MVP并不适合所有的项目,其实没有那一个模式是适应所有的项目的;基本上都是根据项目需要再做调整,直到适合项目。
  • Qiujuer
    Qiujuer
    对于测试,我们提倡的是自测,也就是开发的时候就进行数据的测试,自己尽可能的预料到所有的情况,进行数据的测试;当然这个流程主要体现在打断点和日志的方式。对于写单元测试,一定要衡量好单元测试的粒度,让粒度刚刚好,怎么样才能能刚刚好呢,这个取决于你们的项目情况,尽可能小一些,细节一些即可。一般都是测试底层,不测试上层逻辑。因为上层逻辑可能变化很多,导致测试用例频繁更改,效率反而不高。 多谢你的提问,祝愉快~
?
jfhdibrbfjd

老师你就说开发个app得会什么吧


查看完整回答
1 反对 回复 2017-06-11
  • Qiujuer
    Qiujuer
    这个问题很,非常,的确真的很抽象哈。要说开发app得会什么这个说实话得看你开发的app是什么app。如果你的app就是一个小的电商app那么所需要的不会太多,主要的是对网络部分的处理;如果你开发的是音乐app那么你就需要对数据流和音频处理有研究,如果是视频或者直播那就更加不同了,所以不同app的开发需求不尽相同。常规来说要开发一个简单的app你需要的就是对软件的操作,知道Android是什么,足够了解Android的布局,知道数据存储,知道网络请求,知道图片显示,基本上就差不多了哈。祝你周末愉快~
  • jfhdibrbfjd
    jfhdibrbfjd
    好谢谢
?
慕仙4005997

老师,我这边想在项目中把不同Activity,Fragment中的上传全部做到一个上传的服务中,怎样管理调用服务好?我这边发现用startService并不能行,没我想的那么简单.老师觉得我应该用一个什么样的思路去解决好呢?

查看完整回答
1 反对 回复 2017-06-11
  • Qiujuer
    Qiujuer
    同学你好,这里你可能是想的太负责了哦;对于这样的逻辑其实并不是一开始就去想如何封装到一个service中去,应该想的是把公共的逻辑提取出来放到一个类或者一个方法中去完成,让不同的界面都保证使用的是同一个就好;等你把这个部分调整通了(一般是需要包括发起和回调的处理)你再来想这里有什么瓶颈,是否需要sercie的支持才能解决,如果是这样你再把其瓶颈部分放到sercie中去完成,但是这边的这个类依然保留,把这个类做成一个管理类,外面使用的时候还是直接使用这个管理类,至于sercie应该交给这个管理类去完成控制,你可以在管理类中进行sercie的启动,开始,同步回调的操作,这些就涉及serice的交互过程,可以自己尝试一下能够解决的哈。然后再把这些同步状态进度的操作进行封装后再使用之前定义的回调进行通知回去。 这样做的好处是维护service的操作都是由一个管理类来完成的,可以避免多处操作导致的额外问题,维护也更加方便可控。好了大体就这样,自己去试试吧。祝你愉快~
?
抱住空气

有点迷茫明明都懂可就是写不出代码

查看完整回答
1 反对 回复 2017-06-11
  • Qiujuer
    Qiujuer
    同学这种情况就是自己缺乏主动和实际经验缺乏哦,就是看了很多视频,感觉自己储备够了,跟着敲代码也能完成,但是自己来的时候就是不行。这是典型的缺乏自主学习的情况,这种情况你可以尝试自己想一些小项目来做,在项目中尽可能去用到所学的知识点,这样就能锻炼你自己的能力和相关的知识巩固了哈。我以前学习的时候就是做了很多电脑软件,网站和手机app才能让自己能够主动去学习的哈。所以你也别灰心,好好干,有咨询可以来找我哈。祝你愉快~
?
BalanceLi

老师;我问个非技术问题,主要是一个心结,我是学工科的,今年12月就满30啦,目前自学了有8个多月的java+android,技术方面我不敢说学好了,但还是对自己挺有信心的,也会一直努力。决定合同到期后就跳出去,但就是这个年龄,夸行业跳槽去android能有公司要吗?好伤心💔

查看完整回答
1 反对 回复 2017-06-11
  • Qiujuer
    Qiujuer
    说实话,你这个情况可能会有些问题,但是30倒还好,找应该是能够找到的,就是你自己要在这个过程中坚定就好,可能会受到一定的打击,这个也是没有办法的,因为开发并不是看人年龄,基本上都是看工作年限,所以自己会欠缺一些也是正常,只要以后补上就好。 其实我个人是建议你找合伙人一起做会比较好一些,这样对自己有一定的保障,因为我也有朋友跟你年龄是差不多的,他就是积累人脉现在创业进行项目开发,他是技术合伙,现在带领团队也有40人的团队了,总的来说是非常不错的,每年收入也是非常不错的;你可以考虑考虑,要是有机会的话就更好哦。
  • Qiujuer
    Qiujuer
    祝你愉快,找到属于自己的工作~
  • BalanceLi
    BalanceLi 回复 Qiujuer
    谢谢老师,哎,我是做航空的,it方面的人脉确实很有限,航空方面自己创业真的有点力不从心。只能坚定信心向前啦
?
qq_璇子_1

老师你好,我想请教一下:

我要做一款android社交聊天软件。

  1. 请问您会选什么样的框架和数据库作为后端?选用什么通信机制比较好?

  2. 可以用node.js作为server端吗?会有什么样的问题呢?

  3. 如果我用node.js作为server端,选用比如express做为框架,并且用socket.io作为后端与android的通信机制合适吗?这样做有坑吗?坑大吗?如果您要用node.js做,选用哪个框架,哪种通信机制比较好?

  4. 在3上面的基础上选用MongoDB做为数据库合适吗?

  5. 如果直接改为第三方提供的后台,比如firebase,哪种比较好?您怎么看?

问了好多问题,非常想知道您的建议。谢谢!

查看完整回答
1 反对 回复 2017-06-11
  • Qiujuer
    Qiujuer
    这个问题很多,而且和我的IM课程息息相关,所以我放到最后进行回复哈,看得出你非常的认真。
  • Qiujuer
    Qiujuer
    1.框架我会选择贴近我的项目需求的框架,比如我们的课程中的Jersery框架就足够我们的项目使用了,即简单又稳定,而且典型。数据库我会选择MySQL,他不是最好的,但是是最适合的。通讯机制,我想在条件允许情况下我会自建socket服务器进行数据通讯;如果是快速而且投入不够那么我会使用第三方推送来帮助我完成工作。
  • Qiujuer
    Qiujuer
    2.可以使用node.js作为服务器,而且也很简单哦,我最近也在尝试这个的哈,只是这个的效率还没有仔细测试过,另外就是还不知道是否支持足够的批量压力。优点是界面渲染非常OK,缺点我还没体会到,可能数据操作上没有java那么简单。
点击展开后面5
?
阳光sunny7

老师好!

查看完整回答
1 反对 回复 2017-06-09
  • Qiujuer
    Qiujuer
    Hello,你也好哦;有问题可以提哈~多谢你的支持
?
guaerjia

老师好,问题如下:

IDEA安装好后,提示:

2017/6/9 17:20 Unregistered VCS root detected

The directory D:\git-workspace\IMOOC-Messager is under Git, but is not registered in the Settings.

Add root  Configure  Ignore

---------------------------------

D:/git-workspace是我创建的用于项目的目录,里面再创建了IMOOC_Messager再Git管理下。

查看完整回答
1 反对 回复 2017-06-09
  • Qiujuer
    Qiujuer
    你好,你是我的IM课程的同学吧?欢迎~这个问题并不是问题,这里的提示只是说当前项目打开的目录并不是git的根目录而已,也就是无法在idea中直接操作咱们的代码进行git commit操作而已,并不影响我们的项目的进度和开发,而关于git,我们是独立的在外层进行的git操作,所以无须担心,这是正常的;这样的情况往往出现在项目中有多个目录,而每个目录又是一个项目的时候哈,是非常常见的。多谢你的提问,祝愉快~~
?
吴跃民

老师你好,我想问一下《零基础入门Android语法与界面》《Android网络与数据存储》可以胜任android开发工程师的工作了么?

查看完整回答
1 反对 回复 2017-06-09
  • 林梦夕雪
    林梦夕雪
    makr
  • Qiujuer
    Qiujuer
    你好,这个问题我相信很多同学都会问,其实这个我的看法是这样的,这两个只能让你入门Android并能够对Android的数据进行一定的处理,但是要说胜任Android的工作其实不是完全够的,因为Android开发中并不是这么简单,这么理想化,很多时候有各种问题各种需求,同时也有性能内存等等一些要求,在这样情况下上面的技能只能让你能够开发app,但是并不能让你开发一款好的app。其实现在Android也是面临这样的问题,都是觉得这样就足够了,其实还远远不够的哈;我建议你可以尝试进行一些项目开发,从项目中去吸取经验,当然上面的技能在某种程度上是可以让你找到工作的,所以你需要的就是尽可能的去承担你的任务,去完成,去探索,去学习更多的知识;这些才是你急需的,祝你进步~~
?
JAVA不懂

怎么取消啊?

查看完整回答
1 反对 回复 2017-06-09
  • Qiujuer
    Qiujuer
    Hello,请问取消什么呀?有问题都可以询问的哈~
?
当山峰没有棱角的时候

开发app首先应该做什么。。。就是在编写代码之前,,有哪些工作,,在编写时是按照什么来编写,,有什么先后顺序或者框架吗

查看完整回答
1 反对 回复 2017-06-09
  • Qiujuer
    Qiujuer
    在小公司,或者说中小企业都会管这个点,基本上都是产品直接下达需求,设计出设计稿,然后就经行开发;对于小企业创业公司,可能根本没有设计师和产品的存在,基本上就是老板说什么需求就做什么而已。当然这样的好处就是足够快速,很快的响应,但是就是缺乏可控性,而且代码质量一般都是不过关的。对于大公司的开发都是相对比较严格的,一般是产品提出需求,开发者一起讨论可行性(可行性分析)其中也就包括了少量的技术难点的预估,必要时需要进行技术储备;之后一般会进行方案确定,流程规划,时间预估等流程,必要时会进行代码框架设计和对外接口设计,最后才是代码开发,中间分阶段进行代码提测,质量把控,上线接入等操作。说的比较笼统,不同公司可能会不同,但是基本上都是这样的一个大体流程的哈。多谢你的提问,祝愉快~
?
菠萝麻麻

请问搭框架的步骤

查看完整回答
1 反对 回复 2017-06-08
  • Qiujuer
    Qiujuer
    你好,这里主要是想要知道搭建框架的流程还是软件操作呢?流程一般就是需求分析、归纳、整理、输出、校对、框架设计、代码接口设计、开发等流程。而对于软件的操作这个就难说了,因为需要截图才能说清楚,一般就是建立一个module来进行对应的框架开发。不知道你是否是想要询问这个,如果不是的话可以私信我哈。多谢你的提问。
?
圣域幽枫

请问一下 老师对学习Kotlin有什么看法?对即将到来的秋招会有帮助吗?

查看完整回答
1 反对 回复 2017-06-08
  • Qiujuer
    Qiujuer
    你好,这里是两个问题一个是我对Kotlin的看法,说实话Kotlin火起来是必然,未来至少几个月内都将持续下去,至于能否替代java说实话我是持保留看法的,目前来说还无法做到完全直接替代java,但是学习语言是值得去学习的,每一门语言都是有对应的语法和理念这些就是值得去学习的,所以如果有时间就去学,但是学了要用才是真本事。第二个对秋招的影响说实话这个其实影响不大,因为企业校招的时候着重看的是一个人的处理问题的能力学习能力以及基础是否扎实,只要这些OK就不成问题;Kotlin是新语言最多会问问你是否关注是否了解是否有学习,并不会重点考察。勿担心。祝愉快~
  • Vzer
    Vzer 回复 Qiujuer
    老师我也提问了kotlin,你为什么没有回答我的,好桑心。我还是先提问的 T_T
  • Qiujuer
    Qiujuer
    别急哦 我不是按照时间顺序来的,是恰好看见了就回答了,因为完善时间有限,所以还没有全部回复哈;但是我都会一一回复的,莫急莫急。
?
qq_请君安好_0

老师,app怎么开发?我是小白,不会

查看完整回答
1 反对 回复 2017-06-08
  • Qiujuer
    Qiujuer
    Hello,app怎么开发,这个我首先需要你自己确定一点,就是你的Java是否有一定基础?虽然开发Android可以很多语言来开发,但是Java才是主流,所以Java有一定基础会更加容易上手。其次你需要准备好你的开发环境,主要包括的是AS(Android Studio)SDK等,当然这些在AS中都可以自动下载并配置,然后就新建一个工程就可以开始啦;具体的流程我建议你可以百度百度,或者你可以看一些基础的视频来了解,这里就不方便贴出基础视频链接了,有需要可以联系我哈。祝愉快~
?
幕布斯2405234

希望重点放在内存优化,listview错乱,app异常时如何处理更优雅上

查看完整回答
1 反对 回复 2017-06-08
  • Qiujuer
    Qiujuer
    你好,同学,这个问题说实话我非常想回答学习我的IM课程就好,但是一想这样太不负责了,虽然IM课程中有这些的讲解也有很多封装的理念,但是直接这么说就算是捆绑了。三个问题啊:内存优化这个其实是一个大的概念,内存优化常常需要注意的地方是循环和图片的处理以及内存泄露等问题的处理上;对于listview错乱往往是因为自己的数据更改了没有通知界面更新,或者说界面操作后没有更改对应的数据点,从而导致了界面和数据错乱,这些只需要多多注意就好,另外这里我推荐使用RecyclerView。而对于app异常我的建议是尽可能避免逻辑错误,要做充分的开发测试,如果要对错误做处理可以加上一些日志采集来后续分析捕获错误,当然你还可以全局对错误进行捕获并弹出友好的提示。这些你可以私聊我,是可以给你细讲一下。祝愉快~
?
Performer

老师,我准备了一百个问题,不要跑!~~~~~~哈哈哈哈

查看完整回答
1 反对 回复 2017-06-07
  • Qiujuer
    Qiujuer
    多谢等待。有问题都可以循环哈。祝愉快~快快询问~~
?
青峰清

插个眼,等大神

查看完整回答
1 反对 回复 2017-06-06
?
ImagineOwl

报个到

查看完整回答
1 反对 回复 2017-06-06

添加回答

回复

举报

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