• LauncherApplication


    http://blog.csdn.net/hu2839fdjsfdsan/article/details/6570036

    1.LauncherApplication的作用意义分析

    概括:LauncherApplication属于自定义的Application类,并在AndroidManifest.xml里指定了自定义Application类,如下:

        <application

            android:name="com.android.launcher2.LauncherApplication"

            android:process="@string/process"

            android:label="@string/application_name"

            android:icon="@drawable/ic_launcher_home">

        </application>

    作用:

    a.创建全局使用的应用程序快捷方式的缓存.

        IconCache,即在LauncherApplication中创建.

    b.创建全局使用的数据库加载类LauncherModel.

    c.为LauncherModel注册package remove,update相关的Boradcast.为LauncherModel 注册favorites 修改的observer.

            // Register intent receivers

            IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);

            filter.addAction(Intent.ACTION_PACKAGE_REMOVED);

            filter.addAction(Intent.ACTION_PACKAGE_CHANGED);

            filter.addDataScheme("package");

            registerReceiver(mModel, filter);

            filter = new IntentFilter();

            filter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);

            filter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);

            registerReceiver(mModel, filter);

            // Register for changes to the favorites

            ContentResolver resolver = getContentResolver();

            resolver.registerContentObserver(LauncherSettings.Favorites.CONTENT_URI, true,

                    mFavoritesObserver);

    d.提供全局使用的LauncherModel的入口.

        LauncherModel getModel() {

            return mModel;

        }

    e.(父类)提供获取PackageManager,Resource,相关资源的方法.

       LauncherModel.java

           app.getPackageManager().getDefaultActivityIcon();

           app.getResources().getInteger();

    f.提供Context作用.

    2.IconCache

    概括:

        这个类是提供系统全局使用的应用程序基本信息(title,icon)的缓存信息.这样每次使用的时候都能够从系统里很快得到.

    作用:

        a.声明内部类对应存储应用程序的基本信息,因为home的作用就是需要展现这些东西。

           private static class CacheEntry {

               public Bitmap icon;

               public String title;

               public Bitmap titleBitmap;

         }

        b.提供应用程序的默认图标.

               private Bitmap makeDefaultIcon();

        c.提供全局的缓存信息.

               private final HashMap<ComponentName, CacheEntry> mCache;

    3.LauncherModel

    概括:

        在程序包,以及程序的快捷方式更改,添加时,更新数据库的表。加载更新workspace,all apps view的程序及快捷方式.

    作用:

        a.声明接口Callbacks,提供了一系列加载程序及快捷方式的抽象方法.

       public interface Callbacks {

           public boolean setLoadOnResume();

           public int getCurrentWorkspaceScreen();

           public void startBinding();

           public void bindItems(ArrayList<ItemInfo> shortcuts, int start, int end);

           public void bindFolders(HashMap<Long,FolderInfo> folders);

           public void finishBindingItems();

           public void bindAppWidget(LauncherAppWidgetInfo info);

           public void bindAllApplications(ArrayList<ApplicationInfo> apps);

           public void bindAppsAdded(ArrayList<ApplicationInfo> apps);

           public void bindAppsUpdated(ArrayList<ApplicationInfo> apps);

           public void bindAppsRemoved(ArrayList<ApplicationInfo> apps, boolean permanent);

            public boolean isAllAppsVisible();

       }

  • 相关阅读:
    泛型系列<9>:使用相应的泛型版本替换Hashtable
    泛型系列<2> 创建泛型类
    泛型系列<5>:链表的实现
    泛型系列<4>使用相应的泛型版本替换Stack和Queue
    泛型系列<8>:使用泛型创建只读集合
    Visual Studio统计有效代码行数
    C++11 现代C++风格的新元素(转)
    神秘海域:顶级工作室“顽皮狗”成长史(中)
    沸腾十五年TX
    为你解惑之WPF经典9问详解
  • 原文地址:https://www.cnblogs.com/greywolf/p/2831267.html
Copyright © 2020-2023  润新知