android转型宅家研究小日记(初学者笔记)49天(结束宅家)

  虽说之前学过Android,但是已经有1年半没有做相关开发了,为了能挺直了腰板去面试,也只有重头开始做个项目练练手了。

  新手自己做项目 最重要的不是难易度 而是兴趣。之前看的《刀剑神域》至今还是意犹未尽,后来又看到GP君做的SAO Utils更是跃跃欲试,虽然在安卓上还是显得比较鸡肋,但是为了之后在Google Glass一类的携带设备上快速实现,还是有必要先在android上练练手。
  想象中的进度是这样的:迅猛的开始 第一天写好大致框架 第二天实现,第三天DeBug。
  现实中的进度是这样的:
==================================================================================================
第一天:
  先得搭建好编程的环境,之前学习的时候用的是Eclipse,但是身为外貌协会会长的我 怎么能忍受这样的UI。在上一份工作的时候虽然不是在软件公司工作,但是我们经理也算是个激进派,从不墨守成规,跟着他我开始使用IDEA,后来等IDEA出了12,我就完全爱上了他,这黑色调的风格,完全就是为我准备的。是的,即使是Android我还是打算用IDEA来开发。
  之前记得在用IDEA12上见过有新建Android项目的选项,然后我的第一个问题跟第二个问题就一起涌向了我。提示没有SDK,并没有1.5-1.7的JDK,好吧,完全没有做好准备工作,我之前用的是JDK8,而且还以为IDEA12已经贴心的自带了SDK,还是得下。并且很多网友表示IDEA上开发Android有各种未修复的bug,同时在Android的官网我也发现了个被我忽略的东西——Android Studio,官方出的开发工具啊,之前也看到报道,很好,用这个神器去练级吧。目前出到0.2还是比较让人期待的
  安装还是很顺利的一路下一步就可以了,新建项目的时候我蛋疼了。。。一直卡在下载gradle-1.6,好吧,理由我大致猜到了,在墙里面呢,不能自动下载,只能手动下载,然后配置好path,终于可以正常新建项目,但是这个创建速度是这么回事,足足创建了2分钟,可能跟配置低有关,不过这也太慢了
  最后再检查下能不能正常使用,明天就可以正式开始写了
-------------------------------------------------------------------------
第二天:
  果然就跟我担心的一样又出问题了
IllegalStateException: Can't deserialize target data of key 'IdeaAndroidProject'. Given class loaders: [PluginClassLoader[org.jetbrains.android, 10.0]]
  Project没办法正常显示,重装了几次发现不行,发现打开的时候提示升级,但是在官网0.2.0就是最新的了,点下载,好吧网络错误,得,在墙外看到的是0.2.0->0.2.9,坑爹呢,升级!据说gradle也得换1.7的,顺便也下了。还有个坑,貌似不能像之前一样手动配置,只能等AndroidStudio自己下载。。。
  折腾了半天终于搞定了,下面开始神设置了File->Settings->Appearance->Theme->Darcula 心旷神怡的黑色调主题出现了,之前是努力就是为了这一刻,太帅了。。。 下面休息下玩会儿游戏。。。明天继续
-------------------------------------------------------------------------
第三天:
  之前虽然成功安装了AndroidStudio,但是准备工作其实还没做完,虽然我已经浪费了很多时间,但有些工作必须到位,有件事情是我以前开发时一直没做好的——版本控制,虽然IDEA带了强大的SVN但是之前完全没有用到过,这次必须打好基础。开始研究SVN。
  用了花了好多时间终于部署好了git,虽然还不是很习惯,但是没有版本控制的苦头已经不能再吃了。。(My Github)
-------------------------------------------------------------------------
第四天:
  中秋休息了3天,节前终于把环境都搭建完毕,对于现在的我而言已经没什么Android基础了,快速进入状态的好方法就是"拿来主义",下个成型的项目来研究。
  作为一个新手,第一个想到的地方是CSDN的资源,虽然这里是个大杂烩什么林子都有,但是不得不说在各种搬运工的努力之下,算是个新手的宝库(虽然想在一些开源站上找,不过由于之前接触的不多,就先从熟悉的站点下手)
  看起来可以研究下ADWLauncher,虽然效果跟我要做的差很多,不过Launcher作为一个特殊的App应该有很多特点要注意。
