In a nutshell, what I'm hoping LVL can grow into is a system that
packages license verification in a way that is really really hard to
remove. It seems like we've got half of that equation nicely under
way with LVL in its current form.
The sort of anti-piracy system you're after is
LVL is flawed in the same ways that AAL (and other similar approaches)
is flawed. Google could do better, and I hope that they will.
I think it's wrong to focus on what Google could or could not do here.
Did you read my reply to your original mail? If so what did you think
of it?
All copy
On Jul 31, 11:21 pm, keyeslabs keyes...@gmail.com wrote:
Speaking as someone who has traveled this road before with my own
implementation of basically the same approach, obfuscation will be
critical. With AAL, it took about three days for someone to crack the
app.
There are various ways to
It's a bit hard to say what design is right without details on what
the service actually does.
First and most important question - do you really need a service at
all? Many apps use services but don't actually need to run all the
time. Using a service is like a tax on your user. It's currently
HTC may have licensed the patents, or this may simply be a screwup by
Orange.
Since Android launched I've been consistently amazed at how inaccurate
and bogus operator specification pages are. They're apparently created
by people with no ability to even read what they wrote. For instance
that
It depends on the behavior you want.
Remember that Android multi-tasks. At any time, the user can go away
and do something else, then return to your app later. In between, your
process can be killed.
Thus if you stuff some objects into a static variable, you have to be
able to handle that
They're used by the framework itself, ignore them.
On Jun 23, 6:59 am, Gavin fjm...@gmail.com wrote:
My app have a service and it will create a thread every 5 mins.
The thread will connect internet to download some data, and then exit.
That's not the right design. Instead look into the
There isn't a calendar API in Android currently, sorry.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To
JPEG is a very simple format, you could just do the byte inserts
yourself. It'd probably take about a screenful of code, including
comments.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
AsyncTask uses a thread pool behind the scenes, and assumes it has
control over the threads. I don't think it's a good idea to join them,
etc.
There is a get() method that lets you wait for the computation to
complete. Is that what you want?
You have to make a thread sleep in the context of
I don't think it compacts. Androids approach to reducing fragmentation
is kill the app and restart it :( You could try serializing the
important state, then clearing absolutely everything from the heap and
reconstructing the internals from the serialized state.
On Jun 7, 11:05 am, Keith Wiley
If you look at Romain Guys Shelves app (where this class originates)
he actually stops then restarts asynctasks when the screen rotates.
This doesn't seem like a great way to go, as you throw away the
progress. But as AsyncTasks have a reference to the activity, I can
see why it's done. The
Are you trying to tell me that it's totally safe to throw stuff in
static fields?
You have to be careful you don't accidentally pin things into memory,
eg, putting a View or a Drawable or anything that inherits from
Context into a static field would be a bad idea. Otherwise it's not a
problem.
Sadly I wouldn't recommend contributing any doc patches until they've
got the merging between open and private repos sorted out. I
contributed a doc patch a few months ago and the Cupcake SDK shipped
with the (bad) doc bug in it anyway, because it was never merged in.
For now just file a bug and
Done! Man I'm happy to have that working. I've been retrofitting all
the netcode with this service for the past 20 hours of coding and I
can't wait to not be working on this anymore!
Well, I did show you a simpler way to do it. I'm not sure you should
write a tutorial on this - like I
On May 28, 4:40 pm, Streets Of Boston flyingdutc...@gmail.com wrote:
Is it safe to cache a Handler (in a static variable)?
It should be OK, from my reading of the code. It keeps a reference to
the current threads looper, but that should exist for as long as the
process does anyway.
I *think*
I DO need it to run in the background, that is, while orientation is
changing.
That's not in the background - the activity manager will keep your
process alive during configuration changes anyway, regardless of
whether you have a service or not. The only reason to use a service is
if you need
There is an Application.onCreate() and an Application.onDestroy() you
can use. These are not guaranteed to be called when your app isn't
visible, in fact destroy isn't guaranteed to be called at all, but
that's OK for your use case.
Apparently, the way Maps is doing it is they set a weak ref in
Confusing but probably deliberate, the most important color when
thinking about text is of course the background color it will be
displayed on top of
On May 28, 4:04 pm, twan twa...@gmail.com wrote:
Good morning,
I got a little textview defined in layout xml:
===
TextView
Your understanding is wrong - your service can be killed at any time
without onDestroy being run. I'm not actually sure why onDestroy even
exists in this case, I found it was much more common for the kernel to
OOM kill my process than it was for the AM to nicely request my
service to quit. Don't
I doubt it'll help, but you probably should not put your application
into a single package called main. The point of Java packages is to
avoid conflicts when code is loaded together.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the
If you want to distribute the app to existing Android phone owners,
you're out of luck. You'll have to file a bug.
How does the Camera app itself handle this situation?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
You don't need a Service, that's way too complicated for what you
need. Especially if you use the RPC stuff (optional but the docs don't
tell you that!)
If you create the progress dialog using the onCreateDialog() method
then it'll be automatically reconstructed after an orientation
change.
To
I also tested this use of WeakReference, simply to see how it behaves,
and it didn't work for me at all. Regardless of whether the app was
paused to display another application or to display another activity
of the same app, the identity test for 'this' always succeeded.
WeakReferences only
The verifier behavior will change in a future release.
So in future:
import android.newapi.NewApi;
public class MyActivity extends Activity {
public void onResume() {
if (BUILD.getSdkVersion() = 4) {
NewApi newApi = new NewApi();
}
}
}
will work and this APK will install on
Are you sure having a notification re-order the backstack like that is
a good idea? My understanding is:
I open garden A
I open garden B (pressing back gets me to A)
I open garden C
I put the phone to sleep. At some point a notification appears. I
press it.
The notification opens garden A.
Now
I'm wondering if I just leave it running, if the OS will eventually
kill it because nothing is bound to it and it is inactive. Can I
count on that?
No. If you start a service with startService() it is supposed to quit
itself, otherwise it will never die. It's best to pick one of bind or
The server and url in question is private and no one apart from myself
will ever use it. Personally, I can't see the point of getting a
proper signed certificate for this.
Well, read the link I sent. If you're using encryption, presumably
you're worried about somebody attempting to snoop your
Don't use self signed certs? http://www.gerv.net/security/self-signed-certs/
There's a reason they are treated as an error I appreciate it may
*seem* like you're adding security without any cost, but you really
aren't, especially on a phone where MITM attacks are a whole lot more
feasible
Ahhh... those were the days bitshifting instead of multiplication
dividing XORing a value by itself being quicker than setting it to zero
(seehttp://en.wikipedia.org/wiki/Bitwise_operation#XORif you think I'm making
this one up, it was certainly true on a Motorola 68000 embedded
OK Dianne, thank you for highlighting that the soft keyboard is not a
software keyboard. For me that is a novel insight, as I had hoped and
expected that the IME was (also, at the very least) meant to simply
emulate a software keyboard.
Nope. Try using it in the contacts app to see the soft
s/signed/unsigned ?
Oops, yes, sorry, I should proofread my mails.
java integers are all signed, including bytes. it's very funky that
reading a byte gets you a signed value, but reading a single byte
into an integer via an InputStream.read() call gets you an unsigned
byte!
Funky is a
You can encrypt the files on the sdcard. Just be aware that using the
sdcard carries with it some taxes, eg, you have to handle it being
taken out whilst in use
On May 21, 4:59 pm, zeeshan genx...@gmail.com wrote:
Hi,
i am afraid if Max space for android App is 14MB , how can i put 15MB
As I said, we'd need a wire trace to help. How fast does the call
return? Are you sure it's even hitting the network?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group,
For what it's worth, it works on a real device. I agree it's pretty
nice, although honestly, so far I've yet to encounter a battery
draining app so didn't use it for real.
At least for 1.5, it'll be a useful tool for developers to understand
their own app usage and help police each other but as
Pressing the back button doesn't necessarily destroy the activity, it
just pauses it. Read the lifecycle docs to understand what you are
seeing.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers
http://android.git.kernel.org/?p=platform/dalvik.git;a=tree;f=libcore/xml/src/main/java;h=a4ef5269036bd62eb79c8d2f418f2baf05a383cf;hb=refs/heads/master
As to why it's incompatible, I don't know, looking at the code
removing children of Document should work. I guess you could either
work around
Activity inherits from Context, so you don't need to specify a context
specifically anywhere. Eclipse will tell you the exact error if you
hover over the line, or use the window at the bottom.
Does that not work?
LocationManager manager = (LocationManager) getSystemService
(LOCATION_SERVICE);
Question: how should I implement this?
1. Are there e.g. onStartup() and onShutdown() per-application events,
or similar, that I can hook into, to serve up a login dialog and set
the login state in Preferences? If not, then how should I implement
login?
So, your first problem is
You can write an app which dumps adb logcat and greps for the output
from the activity manager. It's ugly and non-supported, but for your
usability study it will work.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups
Nobody can help unless you post your signing code. Pay close attention
to the exact format of the thing to hash, it's not intuitive.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post
finally try to get my app to behave like I would expect it to.
This discussion is very enlightening. Dianne that would be a great topic
for a blog post of yours, wouldn't it? ;-)
On Fri, May 8, 2009 at 3:07 PM, Mike Hearn mh.in.engl...@gmail.comwrote:
As far as contacts goes, though
Hopefully we can have full UI design docs for this. :)
Yay, yes please :) A HIG for Android would be great. Partly because I
Anyway, I'll see. The material I wrote in the application model docs was
supposed to explain a lot of this.
I find it helpful, but it explains the how and not the
Try grabbing a wire trace of what your app is doing. If you can prove
the app is generating correctly formatted geocode requests to
maps.google.com and you're getting back a server error or the format
changed incompatibility, bring it up on the Google Maps API group
where an engineer will take a
A few quick questions I tend to ask people using services:
1) Do you really need a service? If all you want to do is some
background processing that is transient in nature, a regular thread is
OK. It will be killed eventually when your app is no longer on-screen
but maybe you can deal with that.
As far as contacts goes, though, this is actually intentional -- some apps
(like contacts and settings) want to put the user back to their front door
when relaunched from home, so they set the option to do that. This is
actually a desired inconsistency.
Right, I realise it's intentional.
Can someone educate me about the rationale behind Android tasks? I'm
also curious to know the thought process behind their design when they
were originally conceived?
I think the problem they solve is that it's hard to have a multi-
tasking OS when only one thing can be on the screen at once.
Clearly. Let me rephrase - while changing settings (Airplane mode),
user navigates through Settings and disables GPS as well.
So your argument is that if the user has explicitly disabled the GPS
function, your app should be able to turn it on without asking them?
This is exactly why the change
Thanks. RfcommSocket is hidden in the 1.5r1 SDK, is there any way I
can access it without compiling my own version of the framework?
No
Not even using reflection?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups
completely on
uninstall.
Richard
On May 2, 2:48 pm, Mike Hearn mh.in.engl...@gmail.com wrote:
I wasn't able to find a good, free Java steganography library that can
survive recompression. I think I'll just store the data on the SD
card. It's not as nice as having it associated
the jpeg. You'll need to use a
robust steganographic method... :-)
I had read Contacts.Settings as storing settings for sync accounts,
not settings for individual contacts. Is that what you're after ?
Richard
On May 2, 1:00 am, Mike Hearn mh.in.engl...@gmail.com wrote:
I would like
and the stuff won't work any more. But I don't see other
options.
On May 2, 12:10 pm, Mike Hearn mh.in.engl...@gmail.com wrote:
No :( I'm needing to store data about individual contacts. Does
anybody else have ideas? I really want to avoid steganography that can
survive JPEG recompression, it would
Hiya,
The soft keyboard in 1.5 has the same behavior as the hard keyboard
with respect to the enter key submitting forms. That's pretty
reasonable for the hard keyboard as you can easily see that there are
more fields to fill out, and can just tap the next field once to go
there.
Hiya,
The soft keyboard in 1.5 has the same behavior as the hard keyboard
with respect to the enter key submitting forms, that is, it submits
the form.
That's pretty reasonable for the hard keyboard as you can easily see
that there are more fields to fill out, and can just tap the next
field
Thanks, both of those suggestions are excellent and will suit my needs
just fine for now.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to
Heh, talking of enter accidentally submitting forms ignore the
first post.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to
I would like to store some app-specific data in the contacts db. Is it
safe to stuff random things into the Contacts.Settings table? Will it
affect the GUI? Does anybody have an example of doing that? It's not
really clear to me if there's a proper mechanism for this, or if the
settings table is
On Apr 29, 2:32 pm, chrispix chris...@gmail.com wrote:
We are working on an application that was going to set the brightness
of the screen based on some locations / activities. That is pretty
much worthless too. Why not MAKE SUPPORTED APIs to control these
functions?
There is a supported API
On Apr 28, 11:26 pm, weaselgrater geeyouknitsold...@gmail.com wrote:
I am the developer of SMS Commander, and getting a GPS location
remotely is going to become impossible now.
No, it's not. Just tell users to leave the GPS setting checked. As
mentioned before, it does not mean GPS is always
You can't adjust the timeout. If the ANR dialog gets in the way when
your app is suspended during a breakpoint, that's probably a bug in
the Android SDK framework. If it pops up generically when your
program is running normally and you just want it to go away, you can't
do that - you have to make
What is your goal here? The copy protection mechanism in Android isn't
strong, so if it's to try and mitigate piracy I'd not bother. It won't
work and will inconvenience your users.
In case you think I'm some kind of anti-DRM activist, I'm not. If
somebody produced a secure and convenient way to
What's the rationale for hard-coding stack sizes at 8k? That's pretty
small, even for Java apps that don't allocate things on the stack.
Windows will actually grow the stack for you when you exceed the
limits, up to the point at which you run out of memory.
This really isn't a Views-heirarchy
I too think this change is a bad idea and will decrease the user's
experience with my application.
Perhaps, but it'll probably improve the users experience with the
phone in general. I'm sure the battery life complaints have reduced G1
sales, and yet my own G1 doesn't seem to have such
Does GLSurfaceView do what you want? See the latest blog post.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To
Is there a reference for that behavior? Can it really be true that an
HTTP library includes an XSL transformer? That's some serious scope
creep if so!
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android
It's not deprecated, it's a bug in the droiddoc tool - deprecating a
class marks all its subclasses as deprecated too, which doesn't make
sense. I fixed this bug in the public tree some months ago, but it
appears the fix did not propagate to Googles internal tree.
Ignore it. WebView is not
can we use a browser object to load and hold the contents in a browser
and to post the values to work exactly like a browser
WebView doesn't have to be visible to work, however, I don't think
there's an API to poke a web form and then submit it from Java, only
users can do that.
But, there's
Task manager type apps aren't (in theory) needed or appropriate on
Android. That's why you're having problems.
The system will automatically restart services that crash, because it
believes some app depends on them. Why would your app know better? If
some activity is connected to a service,
Currently our approach for scheduling is that apps doing background work on
a thread should lower that thread's priority
Whoops. I released an app that didn't do this. It's not obvious, I
think.
We are looking at more strongly enforcing that background applications can
not take too many
Could you post the relevant code of StealthView?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from
Why do you think users will read any such document before they buy the
app?
I don't see the need for one ... I've never found EULAs in desktop
software to reduce confusion, quite the opposite. Unless you believe
one is necessary?
On Feb 17, 1:32 pm, craiget crai...@gmail.com wrote:
Hello
Voice search isn't a generic transcriber. It's optimized for search
queries specifically, so I'm not sure what use an API would be.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to
Hello,
I was browsing the source code to an Android app, and noticed the
following pattern:
public class LocalBinder extends Binder {
FooService getService() {
return FooService.this;
}
}
private Binder mBinder = new LocalBinder();
public IBinder onBind(Intent intent) {
return
If it's not on developer.android.com then it's not available to apps.
What would you do with it? If you just want to trigger the app you can
just fire its intent, that is sort of implicitly exposed by any app, I
guess.
On Feb 17, 5:57 pm, Rob Franz rob.fr...@gmail.com wrote:
Hi all,
I'm sure
Is the PNG truncated or are the bytes there, but wrong?
conn.setChunkedStreamingMode(4096);
What is the purpose of this?
Actually it always works in the emulator, and it usually works when
attaching the debugger to the phone and stepping through the code.
You could use the CacheManager to do this. But I think there's not a
more direct API currently - it'd be nice if WebView provided direct
access to the DOM but that's quite a complex binding to do.
--~--~-~--~~~---~--~~
You received this message because you are
Looks good! A few comments:
* The directory names are a bit odd - why do they have an extraneous
'r' in them? Also, why layout-land and not layout-landscape? I
guess it's too late to change this now but the rest of the Android/
Java APIs eschew abbreviations.
* Are there any tools that can help
77 matches
Mail list logo