Can one APK result in multiple icons/apps on the device?

by Andrew » Thu, 09 Jul 2009 00:36:26 GMT

Sponsored Links
 Hi all,

Curious if this functionality is present on the Android platform.  I'm
looking to package my apps into a single APK file, which when
installed would spawn multiple application icons on the device.  All
applications would be related and would talk to each other (this part
isn't a problem and is working fine).

Can I package multiple related apps in a single APK install file?



Can one APK result in multiple icons/apps on the device?

by Mark Murphy » Thu, 09 Jul 2009 00:41:37 GMT


That depends on what you mean by "app".

If you mean multiple icons in the Launcher, sure, no problem. Just have
all such activities have the standard intent-filter with <action
android:name="android.intent.action.MAIN" /> and <category
android:name="android.intent.category.LAUNCHER" />. Every activity with
that intent filter will show up with an icon.

If you want multiple entries in the Manage Applications list in
Settings, though, that cannot be done AFAIK.

In Android, an app = APK. What you are really creating with the multiple
icons is a single app with multiple user-initiated entry points.

Mark Murphy (a Commons Guy)  | 

Warescription: Three Android Books, Plus Updates, $35/Year


Sponsored Links

Can one APK result in multiple icons/apps on the device?

by Bryne McCullough » Wed, 05 Aug 2009 00:21:28 GMT

 'm trying to do the same thing as the original poster: That is, have
one APK, resulting in multiple icons in the Launcher app tray, each
icon launching a different Activity within my APK. Seems like a simple
thing, but it's not working for me.

I've posted my AndroidManifest.xml below. The behavior I'm seeing is
that I indeed get two icons in the Launcher app tray -- an icon for
Foobar1, and another icon for Foobar2. Both icons work as expected if
they're the first thing I click. That is, icon Foobar1 launches
Activity Foobar1, and icon Foobar2 launches Activity Foobar2.

However, if I launch Foobar1, then hit the home key (not the back
key!), then try to launch Foobar2, what I get is Foobar1 -- and vice

It seems like if either Foobar1 or Foobar2 are already instantiated
within the app's task, and I go back to the Launcher and attempt to
launch either Foobar1 or Foobar2, the Launcher simply brings my
already existing task to the foreground showing whatever Activity was
previously on top.

Any pointers? Thanks!

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=""
<application android:icon="@drawable/icon" android:label="Foobar">
<activity android:name=".Foobar1" android:label="Foobar1">
<action android:name="android.intent.action.MAIN"/>
<activity android:name=".Foobar2" android:label="Foobar2">
<action android:name="android.intent.action.MAIN"/>
<uses-sdk android:minSdkVersion="3"/>

On Jul 8, 9:41am, Mark Murphy <> wrote:


Can one APK result in multiple icons/apps on the device?

by Bryne McCullough » Wed, 05 Aug 2009 10:38:13 GMT

  think I have a solution figured out. As my limited understanding
goes, the launcher always launches Activities with
FLAG_ACTIVITY_NEW_TASK, which means the newly launched activity is
intended to be the root of a new task. However, if that task already
exists with a different Activity at its root, this doesn't work. So,
the solution to the example I pasted in my prior post with Activities
Foobar1 and Foobar2 would be to give those two Activities different
task affinities like so:

<activity android:name=".Foobar1" android:label="Foobar1"
<activity android:name=".Foobar2" android:label="Foobar2"

Clarifications would be welcome!

On Aug 3, 5:48pm, Bryne McCullough <>

Other Threads

1. Service: both onStart() and onStartCommand() called

Hello (World).

I'm trying to create a Service which is backwards compatible, working
on both pre-2.0 and post-2.0 phones.
Therefore I implement both onStart() and onStartCommand() according
int, int).
Where the comments on onStart() say:
// This is the old onStart method that will be called on the pre-2.0
// platform.  On 2.0 or later we override onStartCommand() so this
// method will not be called.

However, running 2.1 in the Emulator, both methods are called when I
start my Service. Is this a bug? Did anyone else have this problem?


2. RIL issue: is reliable?

Is from default platform package reliable and can
be used to provide phone functions in Android? Or one has to develop
vendor library?

I added GSM modem to the board via tty device but seems default RIL
library is not capable to provide phone operation. The following is
taken from radio log (by typing command: adb logcat  radio)

I/RIL     ( 1834): Opening tty device /dev/ttyS0
I/PHONE   ( 1944): Network Mode set to 0
I/PHONE   ( 1944): Cdma Subscription set to 1
D/PHONE   ( 1944): mDoesRilSendMultipleCallRing=true
D/PHONE   ( 1944): mCallRingDelay=3000
I/RILC    ( 1834): libril: new connection
I/RILC    ( 1834): RIL Daemon version: android reference-ril 1.0
I/RILJ    ( 1944): Connected to 'rild' socket
W/GSM     ( 1944): Can't open /system/etc/voicemail-conf.xml
W/GSM     ( 1944): Can't open /system/etc/spn-conf.xml
D/GSM     ( 1944): [DSAC DEB] registerForPsRestrictedEnabled
D/GSM     ( 1944): [DSAC DEB] registerForPsRestrictedDisabled
D/GSM     ( 1944): [PdpConnection] DataConnection.clearSettings()
D/RIL     ( 1834): onRequest: <unknown request>
D/STK     ( 1944): StkService: StkService: is running
D/STK     ( 1944): StkService: NEW sInstance

As one can see from these two lines

D/RIL     ( 1834): onRequest: <unknown request>
error: doesn't recognize

In the source file of the library hardware/ril/reference-ril/reference-
ril.c in the method onRequest() :

        && request != RIL_REQUEST_GET_SIM_STATUS
    ) {
        RIL_onRequestComplete(t, RIL_E_RADIO_NOT_AVAILABLE, NULL, 0);

Initial value of sState is RADIO_STATE_UNAVAILABLE therefore the only
message which can be processed by the RIL as the very first message

But in fact RILJ ( application sends ro RILD first
exception getting error code RIL_E_RADIO_NOT_AVAILABLE.

Anybody knows where can be found reliable library?


3. wifi not remembering the access point

4. ContextWrapper.openOrCreateDatabase() throws NullPointerException

5. pop-up/toast notification without activity/context

6. how to block buttons with a layout above all?

7. Cupcake(API3) friendly way to pause/stop sound loops in SoundPool? Any ideas?