Why Android market is still bad news for devs ...

by SoftwareForMe.com SoftwareForMe.com » Fri, 30 Oct 2009 04:56:49 GMT


Sponsored Links
 I agree that it is a little disappointing that there is no better protection
scheme, and that the losses hurt.

A quick story: our app, PhoneMyPC, a PC remoting app is a combination
application and hosted service. The phone and PC use our servers to
cooperatively get connected for each remote control session. This makes
PhoneMyPC ideal for people inside corporate firewalls, or who just don't
want to bother configuring for RDP or VNC.

We are nearing the end of a [protracted] Beta program. In the beginning, we
were hosting on port 443. Several weeks ago we switched to a different port
(temporarily), and kept both services running while users downloaded the new
release.

Most people moved to the new server within a week, but a large body (half of
all connections using our service) never moved at all. After more than two
weeks, we discontinued service on the old port, and there has not yet been a
single support contact as a result.

We made the decision to disconnect the old service even though it was still
being well used because we discovered our app being sold illegally on one of
the websites talked about in this group.

So, our "retention for pay" rate is also about 70%, yet we believe as many
as half of the people using our application (or at least possessing it) have
acquired it outside of the Android Market (and hence are not automatically
getting updates).

For our purposes, Google could trivially enable us to protect our resources
by adding any phone identifier into the Google Checkout records, such as
phone number or IMEI, so that we could tie phones running our app back to
thei purchase records.

Scott,
SoftwareForMe.com


On Thu, Oct 29, 2009 at 8:12 AM, admin.androidsl...@googlemail.com <





-- 
Warm regards,
The PhoneMyPC Team

--~--~---------~--~----~------------~-------~--~----~



Why Android market is still bad news for devs ...

by SoftwareForMe.com SoftwareForMe.com » Fri, 30 Oct 2009 05:32:20 GMT


  agree.

I was thinking Phone# is better than IMEI, because 99% of people take their
phone numbers with them.

But, I thought if someone got a new number, I could query for sufficient
details to "re-enabled" from the old checkout record.

Actually, it seems the best would be simply embedding the Google Checkout
transaction ID in the APK somehow, or otherwise making it available.

Scott,
SoftwareForMe.com

On Thu, Oct 29, 2009 at 2:04 PM, Streets Of Boston
<flyingdutc...@gmail.com>wrote:



--
Warm regards,
The PhoneMyPC Team

--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


Why Android market is still bad news for devs ...

by Sean Hodges » Fri, 30 Oct 2009 06:26:22 GMT


 On Thu, Oct 29, 2009 at 9:31 PM, SoftwareForMe.com SoftwareForMe.com



Woh there. Drop that percentage by a good amount SoftwareForMe.com...

Just like you, I take my number with me. But the majority of people I
know don't. I'm not saying 99% of people DON'T keep their numbers -
just suggesting that my friends, family and colleagues can't all
squeeze into that remaining 1% :)

I still don't see the appeal for DRM, there are plenty of other
options - licence keys, periodical payments, and pay-for upgrades...
All of which avoid having to double your support efforts just because
people like to change their phones and email addresses.

I consider the Android Market as a "app shop"; it is a place to get
your software noticed and shipped. Not as a means to an end for
developers when considering piracy protection, distribution methods,
and payment options.

Having said all that, improvements to the market will always be
welcomed. I just think the issues listed against the current AM should
not be a big deal to any serious developer who doesn't whittle their
time away making the next fart soundboard app for 5. Yes, the Android
Market is insufficient in certain areas, but anyone serious about
selling mobile apps will also consider options outside of the Android
Market.

--~--~---------~--~----~------------~-------~--~----~



Why Android market is still bad news for devs ...

by Sean Hodges » Fri, 30 Oct 2009 06:32:56 GMT


 On Thu, Oct 29, 2009 at 10:24 PM, admin.androidsl...@googlemail.com



You have a point here. I am one of the users that can't buy from the
Android Market. If the app cannot be purchased from something other
than Google Checkout, then I seek alternative apps. Many others I
know, however, would rather just jump to the nearest torrent site and
get the app illegitimately.

The solution is to offer other ways to buy the app, and advertise
them. Alternative markets are one way, and direct selling is another.
Hopefully the Android Market will improve it's International payment
process, but even then it is not a good idea to rely on a single
distribution method.

--~--~---------~--~----~------------~-------~--~----~



Why Android market is still bad news for devs ...

by Felipemnoa » Fri, 30 Oct 2009 07:56:12 GMT


  also agree. 
It wont stop piracy but it will no longer be as simple as copy and paste. Now
if somebody wants to pirate your app they will need to spend hours.

On Oct 29, 2009, at 5:31 PM, "SoftwareForMe.com SoftwareForMe.com"
<softwareforme....@gmail.com> wrote:

I agree.

I was thinking Phone# is better than IMEI, because 99% of people take their
phone numbers with them.

But, I thought if someone got a new number, I could query for sufficient
details to "re-enabled" from the old checkout record.

Actually, it seems the best would be simply embedding the Google Checkout
transaction ID in the APK somehow, or otherwise making it available.

Scott,
SoftwareForMe.com

On Thu, Oct 29, 2009 at 2:04 PM, Streets Of Boston <flyingdutc...@gmail.com>
wrote:

I wouldn't use IMEI or phone-number.
App purchases are linked to a google account. If a user switches to a
new phone, they'd need a new activation and this can mean support
headaches for the app developer.

Google should give us a good way to identify the user as he/she is
tied to his/her google-account that was active when the app was
downloaded from the Android Market. It should not be the account-name
itself (privacy) but some proper hash of it that remains unique.

On Oct 29, 4:56 pm, "SoftwareForMe.com SoftwareForMe.com"
<softwareforme....@gmail.com> wrote:




--
Warm regards,
The PhoneMyPC Team






--~--~---------~--~----~------------~-------~--~----~



Why Android market is still bad news for devs ...

by Pierre Henry Perret » Fri, 30 Oct 2009 13:01:35 GMT


 Yes TransactionID , or sort of...

We have done here at Echovox, a LinkProvider that enables code confirmation
sent by SMS.

This could be of great help here.

--
Pierre-Henry Perret
mob1: +41 (0) 76 769 80 76 (Suisse)
mob2: +33 (0)6 85 86 75 26

--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Some good news

Digg is one of my favorite technology sites.

When I 'dugg' for Android a couple of months ago, there were virtually
no search results with the only matches dating back 4 or 5 months.

I did a search again today for Android and there were nearly 10
articles just in the last 24 hours.

And the best news ... no results at all for iPhone in the last 24
hours.

Is the tide starting to turn?
--~--~---------~--~----~------------~-------~--~----~

2. why do i need to erase userdata after replace nand flash from x16 to x8??

Hi,all:
Replace NAND flash from x16 to x8, Android can run once successfuly!

   I have just replaced my NAND flash from x16 to x8.
   After change my nand flash driver in uboot and kernel,I use the
android image(ramdisk.gz,
   system.img, userdata.img) which run ok on x16 H/W platform to test
my x8 H/W platform,
   unfortunately it can run once. After reboot, it can't run
again.Every time it stop here(by logcat &):

# I/DEBUG   (  419): de{*filter*}d: Apr  9 2009 17:00:26
D/mountd  (  418): AddMountPoint device: /dev/block/mmcblk0,
mountPoint: /sdcard driverStorePath: /sys/devices/platform/
usb_mass_storage/lun0/file
E/mountd  (  418): could not read initial mass storage state
D/mountd  (  418): USB offline
D/mountd  (  418): RequestMount /sdcard
E/flash_image(  425): can't find recovery partition
D/AndroidRuntime(  421):
D/AndroidRuntime(  421): >>>>>>>>>>>>>> AndroidRuntime START
<<<<<<<<<<<<<<
D/AndroidRuntime(  421): CheckJNI is ON
I/        (  422): ServiceManager: 0xabe0
W/AudioHardwareInterface(  422): Using stubbed audio hardware. No
sound will be produced.
I/CameraService(  422): CameraService started: pid=422
I/AudioFlinger(  422): AudioFlinger's main thread ready to run.
D/AndroidRuntime(  421): --- registering native functions ---
I/DEBUG   (  419): *** *** *** *** *** *** *** *** *** *** *** *** ***
*** *** ***
I/DEBUG   (  419): Build fingerprint: 'generic/generic/generic/:1.5/
MAIN/eng.root.20090409.162536:eng/test-keys'
I/DEBUG   (  419): pid: 421, tid: 421  >>> zygote <<<
I/DEBUG   (  419): signal 11 (SIGSEGV), fault addr ecd1608c
I/DEBUG   (  419):  r0 ab07a024  r1 00030658  r2 41c9c068  r3 aac1e809
I/DEBUG   (  419):  r4 41084ca4  r5 ad34f5c1  r6 bed536e0  r7 00000003
I/DEBUG   (  419):  r8 00000000  r9 00000000  10 00000000  fp 00000000
I/DEBUG   (  419):  ip ad08403c  sp bed536ac  lr ad05d7ad  pc
ad0640e2  cpsr 80000030
I/DEBUG   (  419):          #00  pc 000640e2  /system/lib/libdvm.so
I/DEBUG   (  419):          #01  pc 0005d7a8  /system/lib/libdvm.so
I/DEBUG   (  419):          #02  pc 0005d94c  /system/lib/libdvm.so
I/DEBUG   (  419):          #03  pc 0005d9c4  /system/lib/libdvm.so
I/DEBUG   (  419):          #04  pc 0003e968  /system/lib/libdvm.so
I/DEBUG   (  419):          #05  pc 0003ea48  /system/lib/libdvm.so
I/DEBUG   (  419):          #06  pc 000318bc  /system/lib/libdvm.so
I/DEBUG   (  419):          #07  pc 0000d39c  /system/lib/
libnativehelper.so
I/DEBUG   (  419):          #08  pc 00028bb4  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #09  pc 0003994a  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #10  pc 00028cd0  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #11  pc 00029236  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #12  pc 00008bf2  /system/bin/app_process
I/DEBUG   (  419):          #13  pc 0001fd72  /system/lib/libc.so
I/DEBUG   (  419):          #14  pc 0000bc12  /system/lib/libc.so
I/DEBUG   (  419):          #15  pc b0001424  /system/bin/linker
I/DEBUG   (  419): stack:
I/DEBUG   (  419):     bed5366c  afe37dd0
I/DEBUG   (  419):     bed53670  0000a000  [heap]
I/DEBUG   (  419):     bed53674  00000018
I/DEBUG   (  419):     bed53678  0005c860  [heap]
I/DEBUG   (  419):     bed5367c  00000000
I/DEBUG   (  419):     bed53680  00000000
I/DEBUG   (  419):     bed53684  ad083e04
I/DEBUG   (  419):     bed53688  0005c860  [heap]
I/DEBUG   (  419):     bed5368c  ad057549  /system/lib/libdvm.so
I/DEBUG   (  419):     bed53690  4001b110
I/DEBUG   (  419):     bed53694  0005c5e0  [heap]
I/DEBUG   (  419):     bed53698  bed53700  [stack]
I/DEBUG   (  419):     bed5369c  bed53700  [stack]
I/DEBUG   (  419):     bed536a0  df002777
I/DEBUG   (  419):     bed536a4  e3a070ad
I/DEBUG   (  419):     bed536a8  ad00e480  /system/lib/libdvm.so
I/DEBUG   (  419): #00 bed536ac  ad05d7ad  /system/lib/libdvm.so
I/DEBUG   (  419): #01 bed536b0  416823c6
I/DEBUG   (  419):     bed536b4  ad01304c  /system/lib/libdvm.so
I/DEBUG   (  419):     bed536b8  4001b0d8
I/DEBUG   (  419):     bed536bc  41048200
I/DEBUG   (  419):     bed536c0  bed536f8  [stack]
I/DEBUG   (  419):     bed536c4  ad34f5c1  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):     bed536c8  41084c90
I/DEBUG   (  419):     bed536cc  00000010
I/DEBUG   (  419):     bed536d0  bed53730  [stack]
I/DEBUG   (  419):     bed536d4  ad05d951  /system/lib/libdvm.so
D/AndroidRuntime(  434):
D/AndroidRuntime(  434): >>>>>>>>>>>>>> AndroidRuntime START
<<<<<<<<<<<<<<
D/AndroidRuntime(  434): CheckJNI is ON
D/AndroidRuntime(  434): --- registering native functions ---
I/DEBUG   (  419): *** *** *** *** *** *** *** *** *** *** *** *** ***
*** *** ***
I/DEBUG   (  419): Build fingerprint: 'generic/generic/generic/:1.5/
MAIN/eng.root.20090409.162536:eng/test-keys'
I/DEBUG   (  419): pid: 434, tid: 434  >>> zygote <<<
I/DEBUG   (  419): signal 11 (SIGSEGV), fault addr ecd1608c
I/DEBUG   (  419):  r0 ab07a024  r1 00030658  r2 41c9c068  r3 aac1e809
I/DEBUG   (  419):  r4 41084ca4  r5 ad34f5c1  r6 bedae6e0  r7 00000003
I/DEBUG   (  419):  r8 00000000  r9 00000000  10 00000000  fp 00000000
I/DEBUG   (  419):  ip ad08403c  sp bedae6ac  lr ad05d7ad  pc
ad0640e2  cpsr 80000030
I/DEBUG   (  419):          #00  pc 000640e2  /system/lib/libdvm.so
I/DEBUG   (  419):          #01  pc 0005d7a8  /system/lib/libdvm.so
I/DEBUG   (  419):          #02  pc 0005d94c  /system/lib/libdvm.so
I/DEBUG   (  419):          #03  pc 0005d9c4  /system/lib/libdvm.so
I/DEBUG   (  419):          #04  pc 0003e968  /system/lib/libdvm.so
I/DEBUG   (  419):          #05  pc 0003ea48  /system/lib/libdvm.so
I/DEBUG   (  419):          #06  pc 000318bc  /system/lib/libdvm.so
I/DEBUG   (  419):          #07  pc 0000d39c  /system/lib/
libnativehelper.so
I/DEBUG   (  419):          #08  pc 00028bb4  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #09  pc 0003994a  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #10  pc 00028cd0  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #11  pc 00029236  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #12  pc 00008bf2  /system/bin/app_process
I/DEBUG   (  419):          #13  pc 0001fd72  /system/lib/libc.so
I/DEBUG   (  419):          #14  pc 0000bc12  /system/lib/libc.so
I/DEBUG   (  419):          #15  pc b0001424  /system/bin/linker
I/DEBUG   (  419): stack:
I/DEBUG   (  419):     bedae66c  afe37dd0
I/DEBUG   (  419):     bedae670  0000a000  [heap]
I/DEBUG   (  419):     bedae674  00000018
I/DEBUG   (  419):     bedae678  0005c860  [heap]
I/DEBUG   (  419):     bedae67c  00000000
I/DEBUG   (  419):     bedae680  00000000
I/DEBUG   (  419):     bedae684  ad083e04
I/DEBUG   (  419):     bedae688  0005c860  [heap]
I/DEBUG   (  419):     bedae68c  ad057549  /system/lib/libdvm.so
I/DEBUG   (  419):     bedae690  4001b110
I/DEBUG   (  419):     bedae694  0005c5e0  [heap]
I/DEBUG   (  419):     bedae698  bedae700  [stack]
I/DEBUG   (  419):     bedae69c  bedae700  [stack]
I/DEBUG   (  419):     bedae6a0  df002777
I/DEBUG   (  419):     bedae6a4  e3a070ad
I/DEBUG   (  419):     bedae6a8  ad00e480  /system/lib/libdvm.so
I/DEBUG   (  419): #00 bedae6ac  ad05d7ad  /system/lib/libdvm.so
I/DEBUG   (  419): #01 bedae6b0  416823c6
I/DEBUG   (  419):     bedae6b4  ad01304c  /system/lib/libdvm.so
I/DEBUG   (  419):     bedae6b8  4001b0d8
I/DEBUG   (  419):     bedae6bc  41048200
I/DEBUG   (  419):     bedae6c0  bedae6f8  [stack]
I/DEBUG   (  419):     bedae6c4  ad34f5c1  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):     bedae6c8  41084c90
I/DEBUG   (  419):     bedae6cc  00000010
I/DEBUG   (  419):     bedae6d0  bedae730  [stack]
I/DEBUG   (  419):     bedae6d4  ad05d951  /system/lib/libdvm.so
D/AndroidRuntime(  436):
D/AndroidRuntime(  436): >>>>>>>>>>>>>> AndroidRuntime START
<<<<<<<<<<<<<<
D/AndroidRuntime(  436): CheckJNI is ON
D/AndroidRuntime(  436): --- registering native functions ---
I/DEBUG   (  419): *** *** *** *** *** *** *** *** *** *** *** *** ***
*** *** ***
I/DEBUG   (  419): Build fingerprint: 'generic/generic/generic/:1.5/
MAIN/eng.root.20090409.162536:eng/test-keys'
I/DEBUG   (  419): pid: 436, tid: 436  >>> zygote <<<
I/DEBUG   (  419): signal 11 (SIGSEGV), fault addr ecd1608c
I/DEBUG   (  419):  r0 ab07a024  r1 00030658  r2 41c9c068  r3 aac1e809
I/DEBUG   (  419):  r4 41084ca4  r5 ad34f5c1  r6 bec5e6e0  r7 00000003
I/DEBUG   (  419):  r8 00000000  r9 00000000  10 00000000  fp 00000000
I/DEBUG   (  419):  ip ad08403c  sp bec5e6ac  lr ad05d7ad  pc
ad0640e2  cpsr 80000030
I/DEBUG   (  419):          #00  pc 000640e2  /system/lib/libdvm.so
I/DEBUG   (  419):          #01  pc 0005d7a8  /system/lib/libdvm.so
I/DEBUG   (  419):          #02  pc 0005d94c  /system/lib/libdvm.so
I/DEBUG   (  419):          #03  pc 0005d9c4  /system/lib/libdvm.so
I/DEBUG   (  419):          #04  pc 0003e968  /system/lib/libdvm.so
I/DEBUG   (  419):          #05  pc 0003ea48  /system/lib/libdvm.so
I/DEBUG   (  419):          #06  pc 000318bc  /system/lib/libdvm.so
I/DEBUG   (  419):          #07  pc 0000d39c  /system/lib/
libnativehelper.so
I/DEBUG   (  419):          #08  pc 00028bb4  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #09  pc 0003994a  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #10  pc 00028cd0  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #11  pc 00029236  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):          #12  pc 00008bf2  /system/bin/app_process
I/DEBUG   (  419):          #13  pc 0001fd72  /system/lib/libc.so
I/DEBUG   (  419):          #14  pc 0000bc12  /system/lib/libc.so
I/DEBUG   (  419):          #15  pc b0001424  /system/bin/linker
I/DEBUG   (  419): stack:
I/DEBUG   (  419):     bec5e66c  afe37dd0
I/DEBUG   (  419):     bec5e670  0000a000  [heap]
I/DEBUG   (  419):     bec5e674  00000018
I/DEBUG   (  419):     bec5e678  0005c860  [heap]
I/DEBUG   (  419):     bec5e67c  00000000
I/DEBUG   (  419):     bec5e680  00000000
I/DEBUG   (  419):     bec5e684  ad083e04
I/DEBUG   (  419):     bec5e688  0005c860  [heap]
I/DEBUG   (  419):     bec5e68c  ad057549  /system/lib/libdvm.so
I/DEBUG   (  419):     bec5e690  4001b110
I/DEBUG   (  419):     bec5e694  0005c5e0  [heap]
I/DEBUG   (  419):     bec5e698  bec5e700  [stack]
I/DEBUG   (  419):     bec5e69c  bec5e700  [stack]
I/DEBUG   (  419):     bec5e6a0  df002777
I/DEBUG   (  419):     bec5e6a4  e3a070ad
I/DEBUG   (  419):     bec5e6a8  ad00e480  /system/lib/libdvm.so
I/DEBUG   (  419): #00 bec5e6ac  ad05d7ad  /system/lib/libdvm.so
I/DEBUG   (  419): #01 bec5e6b0  416823c6
I/DEBUG   (  419):     bec5e6b4  ad01304c  /system/lib/libdvm.so
I/DEBUG   (  419):     bec5e6b8  4001b0d8
I/DEBUG   (  419):     bec5e6bc  41048200
I/DEBUG   (  419):     bec5e6c0  bec5e6f8  [stack]
I/DEBUG   (  419):     bec5e6c4  ad34f5c1  /system/lib/
libandroid_runtime.so
I/DEBUG   (  419):     bec5e6c8  41084c90
I/DEBUG   (  419):     bec5e6cc  00000010
I/DEBUG   (  419):     bec5e6d0  bec5e730  [stack]
I/DEBUG   (  419):     bec5e6d4  ad05d951  /system/lib/libdvm.so
[   20.700000] android_power: wakeup (0->0) at 20696065742 (1970-01-01
00:00:20.696071729 UTC)
D/AndroidRuntime(  437):


1) There are 4 partitions in my My NAND flash. my system.img,
userdata.img is YAFFS2.
static struct mtd_partition nand_partitions[] = {
  {
    .name           = "kernel",
    .size           = (4 * 1024 * 1024),
    .offset         = 0
  },
  {
    .name           = "ramdisk",
    .size           = (4 * 1024 * 1024),
    .offset         = MTDPART_OFS_NXTBLK,
  },
  {
    .name           = "system",
    .size           = (64 * 1024 * 1024),
    .offset         = MTDPART_OFS_NXTBLK,
  },
  {
    .name           = "cache",
    .size           = (64 * 1024 * 1024),
    .offset         = MTDPART_OFS_NXTBLK,
  },
  {
    .name           = "userdata",
    .size           = MTDPART_SIZ_FULL,
    .offset         = MTDPART_OFS_NXTBLK,
  },

};


2)I have no idea about this problem. It's very very strange.
If i erase userdata partition and download userdata again in uboot.
It can run again. The command used in uboot is:
ne 0x8800000 0x7800000
tftp 0x40000000 userdata.img
nwy 0x40000000 0x8800000 0x1F6BC0

If my NAND flash driver isn't correctly, Why do android run
successfuly the first time?
The first time i can make MT/MO call by android UI. After reboot it,
kernel can run again, but
can't enter android UI.

If anybody can give me some andvice, why do i need to erase "userdata"
partition?
--~--~---------~--~----~------------~-------~--~----~
unsubscribe: android-porting+unsubscr...@googlegroups.com
website:  http://www.***.com/ 
-~----------~----~----~----~------~----~------~--~---

3. Application doesnot quit on calling finish()

4. Cupcake on ADP1

5. Load Previous UI From Stack

6. java.lang.StackOverflowError when deserializing

7. Is anyone else getting bored of announced product releases that don't materialise ...