-------------------------------------------------------------------------
第五天:
  好吧,一下看个不小的项目,鸭梨山大,纠结的我,还是从HelloWorld开始吧。。。
  自带的模拟器巨慢,还是得用真机。
  黑客与画家一样,初学者总是在模仿中成长,于是乎我找到了个不错的教程《android手把手教你开发launcher》系列,我也想把它一点点转化为自己的教程
-------------------------------------------------------------------------
第六天:
  昨天才进行了2章,虽然内容很少,不过总算让我又回忆起了Android里的一种数据传递的方式——适配器Adapter,之后再进一步了解吧。
  今天终于把《android手把手教你开发launcher》系列都完成了,接下来又得换个教程抱大腿了,基础太烂了,现在离完成大框架都还很遥远呢
-------------------------------------------------------------------------
第七天:
  以前的HelloWorld,修改壁纸因为原教程中是在新建项目中放个按钮点击的,但是我想在原来的项目上直接做,但是放个按钮以我的审美实在受不了,后来我发现按Menu键的时候有菜单,原来AndroidStudio新建项目的时候会自动创建一个Menu
  原以为这会很简单的,不是应该跟Button同理的么。。在Xml上回调函数,运行!我去。。。程序出错,注册OnClick监听,又出错。好吧,老实的找资料吧,然后再看了下Menu的实现,慢性子的我真是无懈可击啊。
  做了下8分钟腹肌练习(为什么?!昨天晚上看了几集破产姐妹 腹肌对妹子的杀伤力还是很强的,其实昨天看之前就开始做了,看了之后决定坚持)
  项目还是要继续的,虽然一开始做了App的列表 但是这一开始就没打算当首界面,先做个别的界面 然后在某个微妙的地方跳转到App列表就好了。
  先做几个UI的素材,SAO的每个部分都十分简洁清爽,只有灰白,灰黑,跟橙色。
-------------------------------------------------------------------------
第八天:
  这是GP君做的SAO Utils(for Windows)
android转型宅家研究小日记(初学者笔记)49天(结束宅家)_第1张图片
  老是想象不到在Android上的样子,看来要先做个效果图什么的,像是这样
android转型宅家研究小日记(初学者笔记)49天(结束宅家)_第2张图片
  我说怎么二级菜单看着这么别扭,GP君是真的淡出,我的是发黑的。。。。
-------------------------------------------------------------------------
第九天:
  昨天做效果图的时候,似乎有了点思路,先开始做下一级菜单,然后再做呼出菜单
  刚看了Jane McGonigal在TED关于《游戏创造美好生活》的演讲,还是很值得一看的,大部分的宅男都梦想着能制作自己的游戏,我也是,演讲中的一些设计理念都值得借鉴。
  今天是谷歌的15岁生日,大前天是安卓的5岁生日,正像前几天看的那篇《android比IOS7好的12个理由》上所说的,Android的未来一定是美好的
  菜单都准备用ListView,然后结构保存在SqlLite中,虽然数据库是用过很多,不过在Android上的配置还是有所不同的,看到了nieweilin博客上详细的介绍才好下手,虽然前面一大堆基础内容连跳过都很累,但是不得不说他整理的相对详细。(传送门就不建了,怕又被系统删掉 自己补下前面的CSDN博客/nieweilin/article/details/5919013)
-------------------------------------------------------------------------
第十天:
  非工作日都要陪女朋友,在坑爹的国庆之前还有2天。
  刚做了2个实体类,一级菜单和下级子菜单,没做过类此菜单,先这么做试试,还有之后存放菜单结构时所需的数据库helper类。
  收到女友发来的励志图一枚,顿时醒悟了
android转型宅家研究小日记(初学者笔记)49天(结束宅家)_第3张图片

