`
亚当爱上java
  • 浏览: 707359 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中源码Launcher主屏幕程序排列详解【安卓Launcher进化一】

阅读更多

   最近研究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)。先看截图,下面看布局文件中的代码:

 

                                                                       

                                    图(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格。

 

 

     编译说明:

            (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

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

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

 

    本文转载自 :http://blog.csdn.net/wdaming1986/article/details/6978814

  • 大小: 91.4 KB
  • 大小: 120.4 KB
分享到:
评论

相关推荐

    android Launcher源码详解

    Android Launcher 源码详解 Android Launcher 是 Android 系统中一个非常重要的组件,负责显示桌面程序和管理应用程序图标。了解 Launcher 的源码可以帮助我们更好地理解 Android 系统的设计思想和实现机制。本文...

    Android Launcher3源码

    **Android Launcher3源码详解** Android系统的桌面启动器(Launcher)是用户与设备交互的核心界面,它负责展示应用快捷方式、小部件以及主屏幕布局。其中,`Launcher3`是Android开源项目AOSP(Android Open Source ...

    android4.0原生launcher代码

    【Android 4.0 原生 Launcher 代码详解】 Android 4.0(冰淇淋三明治,Ice Cream Sandwich)的 Launcher 是用户界面的核心部分,它作为系统的启动器,负责展示应用图标、小部件和主屏幕。理解其源码对于开发者深入...

    Launcher3_androidlauncher_android开发_

    【Android Launcher 开发详解】 Android Launcher,作为用户与设备交互的入口,是Android系统的核心组件之一。本主题将深入探讨如何开发一个自定义的Android Launcher,以"Launcher3"为例,它是Android开源项目AOSP...

    android模拟launcher公司项目demo源码-2011-8-2

    【Android 模拟 Launcher 公司项目 Demo 源码详解】 在 Android 开发中,Launcher 是用户与系统交互的入口,它展示了桌面图标、应用抽屉等元素,让用户能够启动应用程序。本 Demo 源码是针对 2011 年 8 月 2 日的一...

    launcher2源码

    `launcher2`是Android操作系统中默认主屏幕应用的早期实现,主要负责管理桌面快捷方式、小部件以及应用抽屉。在Android 4.3及以上版本中,`launcher2`作为系统组件,对于理解Android系统的桌面交互逻辑具有重要意义...

    Android Launcher2

    在Android系统中,Launcher是用户与设备交互的第一道窗口,它扮演着桌面的角色,负责展示应用图标、小部件以及管理主屏幕。`Launcher2`是Android早期版本中的默认启动器,虽然在后来的Android版本中被`Launcher3`...

    android源码目录结构

    "Android 源码目录结构详解" Android 源码目录结构是 Android 操作系统...Android 源码目录结构是一个复杂的系统,了解 Android 源码目录结构可以帮助开发者更好地理解 Android 系统,并更好地开发 Android 应用程序。

    Android TV Launcher开源项目

    - **视频播放**:Android TV Launcher 支持直接在主屏幕上预览和播放视频内容,这通常通过集成媒体库和视频播放器实现。 - **图片展示**:用户可以浏览和展示存储在设备上的照片,为家庭娱乐增添了更多乐趣。 - *...

    android的launcher

    【Android的Launcher详解】 Android的Launcher,简单来说,就是用户在手机或平板设备上看到的主屏幕,也就是桌面。它是用户与系统交互的入口,显示应用程序快捷方式、小部件和其他可自定义元素。在Android系统中,...

    Android Launcher3

    `Android Launcher3`是Android操作系统中默认主屏幕的源代码实现,主要负责应用程序的启动、组织和展示。这个项目是从Android M版本中提取出来,并移植到了Android Studio环境中,以便开发者能够在本地进行更便捷的...

    Launcher4源码包

    Launcher是Android操作系统中的核心组件之一,它扮演着用户界面的入口角色,负责展示应用图标、桌面小部件等,并管理用户的启动操作。Launcher4.0.3源码包是针对Android系统的一个特定版本的启动器实现,包含了完整...

    Android Launcher4.0工程

    Android Launcher是操作系统的核心组件之一,它负责为用户提供桌面界面,展示应用快捷方式和小部件,以及管理设备的主屏幕。Android 4.0(Ice Cream Sandwich)版本的Launcher在设计和功能上进行了显著改进,以提供...

    安卓Launcher桌面相关-使用eclipse开发工具自己写的一个桌面小控件.rar

    - 了解 Android Launcher 的源码,如 AOSP(Android Open Source Project)中的 Launcher2 或 Launcher3,这有助于深入理解其工作原理。 - 针对性能和用户体验进行优化,如使用异步加载图片、缓存数据等。 这个...

    Launcher3源码

    Launcher3是Android操作系统中默认主屏幕应用的源代码,它是用户与设备交互的主要入口。深入理解Launcher3源码对于开发者来说至关重要,因为它涉及到Android系统的启动、图标排列、小部件添加、搜索功能以及各种...

    Launcher的源码详细分析

    Android Launcher作为手机的主屏幕,是用户与系统交互的核心入口。深入了解其源码,有助于我们更好地定制和优化系统行为,提高用户体验。本文将基于Android 2.1的launcher2源码,分析主要的文件和类,揭示其背后的...

    launcher学习

    8. **Android组件间通信**:Launcher作为Android系统的一部分,与其他应用程序进行通信,如启动应用、创建快捷方式等。理解这一过程对于开发自定义启动器至关重要。 9. **权限管理**:在Android系统中,每个应用都...

    疯狂Android讲义源码

     1.4 开始第一个Android应用 20  1.4.1 使用Eclipse开发第一个  Android应用 20  1.4.2 通过ADT运行Android应用 23  1.5 Android应用结构分析 24  1.5.1 创建一个Android应用 24  1.5.2 自动生成的R.java 26 ...

Global site tag (gtag.js) - Google Analytics