android studio 导入 Launcher2 模块,并编译运行

AS 版本:2.3.3

aosp 版本: 4.4 (已经编译过)

launcher 目录: .../packages/apps/ 下的 Launcher2 文件夹

 

详细步骤:

1. 在 AS 中 新建一个项目:LauncherTest

2.在 项目中 新增一个 Module : launcher22

3. 将 源码 Launcher2 文件夹 中的 AndroidManifest.xml 复制并替换掉 launcher22 中的 AndroidManifest.xml.

4.将 源码 res 目录 复制 并 替换掉 launcher22 中的 res 目录.

5.复制 源码 src 目录下的 所有文件 放到 launcher22 中的 java 目录下.

操作完上述步骤后 AS 结构如下:

 

6.修改 API 版本为 19:

 

7.点击 build -> Clean Project 或者  会出现一些错误信息,解决掉错误信息就可以运行了:

1).错误1:

Error:Execution failed for task ':launcher33:mergeDebugResources'.
> D:...src\main\res\values\strings.xml: Error: Unsupported type 'add-resource'

解决办法:

将strings文件中  :

<add-resource type="string" name="default_folder_name" />

替换为

<string name="default_folder_name" />

dimens文件中 :

<add-resource type="dimen" name="custom_cling_margin_top" />
    <add-resource type="dimen" name="custom_cling_margin_right" />
    <add-resource type="dimen" name="custom_cling_margin_left" /> 

替换为

  <dimen name="custom_cling_margin_top">0dp</dimen>
    <dimen name="custom_cling_margin_right">0dp</dimen>
    <dimen name="custom_cling_margin_left">0dp</dimen>

 

2).错误2:

D:...\src\main\AndroidManifest.xml:25:5-47 Error:
Invalid value for attribute permission#com.android.launcher3.permission.PRELOAD_WORKSPACE@protectionLevel at AndroidManifest.xml:25:5-47, value=(system|signature), acceptable values are (normal,dangerous,signature,signatureOrSystem)


解决办法:

将 文件中:

android:protectionLevel="system|signature"

修改为 :

android:protectionLevel="signature"

3).错误3:

D:...\build\intermediates\res\merged\debug\values\values.xml

Error:(156) Attribute "title" already defined with incompatible format.
Error:(6) Original attribute defined here.
Error:(156) Attribute "title" already defined with incompatible format.
Error:(6) Original attribute defined here.

解决办法:

打开 launcher22 中的 build.gradle 文件,

删除  compile 'com.android.support:appcompat-v7:26.+'

4).错误4:

D:...\LauncherTest\launcher22\src\main\java\com\android\launcher2\Launcher.java
Error:(96, 26) 错误: 程序包com.android.common不存在
Error:(1625, 37) 错误: 找不到符号
符号:   变量 Search
位置: 类 Launcher

解决办法:

进入 编译过的源码目录:/out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/

将 classes.jar 文件 复制到 AS 的 libs 文件夹下(如果没有就创建一个)

并将其名称修改为 android_common.jar .

5).错误5:

AAPT err(Facade for 1848697531): libpng error: Not a PNG file

解决办法:

在 模块的 build.gradle 中 添加 :

    android {
    ...
    aaptOptions {
        cruncherEnabled = false
    }
    ...
}

6).错误6:

解决办法:

将 xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"

替换为 :

xmlns:launcher="http://schemas.android.com/apk/res-auto"

8.不出意外的话,现在重新 点击 build -> Clean Project 或者   就可以编译成功了.

9.现在点击运行可能会显示如下错误:

解决办法:

找到 模块的 AndroidManifest.xml 文件,

<activity
            android:name="com.android.launcher2.Launcher"
            android:clearTaskOnLaunch="true"
            android:launchMode="singleTask"
            android:screenOrientation="nosensor"
            android:stateNotNeeded="true"
            android:theme="@style/Theme"
            android:windowSoftInputMode="adjustPan">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" /> // 加上这句
                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.MONKEY" />
            </intent-filter>
        </activity>

10.安装APK时可能会出现如下错误:

解决办法:

找到 模块的 AndroidManifest.xml 文件,

修改其对应的报错的权限的名称即可,

图上是 com.android.launcher.permission.WRITE_SETTINGS 报错,

修改为:

    <permission
        android:name="com.android.launcher.permission.WRITE_SETTINGS_22"
        android:description="@string/permdesc_write_settings"
        android:label="@string/permlab_write_settings"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="normal" />

 

github地址 : https://github.com/QQQQQQY/Launcher2