第十一天:
  国庆过去了,回家酱油了几天,跟女朋友放松了几天。
  在GP君的主页了得知已经有人做了SAOLauncher并放到了应用商城,当时就有些失落,不过没多久也就看开了,毕竟SAO化确实是个不错的想法,然后就尝试下载使用了下。
  打开跟关闭的效果做的比较到位,内置回复短信电话等入口,让我有些意外的是它并不是一个Launcher,也许是开发者担心功能还不够完善导致用户厌恶;菜单也是固定的2级,不能自定义,不过这个其实也是因为我担心的一个问题,毕竟手机的屏幕有限,如果层级多了要全部显示就不太好实现。
  今天一直在纠结一级菜单的实现:
   1.根据最初设想,唤出的菜单位置由触发手势的位置显示,所以布局应该是AbsoluteLayout(已经显示过时可以用FrameLayout代替)这样可以定位到指定坐标
   2.一级菜单是嵌套一个RelativeLayout还是ListView,不过很快我打消了RelativeLayout的想法,ListView更好控制
   3.ListView中的item是怎么样的结构,因为它并不是个单纯的按钮,应该有个背景图再上层还有个小图标,并且在点击及悬停时不管是背景图还  是小图标都会一起改变,不知道Button要如何实现,得研究下selector
-------------------------------------------------------------------------
第十二天:
  今天接着做一级菜单。。。。悲剧,女友高烧,照顾了一整天
--------------------------------------------------------------------------------------------
第十三天:
第十四天:
  在做一级菜单的时候发现一个问题, Main Activity一开始是继承Activity的, 但是看到的ListView案例中都调用了setListAdapter()方法,所以肯定是继承ListsActivity的,然后就45°仰望了一会儿,心里的茶几被掀翻了。
  Main死都不能变成ListView,突然觉得我对Android太不了解了,本着“百度在手 天下我有”的精神,根据实现效果搜了下,果然,“ 点击button 弹出一个listview并且响应单击事件”,这个标题完全就是我现在以及之后要的效果.
  虽然也用到了2个Layout,但是有别与之前考虑的直接在Xml中完成布局,然后猥琐的隐藏起来. 
  不过其中使用的是 AlertDialog,又是个陌生的概念(可能之前有学过,也可能没有...),并且觉得用AlertDialog实现之后的功能,可能会有更多的瓶颈,路漫漫其修远兮啊....
--------------------------------------------------------------------------------------------
第十五天:
  昨天遇到了问题,ListView用Selector设置的背景只有点击时才显示,默认状态的背景没有显示,今天发现其实是被Dialog的背景挡住了...自定义Dialog后又有了新的问题,背景的效果只有在有焦点后才显示,虽然不会向之前那样不点就不显示,但是这次在多次点击后图片会不停的叠加...点几次半透明的背景就成了不透明的,暂时还没找到解决方案
--------------------------------------------------------------------------------------------
第十六天:
  我去....背景的问题还没解决。。。刚发论坛求助了....坐等真相
--------------------------------------------------------------------------------------------
第十七天:
  之前的帖子终于有了回复,fg1q2q3q给出了2个方案,我选择把Activity套用Dialog主题这个方案还不错,同时也消除了之前我对Dialog对后期设计上的顾虑,毕竟Activity应该算是无所不能的了,现在要看下Activity的跳转了
  好吧,这次在一些黑暗手段的帮助下一级菜单的雏形做好了,明天开始做2级菜单,GP君二级菜单上的设计很不错,能实现很多功能,为了让项目尽快完成好去找工作,就先只做APPList跟contactList以及编辑部分
  还有,原来我给分结贴的fg1q2q3q是我同学....
  android转型宅家研究小日记(初学者笔记)49天(结束宅家)_第4张图片
上个礼拜郁闷的时候做的,还是喜欢这样的黑暗风格
--------------------------------------------------------------------------------------------
第十八天:
  一直在纠结二级菜单怎么做,没想明白,暂时也没找到类似的实例,不过发现了Anime这东东,一级菜单的唤出效果有着落了,先把这个做完。
--------------------------------------------------------------------------------------------
第十九天:
  昨天敲了好多代码,各种语句去实现一级菜单的唤出,但是今天才发现,其实有个更方便的方式——LayoutAnimationController,代码量很少。
  接着来晚上一级菜单,下面来做最酷的一部分,手势唤出!
