最近研究Lancher,从短信Mms的框架中过度到Launcher的bug和需求修改中,下面对launcher最简单的主屏幕程序的程序的布局的详解,给读者一个入门的感觉,android的主屏幕一共分为5个屏幕,从左到右依次是:0,1,2,3,4。所以想在那个主屏幕放哪些程序或者widget都可以在布局文件中实现,下面我就说说这个布局文件default_workspace.xml。这是对主屏幕进行排列的布局文件,在这里面写好,程序运行后就可以实现哪个屏幕放那些特定的程序或widget了。下面先看截图,分别为图(1)和图(2)。图(1)为3屏即为主屏的布局,最下面放了4个程序的快捷方式。图(2)为我粗糙地画了一个大概的一个面貌,屏幕一般被分为2维坐标的,左上角为原点(0,0),横向的为x轴(坐标向右依次加1,分别是0,1,2,3),竖向的为y轴(向下依次加1,分别是0,1,2,3)。大明原创:转载请标明出处:http://blog.csdn.net/wdaming1986/article/details/6978814。先看截图,下面看布局文件中的代码:

图 (1) 图(2)


下面看布局文件中的代码:

<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2009 The Android Open Source Project     Licensed under the Apache License, Version 2.0 (the "License");     you may not use this file except in compliance with the License.     You may obtain a copy of the License at          http://www.apache.org/licenses/LICENSE-2.0     Unless required by applicable law or agreed to in writing, software     distributed under the License is distributed on an "AS IS" BASIS,     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.     See the License for the specific language governing permissions and     limitations under the License.-->   <favorites xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">    <!--  Far-left screen [0] -->    <!--  Left screen [1] -->    <appwidget        launcher:packageName="com.google.android.apps.genie.geniewidget"        launcher:className="com.google.android.apps.genie.geniewidget.miniwidget.MiniWidgetProvider"        launcher:screen="1"        launcher:x="0"        launcher:y="0"        launcher:spanX="4"        launcher:spanY="1" />            <!--  Middle screen [2] -->    <search        launcher:screen="2"        launcher:x="0"        launcher:y="0" />    <appwidget        launcher:packageName="com.android.protips"        launcher:className="com.android.protips.ProtipWidget"        launcher:screen="2"        launcher:x="0"        launcher:y="1"        launcher:spanX="4"        launcher:spanY="1" />    <favorite        launcher:packageName="com.android.Mms"        launcher:className="com.android.Mms.MainActivity"        launcher:screen="2"        launcher:x="0"        launcher:y="3"    />    <favorite        launcher:packageName="com.android.phone"        launcher:className="com.android.phone.MainActivity"        launcher:screen="2"        launcher:x="1"        launcher:y="3"    />    <favorite        launcher:packageName="com.android.Email"        launcher:className="com.android.Email.MainActivity"        launcher:screen="2"        launcher:x="2"        launcher:y="3"    />    <favorite        launcher:packageName="com.android.yuemei"        launcher:className="com.android.yuemei.MainActivity"        launcher:screen="2"        launcher:x="3"        launcher:y="3"    />    <!--  Right screen [3] -->    <appwidget        launcher:packageName="com.android.music"        launcher:className="com.android.music.MediaAppWidgetProvider"        launcher:screen="3"        launcher:x="0"        launcher:y="0"        launcher:spanX="4"        launcher:spanY="1" />    <appwidget        launcher:packageName="com.android.vending"        launcher:className="com.android.vending.MarketWidgetProvider"        launcher:screen="3"        launcher:x="1"        launcher:y="1"        launcher:spanX="2"        launcher:spanY="2" />    <!--  Far-right screen [4] --></favorites>

标签讲解:

<appwidget>为添加相应的widget;

<search>为添加google搜索框;

<favorite>为添加程序的快捷方式;

属性讲解:

launcher:packageName="com.android.vending " 程序的包的名字。

launcher:className="com.android.vending.MarketWidgetProvider" 程序入口类的名字。

launcher:screen="3" 表示在屏幕的位置,从左向右依次为:0,1,2,3,4.共5屏,第2屏为主屏幕。

launcher:x="1" 在X轴的位置,如图(2)所画。向右依次增加,分别为0,1,2,3.共4个。

launcher:y="1" 在Y轴的位置,如图(2)所画。向下依次增加,分别为0,1,2,3.共4个。

launcher:spanX="4" 在X轴上占的格数。"4"代表占4格。

launcher:spanY="2" 在Y轴上占的格数,"2"代表占2格。

大明原创:转载请标明出处:http://blog.csdn.net/wdaming1986/article/details/6978814

编译说明:

(1)先build完成;有问题可以参考Android在Linux下编译源码【安卓进化二十八】;

(2)在mm完成后,push到手机中:

adb push ../../out/target/product/n80w/system/app/Launcher.apk system/app/

(3)进入烧录手机的红屏幕界面。开机键和音量减小的键一起按。

(4)用root权限进入../out/host/linux_x86/bin/目录下,输入命令:

#./fastboot -w 清除 userdata 和 cache 。目的:确保得到你想要的效果!

(5)最后重启手机即可:或者输入命令:./fastboot reboot

或者干脆点扣电池重启。事先声明:此招为大明习惯,操作过程中手机出现任何问题,本人概不负责。

这样五步骤就得到了你想要的效果了。

更多相关文章

  1. [Gsensor] Android(安卓)重力感应实例代码
  2. Android(安卓)总结:Manifest文件中,application和activity标签属
  3. 偷师阿里内部,月入20k程序员的Android规范文档
  4. 【译】利用多线程提高程序性能(for Android)
  5. android跳转小程序并返回遇到的坑点和解决方案
  6. 利用Canvas实现在屏幕随机位置绘制10个大小(边长为10-160)颜色随
  7. Android(安卓)API 中文 (5) —— 使用平台的样式和主题
  8. 【Android(安卓)屏幕扩展/共享】5分钟搞定—电脑 与 手机共享屏
  9. Android(安卓)Hook程序,对库函数进行HOOK

随机推荐

  1. Android录音应用实例教程
  2. android view(3)事件处理流程
  3. Android中ConnectivityManager监听网络状
  4. Android杂谈:cup信息查看
  5. Android(安卓)开发之 RecyclerView Adapt
  6. 快速反编译APK
  7. Android(安卓)Push Notification
  8. [Android]挂断、接听电话
  9. Android中的搜索框(SearchView)的功能和用
  10. Android图像处理(三)通过矩阵变换实现图像