Making a distributed system

by ThemePark » Sun, 02 Nov 2008 23:22:11 GMT


Sponsored Links
 I've been reading through a bit of the Android documentation, and this
seems to be perfect for developing one of my projects. But in order to
make sure, I need to get some things straight.

Android has processes (background processes being especially
interesting), life cycles, and as far as I can tell, the ability to
connect to networks. So as far as I can tell, I should be able to
build a distributed system, by having a server with my program and
some data, and then any number of G1  phones, that have downloaded and
installed another program for downloading some of the data, running
calculations on it, and uploading it back to the server.

Am I right about being able to do that, and how should I go about with
it? What things should I be careful of/look out for?

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



Making a distributed system

by Al Sutton » Sun, 02 Nov 2008 23:25:51 GMT


 Your app will most either kill battery life or spend most of it's time 
suspended, making it either unpopular or very slow.

Most battery powered devices (such as the G1) try to increase battery 
life by reducing processing load, so when you whack up the lock the 
battery suffers.

Al.





-- 
Al Sutton

W: www.alsutton.com
B: alsutton.wordpress.com
T: twitter.com/alsutton


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


Sponsored Links


Making a distributed system

by ThemePark » Sun, 02 Nov 2008 23:51:20 GMT


 I saw a YouTube video from the Android team about running multiple
processes, showing how the phone is looking for new pictures on a
Flickr account, while doing something else.

With that in mind, wouldn't it be possible for me to run it as a
background process, possibly only running when the phone is not being
used (if at all possible), and that way not use a whole lot of battery
time and not making it slow either? Think of the way SETI works.




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



Making a distributed system

by Mark Murphy » Mon, 03 Nov 2008 00:02:40 GMT


 


[EMAIL PROTECTED] is usually used on machines plugged into AC power. Mobile 
devices are infrequently plugged into AC power.

On a mobile device, every executed instruction eats a tiny bit of 
battery power. What you're suggesting is to execute a whole lot of 
instructions while users are thinking their phone is asleep and 
therefore is not using (much) power.

If Android starts getting used for devices more frequently connected to 
power, using it for a distributed computation cloud might make sense.

-- 
Mark Murphy (a Commons Guy)
 http://commonsware.com 

Android Training on the Ranch! -- Mar 16-20, 2009
 http://www.bignerdranch.com/schedule.shtml 

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



Making a distributed system

by ThemePark » Mon, 03 Nov 2008 01:21:42 GMT


 Point taken. I didn't think it would use up a lot of battery power,
but you're right, a lot of little bits certain would.

Let's say that Android does get used more on AC powered devices (it
will take me a couple of years to fully make the app anyway, so it's
entirely possible). Then back to my original question. How would I go
about doing that? I'm not so concerned with how to upload and download
data through networks, but more how I would go about with sending data
from one application to another, and how to receive it in an
application as well. I've been reading about using stuff like messages
and threads in general, but I am unsure of what I should use
specifically in Android.





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



Making a distributed system

by David Given » Mon, 03 Nov 2008 01:51:36 GMT


 


It would be entirely possible to have the app only run when the device
is charging; given that most people with smartphones leave them on
charge overnight, this would still get you reasonable run time. There's
an ACTION_BATTERY_CHANGED intent that you can register for to get
notified when the AC power status changes, but I don't know offhand how
you'd poll for the current status.


You probably want to read up on this:

 http://code.google.com/android/reference/aidl.html 

Note that you only really need to do this for IPC between different apps
on the same device. The most common use for this is to allow one app to
communicate with a library that's actually part of another app ---
ContentProviders, for example. For a distributed processing app, the
most likely scenario is to have the actual calculator running as a
background service, with a separate app communicating with it via IPC to
show the results to the user, that only runs when the user actually
wants to watch things happening.

-- 
€€  €€€€€  http://www.cowlark.com  €€€€€
,S3=T)=T+/(Vquot;),(Vquot;M),(V,)quot;(V,V)quot;)'
--- Conway's Game Of Life, in one line of APL



Making a distributed system

by Jean-Baptiste Queru » Mon, 03 Nov 2008 07:57:41 GMT


 -Running the CPU at full speed on a G1 will drain the battery in a few hours.

-Running the CPU at full speed on a G1 while the device is charging
will slow down the speed at which the device recharges.

-Running the CPU at full speed on a G1 for any extended period of time
will make the device hot to the touch.

JBQ

PS: pushing to the extreme, which doesn't seem to be the case here,
it's possible to make a G1 draw so much power that the battery almost
stops charging or even discharges while the device is plugged in,
especially when charging over USB which provides less power than a
wall charger. The CPU alone isn't enough for this, but if you start to
add up enough power-draining peripherals (network, screen, GPS,
accelerometer) you could be consuming several watts.






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



Other Threads

1. App breaks for some users after they update from the Market

I'm curious to see how many of you are seeing this issue. I've looked
through the group, on b.andriod.com and the Market "Help" Forum and not
found anything related.

I released an update to my app over the weekend and have since fielded a ton
of emails that ultimately result in the same conclusion - the update process
breaks the app for a small set of users. When I instruct them to uninstall
and reinstall the app, everything works perfectly as expected. This has been
the case EVERY SINGLE TIME (just got two more confirmations that this fixed
their problems as I was writing this).

The symptoms are generally the same: random force closes either on start up
or in other areas of the app after the user updates the app from the Market.
 One time the issue was that the app would apparently no longer connect to
the internet, again fixed by uninstall->reinstall. This seems to
pre{*filter*}ly effect the paid version of the app, though it happens to the
free one as well.

Some people have sent reports to the Dev Console but some don't make sense
(like a NullPointer for something I'm fairly positive is always set) and
this one that seems impossible:

java.lang.NoClassDefFoundError: com.google.android.maps.GeoPoint

That's right - my app, which requires the Google Maps addon and should not
be allowed to install on devices without it, apparently crashed for someone
because it could not find a maps library class. What the .. ?

This is not the first time this has happened - it always occurs to a few
people after each update. In fact I've been showing a dialog on update that
specifically tells users to try to reinstall if they're having issues for
this reason, so the problem is probably more widespread but I'm not hearing
about it.  But this time it's gotten fairly ridiculous. This might be a
symptom of a larger user base since the last update was over two months ago,
or it's an indication the problem is getting worse, I'm not sure.

The fact that an uninstall->reinstall always fixes the problem is a pretty
clear indication that there's a problem with the update process. Something
along the lines is apparently botching the APK somehow.

So are other people experiencing the same problem? Given the number of "new
update force closes" comments I see on other apps, I'm assuming I'm not
alone here.

Any one know if this is an issue with the Android system itself or the
offense to software engineering known as the Android Market that's at fault?
I wouldn't be surprised if it's the Market since I redeploy ("update") the
app constantly while developing and never run into this kind of issue - it's
only users updating from the Market that have a problem.

Any ideas on what is going wrong and / or what to do to fix or otherwise
work around this issue?

I've been fortunate so far that this has only resulted in one 1-Star "New
update sucks, force closes" comment in each version (I've been training my
users that's not a good way to get help) but am now cringing at the thought
of having to deal with this at an increasing scale each and every time I
update (which is about once a month, usually).

There has to be something I can do about this. Thoughts?

-------------------------------------------------------------------------------------------------
TreKing < http://www.***.com/ ; - Chicago
transit tracking app for Android-powered devices

-- 

2. How to get contacts detail on android 2.2 ?

Hi all :

    I want to read caontacts's Notes,Nickname,Organization,IM,Postal
address,Email,etc, to send to PC.

    I only know use follow code to get ID, dislpay_name, photoID. But
don't konw how to get the other's info.

    who can help me? thanks......

Cursor cur =
getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
cur.moveToPosition(position);
cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.PHOTO_ID));

-- 

3. The first application

4. How to realize software auto ve rsion update锛

5. Detecting Forwarded Calls

6. Freelance Android Projects

7. can't select using touch after changing tabs on Froyo