Android - app icon for debug and release mode

2019-04-21 06:13发布

Is it possible to set separate icons for application if we set android:debuggable=true in manifest and if we set android:debuggable=false like in iOS?

7条回答
祖国的老花朵
2楼-- · 2019-04-21 06:53

You need gradle and build flavors to do this. Then you can have different resource folders for the different flavors.

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Product-flavors

查看更多
【Aperson】
3楼-- · 2019-04-21 06:54

as far as i know app icons are only dependent on the drawables folder they are in, and there is no folder qualifiers for -debug and there's no way for you to alter the icon based on manifest changes

查看更多
迷人小祖宗
4楼-- · 2019-04-21 06:56

I'm a bit late the party, but anyway. At the moment I'm posting this in '16, you actually can have different launch icon set simply putting them to respective directories, not sure how it was back in '13 though. To achieve that you need to create debug/res directories under app/src and place your mipmap or drawable directories there. So you'll have app/src/main/res/ and app/src/debug/res/ paths. Android will have higher priority for build-related resource directory - to main directory. Place your debug and release resources to the appropriate paths and you'll have what you want. Do all of above considering you have to use Gradle build system.

Here you can read more about stuff like that: http://tools.android.com/tech-docs/new-build-system/resource-merging

查看更多
太酷不给撩
5楼-- · 2019-04-21 06:58

You may try having two different app icons in your drawable folder - namely:

  1. drawable/app_icon_release
  2. drawable/app_icon_debug

When setting debug mode to true:

<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest>
        <application 
            android:debuggable="true"
            android:icon="@drawable/app_icon_debug"
            android:label="Your App Name" >

        </application>  
</manifest>
</android>

Otherwise, when debug mode to false:

<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest>
        <application 
            android:debuggable="false"
            android:icon="@drawable/app_icon_release"
            android:label="Your App Name" >

        </application>  
</manifest>
</android>
查看更多
狗以群分
6楼-- · 2019-04-21 07:00

Whereas the response by Alex is fine in case flavors are not in use, for getting different icons while using different flavors with multiple dimensions, such as:

flavorDimensions "color", "size"
productFlavors {
    black {
        dimension "color"
    }
    white {
        dimension "color"
    }

    big {
        dimension "size"
    }
    small {
        dimension "size"
    }
}

This can be achieved as:

First, put the debug resources in separate folders, such as:

src/blackDebug/res
src/whiteDebug/res

Second, put the key with multiple flavor dimensions is that the sourceset name must contain all the possible flavor combinations, even if some of these dimensions do not affect the icon.

sourceSets {
    // Override the icons in debug mode
    blackBigDebug.res.srcDir 'src/blackDebug/res'
    blackSmallDebug.res.srcDir 'src/blackDebug/res'
    whiteBigDebug.res.srcDir 'src/whiteDebug/res'
    whiteSamllDebug.res.srcDir 'src/whiteDebug/res'
}

Just to make it clear, the following will not work when multiple dimensions are in use:

sourceSets {
    // Override the icons in debug mode
    blackDebug.res.srcDir 'src/blackDebug/res'
    whiteDebug.res.srcDir 'src/whiteDebug/res'
}
查看更多
女痞
7楼-- · 2019-04-21 07:01

I know this is an old question - but if anyone else searches for this...

You can do this by creating a debug manifest (src/debug/AndroidManifest.xml) and updating its properties.

See: http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-Markers

查看更多
登录 后发表回答