android学习总结与杂想,第一周

  github:https://github.com/sydcloud

  先总结下我的技术基础,曾经是学生,大二,现在应该被称为自由职业者。同样的学年,大概大多数学生都和我一样只是初步接触了C C++ java这三门语言,懵懵懂懂地知道点又似乎什么都不知道什么是面向对象,多态也没有太搞清是怎么回事。

  我之前接触了软件领域的很多不同的方向的一些基础,,比如说网页前端,网站构建,服务器维护,桌面级应用开发,数据库维护,嵌入式开发……都是自己私下看的,感觉上除了需要比较高的数学天赋的算法研究与开发,这些方向从从前端到后台,自己都可以去深一步学习然后从事相关的职业,于是开始犹豫,这个犹豫时间很长,长到整整一年。这一年里我继续积累着自己知识面的广度,接触了新的东西,比如说机器学习,数据挖掘,云技术,大数据……直到前几天脑海里灵光一闪,突然间特别想做点东西出来,于是开始了自己的移动开发之路。

  在那样一个时刻,我知道我这一次选择彻底离开学校的冒险,最后即使失败也不会败得太狼狈。当你想做的事和前进的方向都是对的时候,付出的努力都会有回报,或多或少,但不会血本无归。这场冒险最怕的事情,是离开以后,还是没有方向。

  在B站上看到两条弹幕,“在学校里有什么东西不是被逼着学的”“前面那个你说啊,你想学什么”。教育是必须有所强制的,也必然会出现一些功利性质,同时让人不爽,吐槽者去吐槽下发泄下这无可厚非,人总憋着会坏掉的,但是后者我觉得他比前者还迷茫与幼稚。人生无非两条路,闷声不响随波逐流,遵循心声一鸣惊人。后者必然是少数人,而且他们的路是不可以复制的,世界上人这么多,哪里会有两个心声一模一样的人。

  知识广度这种东西,其实有些微妙的感觉,在工作生活中八成的时间里都是没用的,但是在剩下的两成时间里却能成为决定命运的的重要筹码。所以我曾经反复和一个女孩子说,要学会多读书。

  好了闲话少说,回头说android。

  android本身是个还在不断更新的项目,于是一开始出现点小麻烦,网上的中文开发环境配置教程和现在的开发环境配置其实有不大不小的区别,最后还是去啃的android官网的英文文档,选择了官方出的adt和eclipse已经捆在一起的绿色包下载下来,并且和我自己原本的eclipse完全分开来(我原本的是装着cdt的,而且经常会折腾一些插件,算不上稳定),为了更好区分,我还改了一下新Eclipse的快捷方式图标,放了一个Android机器人。

  第一个helloworld是没看教程写的,建工程的时候着实吓了一跳,一页页充满高大上气息的配置选项扑面而来,自动生成的那些文件夹更是完全不知所云,这份感觉堪比当初第一次用dev-c++写helloworld。然后去找教程,云课堂上的《Android深入浅出》http://study.163.com/course/courseMain.htm?courseId=213005#/courseMain,感觉对于初学者有些太深,不过讲法是很不错的,比如不使用PPT而是思维导图这种更能形象表现出知识体系结构的方式。这个课的老师叫sundy,他推荐了一个叫mars的老师的课是我现在在用的http://www.howzhi.com/course/888/。不过也是较老的课程了,有些东西和现在的对不上,但是不耽误什么。听老师把工程内的每个文件夹的作用都讲完以后,就变成了完全可以理解的东西了。

  src bin这两个文件夹和Java开发是一样的;

  gen里面的R.java是自动生成不可改变的,为整个工程中的大多数东西提供一个整型ID,开发者可以通过使用这些ID来调用相应的对象或是数据。BuildConfig.java这个在早先的版本里是没有的,现在也是完全自动生成的,找了一下度娘,发现对初学者这个东西是完全无用的。

  res这个文件夹对初学者和前端开发者来说是特别陌生的部分,当然可能跟我一直没有接触各种UI库的经历有关。里面都是跟前端有关的,除了drawable用来放置图片,其他的都是放置xml文件,比如layout里面的是和activity一一对应的布局文件。值得一提的是strings.xml,这个东西具体的功能是实现所有前端文字的统一管理,方便进行多国语化,我在一些关于软件开发的书上看到过这个功能,但是一直都不知道怎么实现,在学校的实验课项目上也做过类似尝试但是没有什么好的办法,这次倒是见识了很好的例子。

  AndroidManifest.xml这个则是一个单独的xml,这个文件管理的东西都很重要,不过现在由于我大多数时候都使用自动生成的方式,这个文件少数几次自己动手改动,都是去去掉activity的标题栏。

  这就是我的第一周。

你可能感兴趣的:(java,android,笔记,移动开发,helloworld,android,软件开发)