--------------------------------------------------------------------------------------------
第二十天:
  今天外出办事
--------------------------------------------------------------------------------------------
第二十一天:
  手势唤出的代码很简单,但是一直报空指针,郁闷了好久,终于解决了,可以做下个功能,二级菜单,并且展示通讯人列表
--------------------------------------------------------------------------------------------
第二十二天:
  毕竟是冬天了晚上盖薄毯冻得直哆嗦,早有点小发热,及时吃药把病毒扼杀在摇篮里
  今天做在调整唤出菜单时的位置,打算在手势滑动的位置跳出,不过发现MotionEvent和LayoutParams的坐标不是一个概念啊....位置都对不上,要调戏下,争取这周先收个小尾,然后投几张简历再说
--------------------------------------------------------------------------------------------
第二十三天:
  稍稍调试了下发现 LayoutParams的坐标原点在屏幕中间,而MotionEvent是在左上角的,获取个屏幕分辨率,搞定
  真的得开始二级菜单了,貌似找到解决方案了,addView
--------------------------------------------------------------------------------------------
第二十四天:
  昨天传来一个噩耗....女友发出通牒,在找到工作之前,中午都只能吃泡面,晚上才有吃肉...苍天啊...又一个程序员要猝死了
  二级菜单的xml都做好了,先做AppList吧,顺便调整了动画,背景灰度,声效等
--------------------------------------------------------------------------------------------
第二十七天:
  连续纠结几天了,ListView.addView貌似也没这么方便,老是报错"java.lang.UnsupportedOperationException: addView(View) is not supported in AdapterView" , 一直以为是二级菜单的Adapter写错了 网上也没发现类型案例,但是我似乎想到了什么,会不会ListView.addView会调用到一级菜单的Adapter.....
--------------------------------------------------------------------------------------------
第二十九天:
  最近气势很低落啊...SAO Launcher遇到了问题 工作这边又还没动静,快年底了不急不行啊....
--------------------------------------------------------------------------------------------
第三十九天:
  一个多礼拜集中的各种面试,现在都没了回应,上周开始咳嗽的比较厉害,这几天晚上都会发个小烧什么的
  中间其实有个很合适的公司,虽然是外包公司但是有不错的学习环境,而且对于我这样没有工作经验的薪资也不错,不过工作地点太远了,从城西到城南,过去2个小时,虽然上下班有班车不过错过了就悲剧,而且着距离跟上家公司一样远,只能谢绝了,又开始了等待
--------------------------------------------------------------------------------------------
第四十一天:
  前几天烧的有点晕乎,有些消极了,今天又重新振作,二级菜单还是没想到怎么解决,咱就绕过去,之前面试的时候把这个还拿不粗手的作品,但是人家居然楞是不知道Launcher是什么,也不知道这个有什么意义,看来这个社会不是实切的东西确实很少人会认同。虽然老套点,不过我还是准备把之前学过的MP3播放器做成SAO风格的,打算直接在一级菜单之后就是链接一些小项目,快年底了,着急啊...
  风格大概就是这样
android转型宅家研究小日记(初学者笔记)49天(结束宅家)_第5张图片
--------------------------------------------------------------------------------------------
第四十九天:
  经过各种面试之后终于入职了
  入职三天了,还能边学边做,不过马上要做个Demo,还有1周时间多的是爱你,虽然只要做个UI,不过还是很多需要学的
  等Demo做完之后估计有段时间可以来做做自己的项目
  在入职之前还是蛮担心的,都几个月没有早起上班了,害怕自己起不来,或者上班的时候特别困
  不过经过这几天工作下来,觉得还是没什么区别的,就是各种连载没时间去追了
--------------------------------------------------------------------------------------------
代码放Github上了https://github.com/sljjyy/SAO--Launcher
相关文件放在360云盘群里http://qun.yunpan.360.cn/10008474

====================================================================================

Android Studio使用教程: http://blog.csdn.net/sljjyy/article/details/11924979

你可能感兴趣的:(Android教程,Launcher)