精华内容
下载资源
问答
  • Launcher源码

    2014-03-17 17:21:03
    包括了launcher源码和需要的lib文件
  • launcher源码

    2019-03-28 01:09:55
    NULL 博文链接:https://helloandroid.iteye.com/blog/1199516
  • launcher源码分析

    2018-03-11 22:57:04
    android launcher 源码分析,不错的源码资料,分享给大家
  • Android Launcher 源码

    2015-02-04 16:43:07
    Android Launcher 源码修改可编译,作为app开发参考用。
  • Android 7.1 Launcher源码

    2016-12-16 10:41:29
    Android 7.1 Launcher源码
  • 安卓Android源码——Launcher源码修改可编译.zip
  • android launcher 源码

    2010-11-21 18:27:52
    android launcher 源码
  • 安卓Android源码——Android Launcher 源码修改可编译.zip
  • Android 2.2 Launcher源码

    2015-07-31 16:31:47
    Android 2.2 Launcher源码,下载请给好评!
  • Launcher源码2.2

    2013-06-30 16:22:21
    根据网上资料,自己整理好的一份可以编译通过的Launcher源码。 可以直接在 windows 下的 eclpise 导入工程,然后调试。 学习 Launcher 不可缺少的利器哦!
  • Android高级应用源码-Android Launcher 源码修改可编译.zip
  • android4.0 launcher源码

    2012-07-30 15:22:14
    android4.0 launcher源码
  • launcher源码修改 2

    launcher源码修改 2

    替换报名

    1、将包名package=”com.android.launcher”换成自己的定义的包名,如:
    这里写图片描述


    2、并将文件移植到com.xuhun.android.launcher包文件夹中:
    这里写图片描述


    3、报错Error:(1780, 59) 错误: 程序包com.android.launcher.R不存在
    将com.android.launcher.R替换成com.xuhun.android.launcher.R;或者直接删除”com.android.launcher.”
    这里写图片描述

    这里写图片描述


    4、在设备(手机)中应用ID还是com.android.launcher。
    在cmd.exe中adb shell -> pm -p com.android.launcher查询
    这里写图片描述

    需要修改build.gradle(Module:app)中的
    applicationId “com.xuhun.android.launcher”
    这里写图片描述
    再pm -p com.android.launcher查询:
    这里写图片描述


    5、报错Error:(11) No resource identifier found for attribute ‘defaultScreen’ in package ‘com.android.launcher’
    需要修改布局文件中xmlns:launcher=”http://schemas.android.com/apk/res/com.android.launcher”替换成xmlns:launcher=”http://schemas.android.com/apk/res/com.xuhun.android.launcher”或
    xmlns:launcher=”http://schemas.android.com/apk/res-auto”
    这里写图片描述

    这里写图片描述

    重建工程Project
    这里写图片描述

    默认布局

    1、布局文件xml

    default_workspace.xml

    <favorites xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
    
        <search
            launcher:screen="1"
            launcher:x="0"
            launcher:y="0" />
    
        <favorite
            launcher:packageName="com.android.contacts"
            launcher:className="com.android.contacts.DialtactsActivity"
            launcher:screen="1"
            launcher:x="0"
            launcher:y="3" />
    
        <favorite
            launcher:packageName="com.android.contacts"
            launcher:className="com.android.contacts.DialtactsContactsEntryActivity"
            launcher:screen="1"
            launcher:x="1"
            launcher:y="3" />
    
        <favorite
            launcher:packageName="com.android.browser"
            launcher:className="com.android.browser.BrowserActivity"
            launcher:screen="1"
            launcher:x="2"
            launcher:y="3" />
    
        <favorite
            launcher:packageName="com.google.android.apps.maps"
            launcher:className="com.google.android.maps.MapsActivity"
            launcher:screen="1"
            launcher:x="3"
            launcher:y="3" />
    
        <favorite
            launcher:packageName="com.android.mms"
            launcher:className="com.android.mms.ui.ConversationList"
            launcher:screen="1"
            launcher:x="0"
            launcher:y="2" />
    
        <favorite
            launcher:packageName="com.android.vending"
            launcher:className="com.android.vending.AssetBrowserActivity"
            launcher:screen="1"
            launcher:x="3"
            launcher:y="2" />
    
    </favorites>

    xml布局读取

    LauncherProvider.java的内部类DatabaseHelper中

    /**
     * Loads the default set of favorite packages from an xml file.
     *
     * @param db The database to write the values into
     */
    private int loadFavorites(SQLiteDatabase db) {
        Intent intent = new Intent(Intent.ACTION_MAIN, null);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        ContentValues values = new ContentValues();
    
        PackageManager packageManager = mContext.getPackageManager();
        int i = 0;
        try {
            XmlResourceParser parser = mContext.getResources().getXml(R.xml.default_workspace);
            AttributeSet attrs = Xml.asAttributeSet(parser);
                    XmlUtils.beginDocument(parser, TAG_FAVORITES);
    
            final int depth = parser.getDepth();
    
            int type;
            while (((type = parser.next()) != XmlPullParser.END_TAG ||
                    parser.getDepth() > depth) && type != XmlPullParser.END_DOCUMENT) {
    
                if (type != XmlPullParser.START_TAG) {
                    continue;
                }
    
                boolean added = false;
                final String name = parser.getName();
    
                TypedArray a = mContext.obtainStyledAttributes(attrs, R.styleable.Favorite);
    
                values.clear();
                values.put(LauncherSettings.Favorites.CONTAINER,
                        LauncherSettings.Favorites.CONTAINER_DESKTOP);
                values.put(LauncherSettings.Favorites.SCREEN,
                        a.getString(R.styleable.Favorite_screen));
                values.put(LauncherSettings.Favorites.CELLX,
                        a.getString(R.styleable.Favorite_x));
                values.put(LauncherSettings.Favorites.CELLY,
                        a.getString(R.styleable.Favorite_y));
    
                if (TAG_FAVORITE.equals(name)) {
                    added = addShortcut(db, values, a, packageManager, intent);
                } else if (TAG_SEARCH.equals(name)) {
                    added = addSearchWidget(db, values);
                } else if (TAG_CLOCK.equals(name)) {
                    added = addClockWidget(db, values);
                }
    
                if (added) i++;
    
                a.recycle();
            }
        } catch (XmlPullParserException e) {
            LogHelper.errorLog(" Got exception parsing favorites.", e);
        } catch (IOException e) {
            LogHelper.errorLog(" Got exception parsing favorites.", e);
        }
    
        return i;
    }

    XmlUtils.beginDocument报错,可用源码中方法替换:
    这里写图片描述

    修改主屏DEFAULT_SCREN

    修改Launcher.java中DEFAULT_SCREN

    default_workspace.xml中修改Apk图标位置:
    launcher:screen=”0”//第几屏
    launcher:x=”3”
    launcher:y=”3”

    Launcher3 中默认布局

    文件:
    这里写图片描述


    布局读取InvariantDeviceProfile
    这里写图片描述

    展开全文
  • android4.0 Launcher源码

    2013-01-12 10:31:42
    android4.0 Launcher源码,压缩文件中含class文件,导入到eclipse后导入class文件就可以运行。
  • 关于Launcher源码我就不做介绍了,如果大家不知道Launcher是什么那先去百度一下! 如何得到Launcher源码? 一、下载android源码,从android源码中提取Launcher源码。 网上有很多下载的教程,自己找。也...
    关于Launcher源码我就不做介绍了,如果大家不知道Launcher是什么那先去百度一下! 
    

    如何得到Launcher源码?

    一、下载android源码,从android源码中提取Launcher源码。

    网上有很多下载的教程,自己找。也可以去android源码网站上只下载Launcher一部分。

    如果下载的是整个源码,可以在源码的\packages\apps\目录下将launcher拷贝出来;

    二、我把我下载的Launcher 2.2的源码上传上来,大家可以下载。
    展开全文
  • Android Launcher源码下载,PagedView,PagedViewIcon
  • android2.3 launcher 源码

    2012-08-27 11:47:42
    android2.3 launcher 源码
  • Android-launcher源码全面分析 一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5...
  • Andriod8.0 TV Launcher源码, 基于Android Studio的工程源码。 一种基础的 Android TV桌面导航Launcher 的Demo,仅用作交流!
  • Android launcher -- launcher源码修改 1

    千次阅读 2017-06-11 01:08:35
    launcher源码分析 1

    launcher源码修改 1

    launcher网上的架构图:
    这里写图片描述

    launcher源码Java文件:
    |这里写图片描述|这里写图片描述|

    launcher 布局

    这里写图片描述

    这里写图片描述

    这里写图片描述

    launcher中主要类的简介

    1、AddAdapter.java
    添加桌面元素的适配器,添加元素shortcuts、widgets、folders、wallpapers

    2、AllAppsGridView.java
    Icon列表的的主界面,继承gridView。

    3、ApplicationInfo.java
    一个可启动的应用。

    4、DeleteZone.java
    gridview的adapter。

    5、BubbleTextView.java
    一个定制了的textview,主要用于显示桌面应用图标。

    6、CellLayout.java
    是桌面workspace上的每个页面,有屏幕有三屏

    <include android:id="@+id/cell1" layout="@layout/workspace_screen" />
    <include android:id="@+id/cell2" layout="@layout/workspace_screen" />
    <include android:id="@+id/cell3" layout="@layout/workspace_screen" />

    7、DeleteZone.java
    luancher的删除区域,继承ImageView。在平时是处于隐藏状态,在将item长按拖动的时候会显示出来。DeleteZone实现了DropTarget和DragListener两个接口。

    8、DragController.java
    拖动控制接口,为Drag定义的一个接口。

    9、DragLayer.java
    整个launcher的父节点,实现接口DrayController,是内部支持拖拽的viewgroup。DragLayer实际上也是一个抽象的界面,用来处理拖动和对事件进行初步处理然后按情况分发下去,角色是一个controller。它首先用onInterceptTouchEvent(MotionEvent)来拦截所有的touch事件,如果是长按item拖动的事件不传下去,直接交由onTouchEvent()处理,这样就可以实现item的移动了,如果不是拖动item就把事件传到目标view,交有目标view的事件处理函数做相应处理。如果对事件的特殊需求的话可以修改onInterceptTouchEvent(MotionEvent)来实现所需要的功能。

    10、DragScroller.java
    拖动时处理滚动接口。

    11、DragSource.java
    拖动源接口。

    12、DropTarget.java
    拖动目标。

    13、FastBitmapDrawable.java
    图片处理工具。

    14、Folder.java
    由用户选择或由系统生成的一组Icons,这些图片所放在文件。

    15、FolderIcon.java
    一个图标会出现在workspace中代表文件夹Folder。

    16、FolderInfo.java
    ItemInfo子类,包含文件夹信息。

    17、HandleView.java
    launcher抽屉的开关,在android2.2已经没用抽屉了。

    18、InstallShortcutReceiver.java
    Shortcut安装广播。

    19、UninstallShortcutReceiver.java
    Shortcut卸载广播。

    20、ItemInfo.java
    Launcher中对Item的抽象ItemInfo信息,所有类型item的父类。

    ItemInfo包含:
    id(标识item的id);
    cellX(在横向位置上的位置,从0开始);
    spanX(在横向位置上所占的单位格);
    spanY(在纵向位置上所占的单位格);
    screen(在workspace的第几屏,从0开始);
    itemType(item的类型,有widget,search,application等);
    Container(item所在容器的id,如容器是Folder)。

    21、Launcher.java
    默认应用程序Activity,整个launcher的程序的入口。

    22、LauncherApplication.java
    在VM中设置参数,如强制定义自己软件的堆内存大小。

    23、LauncherAppWidgetHost.java
    24、LauncherAppWidgetHostView.java
    25、LauncherAppWidgetInfo.java
    第23、24、25与桌面小部件Widget相关。

    26、LauncherModel.java
    对数据库的操作。主要有几个线程,其中最主要的是ApplicationsLoader和DesktopItemsLoader。ApplicationsLoader在加载所有应用程序时使用,DesktopItemsLoader在加载workspace的时候使用。

    27、LauncherProvider.java
    launcher的数据库,存储了桌面的item的信息。在创建数据库的时候会loadFavorites(db)方法,loadFavorites()会解析xml目录下的default_workspace.xml文件,把其中的内容读出来写到数据库中。

    28、LauncherSettings.java
    设置相关的工具。

    29、LiveFolder.java
    30、LiveFolderAdapter.java
    31、LiveFolderIcon.java
    32、LiveFolderInfo.java
    第29、30、31、32与livefolder实时文件夹相关。
    实时文件夹是在SDK1.5中引入的,支持开发人员在设备的默认打开屏幕(我们将其称为设备的主页)上公开 ContentProvider,如联系人信息、笔记和媒体。将ContentProvider(比如Android的 contactsContentProvider)在主页上公开为活动文件夹之后,在联系人数据库中添加、删除或修改联系人时,此实时文件夹能够刷新自身所包含的内容。

    33、Search.java
    搜索。

    34、UserFolder.java
    35、UserFolderInfo.java
    桌面文件夹包含applications,shortcuts。

    36、Utilities.java
    各种工具,小工具类。

    37、WallpaperChooser.java
    选择壁纸wallpaper。

    38、Widget.java
    表示启动小部件Widget的一个实例,如搜索。

    39、Workspace.java
    Workspace是一个大面积的壁纸和有限数量的屏幕。每个屏幕包含一些用户可以交互的图标、文件夹或小部件。Workspace是指仅使用固定宽度的Workspace。

    展开全文
  • Android Launcher 源码修改可编译.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 最近由于工作需要开始钻研Launcher源码,在这儿记载下我的学习过程,也希望能与大家一起交流,高手们见笑了! 关于Launcher源码我就不做介绍了,如果大家不知道Launcher是什么那先去百度一下! 如何得到Launcher...

    最近由于工作需要开始钻研Launcher源码,在这儿记载下我的学习过程,也希望能与大家一起交流,高手们见笑了! 

    关于Launcher源码我就不做介绍了,如果大家不知道Launcher是什么那先去百度一下! 

    如何得到Launcher源码? 

    一、下载android源码,从android源码中提取Launcher源码。 

        网上有很多下载的教程,自己找。也可以去android源码网站上只下载Launcher一部分。 

        如果下载的是整个源码,可以在源码的\packages\apps\目录下将launcher拷贝出来; 

    二、我把我下载的Launcher 2.2的源码上传到了csdn上,大家可以去下载。 

        地址:http://download.csdn.net/source/2620144

     

     

    出自:http://gqdy365.iteye.com/blog/737642

    展开全文
  • 可直接运行的android launcher源码,无需修改。4.0.3以后的风格,想研究launcher的童鞋们可以看看。
  • 仿小米电视桌面launcher源码Demo,改桌面采用 类似小米一样的metro风格的 设计,可以通过远程配置控制桌面显示 的内容,非常棒,成功用于多个机顶盒ott项目。无积分或者不想登陆点我头像发给你。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,988
精华内容 15,195
关键字:

launcher源码