Android Metro风格的Launcher开发系列第一篇

前言:从毕业到现在已经三年多了,回忆一下这三年基本上没有写过博客,总是觉得忙,没时间写,也觉得写博客没什么大用。但是看到很多大牛们都在写博客,分享自己的东西,所以嘛本着向大牛看齐,分享第一,记录第二的目的开始写一个系列的文章,我会把我做一个项目的详细过程分享给大家,供大家参考和交流。好了,评书开讲!

可能大家做Android机顶盒或者Android电视开发的比较少,这类开发基本上都是基于源码的开发,大家有一个git版本库,大家开发完了编译出来一个版本烧到板子上跑,要编译肯定就要编译环境什么的,google推荐的是在Ubuntu系统上搭建开发和编译环境。

一、Ubuntu下Android环境搭建:

1、安装Ubuntu系统:

大家可以装双系统或者用Oracle VM VirtualBox在Windows上安装Ubuntu。安装双系统我这里就不说了,大家可以去网上查一下,这里有一个链接大家可以参考: http://jingyan.baidu.com/article/76a7e409bea83efc3b6e1507.html

在Windows环境下通过Oracle VM VirtualBox安装Ubuntu请参考:

http://jingyan.baidu.com/article/db55b609909c084ba20a2f5e.html

注意事项:

(1)必须是Windows7,如果是Windows8可能会出现意想不到的事情,总之就是不想遇到麻烦就用Windows7。

(2)分配虚拟磁盘空间的时候至少要分配30G,因为你要下载android-sdk就会用上十几G,你要是再下载源码那你至少要分60G的空间。

(3)安装完系统后一定要安装增强插件,否则窗口无法全屏,安装方法如下图:

点击红色箭头所指位置,然后在弹出框输入用户密码确认安装,安装完毕重启就可以全屏了。

2、配置开发环境:

(1)配置adb:

去官网下载android-sdk-linux,下载地址是:http://dl.google.com/android/ + 不同版本的sdk

例如:下载r20版本

r20的linux版本:http://dl.google.com/android/android-sdk_r20-linux.tgz

r20的windows版本:http://dl.google.com/android/android-sdk_r20-windows.zip

r20的mac版本:http://dl.google.com/android/android-sdk_r20-macosx.zip

把上面下载的sdk解压到一个目录,比如说是~/software/目录,终端执行:

sudo gedit ~/.bashrc

在最后添加如下内容:

#set path for android sdk tools export PATH=$PATH:/home/leo/software/android-sdk-linux/tools export PATH=$PATH:/home/wuhao/software/android-sdk-linux/platform-tools/

(2)配置java环境:

去Oracle官网,点击打开链接下载对应版本的jdk,我的是64位系统,所以下载:

jdk-7u75-linux-x64.tar.gz,打开终端执行如下命令:

sudo mkdir /usr/lib/jvm/

cd /usr/lib/jvm/

cp ~/software/jdk-7u75-linux-x64.tar.gz ./

sudo tar -vxzf jdk-7u75-linux-x64.tar.gz

把环境变量配置在用户目录.bashrc文件中是最好的选择,在bashrc里添加:

sudo gedit ~/.bashrc

#set java environment

JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75

export JRE_HOME=/usr/lib/jvm/jdk1.7.0_75/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

重启生效或者source .bashrc生效

(3)IDE下载和配置:

可以选用Eclipse或者Android Studio,这个看个人喜好。

二、产品设计:

在电视或者机顶盒上做UI开发,首先要考虑电视尺寸都比较大,你的UI展现要能够在电视屏幕上看着大小合适,展现的简洁舒服,别像原生Launcher那样好多小图标看着密密麻麻的,第二个是要方便遥控器操作,焦点导航显示正确,因为你不可能给机顶盒外接一个鼠标模仿触摸操作,那样太不方便。所以大家都会想到类似Windows 8的那种风格。设计大概像是下面的图:

产品要求:

(1)在显示第一屏的时候第二屏要在屏幕右侧有一部分显示,并且是缩小显示,在page二显示的时候page一在左侧缩小显示一部分,page三部分显示,page之间切换流畅,图标放大缩小流畅。

(2)在每一个图标上焦点的时候要放大显示,图标周围有阴影或者焦点框之类的突出显示出来,丢焦点的时候还原为正常显示。

(3)图标对应的应用链接可以在xml文件配置。

(4)page个数可以配置,可以通过简单的修改参数去掉某个page。

设计思路:

拿到上面的产品需求你会怎么做呢?我是作如下考虑的:

(1)第一个需求我想到了ViewPager、viewflipper,这两个可以做到page之间切换流畅。

(2)每一个图标抽象出来做成一个View,放大缩小用属性动画可以做到,对应的View xml文件可以自定义属性完成应用链接配置。

(3)灵活添加,删除page需要好好考虑一下代码实现。

哎呀,好累,一个周六几个小时就这么过去了,套用《框框日记》里面框框经常说的一句话“多么有意义的一天呀!”。

以上就是我Launcher Metro风格实现的第一篇博文,简单描述了环境配置和设计思路,写的有不足之处还请各位多多包涵和交流,具体代码实现我会在我的下一篇博文中进行讲解,请多多关注!

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

【腾讯 TMQ】零基础学习 Fiddler 抓包改包

Fiddler 是一款 HTTP 协议调试代理工具,它能够抓取记录本机所有 HTTP(S) 请求,通过设置断点等方法我们可以任意修改进出 Fiddler 的数据...

1.5K0
来自专栏前端儿

安卓微信页面的调试

在开发安卓微信页面时,刚开始一般是会在PC上进行,等到开发后期的自测阶段再转到安卓模拟器上、转到各种真机上自测,上线了如果出问题还需要在真机上调试测试。

5602
来自专栏yang0range

React Native在Android当中实践(五)——常见问题

这个问题是由于ReactNative兼容64位Android手机导致的。 解决办法: 1.在项目的根目录的 gradle.properties 里面添加一行...

1032
来自专栏NetCore

微信快速开发框架(九)-- V3.0发布,代码已更新至Github 新增微店功能

版本内容 1、修正了缺少对Event.View的支持 2、增加了用户UnionID 3、新增微信小店功能 4、多客服功能 5、单元测试 什么是UnionID 我...

3518
来自专栏程序你好

三分钟让你了解什么是Web开发?

693
来自专栏BestSDK

开发必备,小程序常见错误与解决方法

也接触了不少人解决问题的过程里,有一些比较难以排查的可能性列举在这,方便大家看一下: 特别提示:为了排除问题所在,建议针对问题制作最简demo,以便最小化缩小其...

3857
来自专栏技术小黑屋

人生苦短,让你的Git飞起来吧

git是一款超极优秀的版本控制工具,包括Linus大神的linux项目在内的千千万万的项目在使用。你可以使用Eclipse插件管理,亦可以使用终端工具。

1062
来自专栏Crossin的编程教室

爬虫必备工具,掌握它就解决了一半的问题

网上爬虫的教程实在太多了,去知乎上搜一下,估计能找到不下一百篇。大家乐此不疲地从互联网上抓取着一个又一个网站。但只要对方网站一更新,很可能文章里的方法就不再有效...

1252
来自专栏专业duilib使用+业余界面开发

duilib的xml预览工具duilibpreview

4464
来自专栏Samego开发资源

自动化运维之ansible

2087

扫码关注云+社区