`

android opensource: Launcher 研究_设置壁纸_02

 
阅读更多

博客android opensource: Launcher 研究_设置壁纸_01大致分析了一下 Launcher 壁纸的相关代码调用关系。

但是对于自己来说,还是觉得有点欠缺,今天补上,继续 Launcher 壁纸的研究。


真的希望 csdn 能够让自己的博客别人来补充编辑,这样可以对技术研究比较深、细一点,利于交流和学习。呵呵,愿望希望有一天能够被实现。


再说主题之前,想跟大家交流一个话题:现在学 android 是否还有前途,究竟学什么?


我刚开始接触 android 的时候,根本没有想过学这个东西是否有前途,于是自己就傻乎乎的搭建环境、下载开发工具、了解 android 基本知识。说实话,自己没接触过 java,只是知道 java 是一种高级语言,然后有个朋友给我说,你不学 C++ 不可能学会 java,当时我就蒙了,怎么这麽折腾?我自己偏是不信,直接学习 java,等 java 学的差不多的时候,我回过头再去学学 C++(之前学过、用过 C),当然只是懂个皮毛,呵呵!


学习的过程除了看书上网,其余的时间就是写代码,上次面试的时候,有个哥们问我到现在为止写过多上行代码?可怜的娃,我不知道怎么回答,就反过来问他,那小子嘿嘿一笑!没有多少人去计算到底写过多少行代码,特别是在这个忙碌的时代,别人(99%的面试官)最关心的是你做过多少项目,在项目中做什么?android 是一个平台,用到很多方面的知识,当然这取决于你对哪个方面感兴趣喽?比如说,底层驱动开发,那麽你会 C 和 linux 就可以了,没必要学习 java,照样拿高工资。应用层,用到最多的就是网络编程以及 xml 解析、数据存储方面的知识,所以要对平台 SDK API 很熟,java 基础要好!很多公司对 UI 要求很高,如果你喜欢界面设计(我一个朋友现在做 android UI, 很强哟!)并且做很High,工资也会让你满意。总之,学习 android 不仅仅是其本身,它牵连着技术的方方面面。所以,学习 android 不会影响你做技术,如果你是一个技术爱好者,学习 android 照样有前途。


学习 android,除了学习该平台自身的知识和特点之外,当然要学习 java , 并且要学好,那麽你才会在 App 领域有所突破。如果你想学习游戏开发,数据结构和算法还是要学学的。


扯淡的话,到此为止,欢迎拍砖,交流、学习。


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

下面开始正题的切入,主要说两个问题。


1. Intent.createChooser

在 Launcher.java 中,我们看到如下的代码(属于 startWallpaper() 方法)

当执行这段代码的时候,系统会调用相关的 Activity 响应事件。为了更好的理解它,不妨来个 Demo。


a. 新建一个项目 IntentCreateChooserDemo


很简单,就是一个 Activity,点击 Button 触发事件,源码如下:

b. 新建一个项目 ResponseActivity,该项目只包含两个 Activity


项目结构图如下:



这两个 Activity 代码部分很简单,都是一样的代码和布局:


主要看一下 manifest.xml 文件:


很简单,就是一个 Activity,点击 Button 触发事件,源码如下:这两个 Activity 的 action 都是 mark.zhang.intent,然后 category 都是 android.intent.category.DEFAULT,注意如果你隐式启动 Activity 必须包含 category 选项,否则只靠 action 无法找到它。


c. 运行


首先运行ResponseActivity 这个项目,然后再运行 IntentCreateChooserDemo,效果如下:




至此你就可以明白,即使这两个 Activity 与 要启动他的 Activity 不在同一个 App 中也是有效的,当然了,如果这两个 Activity 与启动它的 Activity 在同一个 App 也是可以的,这里大家可以自行验证。


2. 更换 Launcher 背景


Laucher 第一次加载的 xml 文件是 launcher.xml,位于 res/layout-land 下面。

想试着在 Launcher 的launcher.xm l文件中改变其背景,也就是加上 background 属性,但是效果很让人差异。改变之后,再次想为 Launcher 添加其它壁纸,或者动态壁纸均不会有效果。


所以大家在开发的过程中要注意这一点。




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics