Android launcher -- launcher源码修改 2
来源:互联网 发布:数据安全管理规定 编辑:程序博客网 时间:2024/05/29 07:50
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
- Android launcher -- launcher源码修改 2
- Android launcher -- launcher源码修改 1
- Android launcher -- 调试运行launcher源码 2
- Android源码开发之修改Launcher & SystemUI
- Android Launcher修改
- android Launcher修改解析
- android 修改默认Launcher
- android launcher源码分析
- android launcher源码分析 .
- android launcher源码分析
- android launcher源码分析
- android launcher源码分析
- Android launcher -- 调试运行launcher源码 1
- Android源码之Launcher修改---修改Launcher的主屏幕的屏幕数
- Android Launcher修改--左右滑动屏幕切换源码追踪
- Android Launcher修改--左右滑动屏幕切换源码追踪
- android launcher语言设置修改
- Android Launcher分析和修改
- SpringBoot简单入门
- 不擅长是因为“方法”不对-读后感
- I/O多路转接之poll
- Arranging Coins
- 从mysql中导出一列数据到txt
- Android launcher -- launcher源码修改 2
- cenos7 的gitlab 搭建和遇到的坑
- Rosalind-计算DNA碱基数
- 【java学习之旅】——Struts2的I18n实现登陆页面中英文切换
- map/set/multi_map/multi_set/unorder_map/unorder_set总结
- 26 register_chrdev函数
- AppCompactActivitry,FragmentActivity,Activity区别及主题样式设置
- C++模拟“生产者消费者”进程同步问题
- Mxnet训练自己的数据集并测试