### 回答1: Android LauncherAndroid设备上的一个应用程序,它提供了主屏幕、应用程序列表和小部件等界面。在Android Studio编译Android Launcher需要进行以下步骤: 第一步:创建一个新的Android工程 在Android Studio,可以通过菜单栏的"File"--> "New"--> "New Project"来创建一个新的Android工程。在创建工程时,需要选择一个空白的Activity,这样可以得到一个简单的应用程序,为后续自定义Launcher提供便利。 第二步:导入Launcher代码 可以从各种开源代码库寻找自己需要的Launcher,并将其导入到项目。一般而言,自定义的Launcher首先需要实现用户自定义图标和自定义布局等特殊功能,同时还需要自定义主屏幕背景等界面。因此,需要从开源代码库获取可定制化的Launcher代码,并将其导入到项目。 第三步:进行Launcher定制 通过修改导入Launcher代码,可以自定义主屏幕、应用程序列表、小部件等界面。在这个过程,需要使用Android Studio的UI编辑器,例如XML布局编辑器、Drawable资源编辑器等,在代码引用这些资源。 第四步:编译并部署 编译时,需要首先检查代码是否存在问题,包括语法错误、拼写错误、类定义错误等。如果代码存在问题,需要进行调试和修正,直到能够正确编译。在编译完成后,可以将应用程序发布到Google Play等应用市场,也可以在设备上进行调试、测试和分发。 总的来说,Android Studio编译Android Launcher方面提供了很好的支持和便利,使得开发者可以更快速、更有效地开发出自定义的Launcher应用程序。 ### 回答2: Android LauncherAndroid 系统的主屏幕界面,用户可以在其查看已安装应用程序,并快速启动这些应用程序。Android StudioAndroid 开发的官方 IDE,提供了丰富的工具和资源来协助开发者创建高质量的 Android 应用程序。那么,如何在 Android Studio 编译一个 Android Launcher 呢? 首先,我们需要了解 Android Launcher 的基本结构和要求。Android Launcher 主要由以下几个部分构成:桌面图标、文件夹、图标文字标签、搜索框、快捷操作栏等。为了能够在 Android Studio 成功编译 Android Launcher,我们需要先准备好以下工具和素材: 1. Android Studio 开发环境。 2. Android SDK 和 JDK。 3. Android 设备或模拟器。 4. Android Launcher 的源代码和资源文件。 一般而言,我们可以通过使用 Android Studio 的项目模板快速创建一个 Android Launcher 项目,其步骤如下: 1. 打开 Android Studio,并点击“Start a new Android Studio project”。 2. 选择 “Empty Activity” 模板,并输入项目名称和包名。 3. 在 “Create Activity” 界面填写 Activity 名称和 Layout 名称。 4. 点击 “Finish”创建项目。 5. 在项目,我们可以通过使用 Android Studio 的 Drag & Drop 工具快速设计界面,并编写代码实现相关功能。 6. 当编写完成后,我们可以使用 Android Studio 的 “Build” 和 “Run” 按钮来构建和运行程序。 值得注意的是,Android Launcher 的设计和实现需要考虑到用户体验和设备兼容性等因素。因此,在项目开发过程,我们需要进行多次测试和优化,以确保 Android Launcher 能够平稳运行并提供出色的用户体验。 综上所述,通过使用 Android Studio 进行 Android Launcher编译可以让我们更加高效地完成项目开发,并提高项目的可靠性和稳定性。当然,为了成功地编译一个优秀的 Android Launcher,我们还需要包括团队协作、需求分析等多个方面的细节工作。 ### 回答3: Android launcherAndroid Studio编译是非常简单和易于操作的。一般来说,Android系统会在启动时显示桌面,并使用一个Launcher(启动器)应用程序来显示应用程序的缩略图或图标。要编译一个自己的Launcher应用程序,可以按照以下步骤: 1. 打开Android Studio,并创建一个新项目。在创建新项目时,请确保选择“Empty Activity”模板。 2. 在Android Studio的“Project”视图,右键单击“app”文件夹,并选择“New -> Activity -> Empty Activity”。这将创建一个新的空Activity。 3. 在“app”文件夹,找到“manifests”文件夹,并打开其的“AndroidManifest.xml”文件。在文件添加以下内容: ``` <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` 这个代码片段会告诉Android系统,当用户点击应用程序的图标时,启动MainActivity,并将其作为Launcher应用程序。 4. 在MainActivity.java文件,添加一些代码来创建应用程序的UI和处理事件。这些代码可以是你想要的,你可以创建一个列表视图或一个网格视图,并显示应用程序的图标。 5. 最后,单击Android Studio顶部菜单栏的“Run”按钮,选择一个模拟器或连接到Android设备,并运行应用程序。如果一切正常,您将看到您的Launcher应用程序在设备上运行。 总之,在Android Studio编译Launcher应用程序非常简单和快速。您只需要创建一个空的Activity,设置应用程序的manifest,编写一些代码来创建UI,并将其运行在您的设备上。这个过程可以让您加深对Android应用程序开发的理解,帮助了解Launcher应用程序的底层工作原理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值