Android :: Most Efficient Way Of Time Keeping In Game Thread?
Jan 14, 2010
What is most efficient way of keeping a check on time within a game thread? Currently I create a new Date() when the game starts and was thinking of creating another Date() within the game thread and comparing it with the first one. But with a screen refreshing at around 60fps (hence a new date object each time), I can't help thinking this is rather inefficient. What other ways are there of doing this?
View 8 Replies
Sep 9, 2010
We're designing an Android app that has a lot of data ("customers", "products", "orders"...), and we don't want to query sqlite every time we need some record. We wanna avoid to query database as most as we can, so we decided to keep certain data allways in memory.
Our initial idea is to create 2 simple classes:
"MemoryRecord": a class that will contain basically an array of objects (string/int/double/datetime/etc...), that are the data from a table record, and all methods to get those data in/out from this array.
"MemoryTable": a class that will contain basically a Map of [Key,MemoryRecord] and all methods to manipulate this Map and insert/update/delete record into/from database.
Those classes will be derived to every kind of table we have in database. Of course that there are other usefull methods not listed above, but they are not important at this point.
So, when starting app, we will load those tables from SQLite database to memory using those classes, and every time we need to change some data, we will change in memory and post it into database right after.
But, we want some help/advice from you. Can you suggest something more simple or efficient to implement such thing? Or maybe some existing classes that already do it for us?
Update:
I understand what you guys are trying to show me, and I thank you for that.
But, let's say we have a table with 2000 records, and I will to list those records. For each one, I have to query other 30 tables (some of them with 1000 records, others with 10 records) to add additional info in the list, and this while it's "flying" (and as you know , we must be very fast at this momment).
Now you'll gonna say: "just build your main query with all those 'joins', and bring all you need in one step. SQLite can be very fast, if your database is well designed, etc...".
OK, but this query will become very complicated and sure, even SQLite be very fast, it will be "too" slow (2 a 4 seconds, as I confirmed, and this isn't a acceptable time for us).
Another complicator is that, depending of user interaction, we need to "re-query" all records, because the tables involved are not the same, and we have to "re-join" with another set of tables.
So, an alternative is bring only the main records (this will never change, no matter what user does or wants) with no join (this is very fast!) and query the others tables every time we want some data. Note that on the table with 10 records only, we will fetch the same records many and many times. In this case, it is a wast of time, because no matter fast sqlite be, it will allways be more expensive to query/cursor/fetch/etc... than just grab the record from a kind of "memory cache". I want to make clear that we don't plan to keep all data in memory allways, just some tables we query very offten.
View 2 Replies
View Related
Jun 6, 2010
I have a Cliq XT on tmo. My phone keeps terrible time; it gaines about 5 minutes per week, This happens whether I am on "network time" or not. Currently, I am using a "Internet Time Clock" app from the app store to check my time once a day, and when it's off, I manually adjust it.
View 1 Replies
View Related
Aug 7, 2010
I've read several example programs and tutorials to try and solve my problem but they all seem to go the same way. I've used a couple Activities and xml documents to create a menu that loads when my game starts.When the user clicks the "Start The Game" button, it loads a new Activity that sets the view with my game thread and all of the game properties.I know this activity works because I've run it alone as its own project, but every way I've tried to start it after the Menu,I get a nullPointerException and it force closes.I read the SurfaceViewOverlay tutorial and attempted to use that implementation, but I'm using a SurfaceView, not a GLSurfaceView.I'm debating rewriting my entire program to use OpenGL but I figured I would see if anyone else knows what I'm doing wrong here.If you need the code snippets I can paste some here, but it's not really the specific code that's wrong.
View 1 Replies
View Related
Jul 14, 2009
I'm a new Android developer. I would like to make a simple game using the SurfaceView (Canvas drawing).the game has a a custom Object name Box. Box can draw itself and need to get an event when it is clicked. when it does, there is an animation sequence coming out of the box like a "jumping clown". I have several Boxes on the screen when each of them can be activated. Several Boxes animation can also be presented simultaneously.Here it gets tricky: Since I have a "complicated" animation sequence, each Box extends SurfaceView. The problem is I haven't figured it out how can I handle several SurfaceView's drawing using only one Thread (in order to present an animation I need to use one) and also how can I get the onClick/ onThouch event from my Activity to each of my Boxes.
The LunarLanding example in the SDK uses only one Thread but also uses only one SurfaceView which manage the animation of the game components (there are no several game components SurfaceViews). Also, there is no need to get onTouch event, so this example doesn't match to my case. I have several questions about what is the right approach do code this:
1. Should I use Box extends SurfaceView?
2. Can SurfaceView gets user events like onTouch/onClick?
3. Is there a way to add to the "main" SurfaceView another SurfaceView (Box)?
4. If none of the above questions is positive, should I use one SurfaceView (and one Thread) and try to map the other Boxes on the screen for user event handling. I mean Box only paints itself but the user event is being handled by me (not by the OS).
5. Should each Box (SurfaceView) should handle it's own Thread in case of animation (it is not good design but it is also an option)?
6. do you have any other proposal?
View 4 Replies
View Related
Aug 13, 2010
In my game when the user completes a stage, I want the main game thread to pause/sleep/wait and a new activity to be launched called StageClear that displays information about points scored etc. After this has been displayed and the user has pressed continue I want the original game thread to resume where it left off. I have tried to implement this but have so far been unsuccessful, probably because I'm new to dealing with multiple threads and also the idea of synchronizing them. I most recently tried to implement a shared package-visible object that could notify after wait was called on itself, but I am getting errors in eclipse so it won't even compile, I think because though the object is declared public in an inner class, it cannot be seen or recognised by my activity elsewhere in a file in the package. I have already built both activities but my issue is getting the main game one to launch the other, and pause whilst it waits for this activity to finish, before the main game thread continues execution.
View 1 Replies
View Related
Mar 8, 2010
I have written a very simple game with some simple animations, but I've noticed that when the phone checks email, or several other apps are running, the animations that update in my thread start behaving slowly or choppy. This is a problem as the game mechanic requires some careful timing of your screen touches based on the animations. So if it starts behaving erratically, the game doesn't really work well - and isn't much fun.
Is there a way to prevent this? Can my threads have a higher priority when they need to run?
View 3 Replies
View Related
Aug 7, 2010
I've read several example programs and tutorials to try and solve my problem but they all seem to go the same way.I've used a couple Activities and xml documents to create a menu that loads when my game starts. When the user clicks the "Start The Game" button, it loads a new Activity that sets the view with my game thread and all of the game properties.I know this activity works because I've run it alone as its own project, but every way I've tried to start it after the Menu, I get a nullPointerException and it force closes.I read the SurfaceViewOverlay tutorial and attempted to use that implementation, but I'm using a SurfaceView, not a GLSurfaceView. I'm debating rewriting my entire program to use OpenGL but I figured I would see if anyone else knows what I'm doing wrong here.If you need the code snippets I can paste some here, but it's not really the specific code that's wrong, I think it's the way I'm using(abusing) the language.
View 1 Replies
View Related
Oct 28, 2010
Does anyone have an APK for game time. For some reason I cant get it from appbrain/android market but worked fine last year?
View 1 Replies
View Related
Jul 5, 2010
I use the following code to receive the data using UDP. When I click the back button my screen visual is closed and it shows the home screen. But a thread is working in the background (it receives the data from the UDP server). When I close the application I also need to stop the thread. How to stop a thread? Code...
View 2 Replies
View Related
Jul 4, 2010
I am new to android.At the time of closing application i need to stop the thread in android. Can anyone help me to solve this?
View 2 Replies
View Related
Nov 14, 2010
I've written a game and I've noticed that after playing for about 20-30 minutes the performance starts degrading. By performance degradation I mean my average frames-per-second seem to slowly drop. I'm doing all my allocs at the beginning and the only things that alloc in game according to DDMS are Integer.toString operations (for integer values I need to draw with drawtext) and setBounds on some drawables.
I'm calling System.gc() periodically, when I know not much is going on in-game (e.g. between waves of enemies). I'm doing this in order to avoid GC from happening during critical gameplay periods. If you know the answer to any of the following, please do tell (even a guess would do) Why is performance degrading with time? What could be causing this? Is there a way to avoid allocs due to Integer.toString and Drawable.setBounds calls?
View 16 Replies
View Related
Apr 17, 2010
Does NBA game time not work on 2.1? I cannot find it in the market I've scanned a couple QR codes I've found on the internet and it comes up not found in the market. Really want to listen to the Bulls Cavs game today since I won't be near a TV.
View 6 Replies
View Related
Jun 4, 2010
So I've been struggling with this and I am not sure why because it should be simple, but for some reason I just can not get my head around it !!
I am developing a game and when the user saves their game, I write out the last time I checked their stats using System.currentTimeMillis(). Then when they load in the game I want to see how many total seconds have elapsed since it was last saved. Naturally I thought of getting System.currentTimeMillis() and then deducting my saved value and then converting that into seconds using this :=
long timePassed = System.currentTimeMillis() - lastCheck; int seconds = (int) ((timePassed / 1000) % 60);
But on each load the seconds keep altering, but not within the right bounds. For example on one load it comes as 59 seconds, then it showed 23 seconds etc. Obviously my algorithm is slightly wonky but I can't work out why.
Could some one please elaborate where I am going?
View 4 Replies
View Related
Feb 7, 2010
I want to optimize my game and remove the stuttering. Is there a way to measure the time-consumings of all my functions in the game without having to change all my functions?
View 3 Replies
View Related
Jul 13, 2010
CREDIT TO GOODANDEVO.NET. u'll be redirected to the EVO-optimized site where you'll see a limited offer to get Let's Golf at no cost if you download the company's HD games bookmark, which can be uninstalled with no consequence after you get the game. As with all of Gameloft's HD games, Let's Golf usually costs a penny shy of . The game can't be transferred to another device or reinstalled (even if it's backed up), so don't uninstall it or do a hard reset unless you want to contact Gameloft to see if you can get it again.It isn't clear how much longer the free game will be available, so get it now! o download go to the gameloft.com site on your evo using ou default browser.
View 49 Replies
View Related
Mar 24, 2010
Alright I have 3 more Google Voice invites. Of course they aren't free! I have 3 numbers in my head between 1-20. Each person only gets 1 guess for the first hour. If all 3 are not taken in that first hour then everyone can guess until they get it. My girlfriend has posted the correct numbers somewhere in this forum, so that everyone knows I'm not just making up numbers.
View 43 Replies
View Related
Nov 2, 2009
In my app I am drawing bus routes on top of a MapView. The routes have anywhere between a dozen and a few hundred GPS coordinates that describe the route that the bus takes. The problem I'm having is that once I draw out all these lines panning/zooming the MapView is incredibly slow (even clicking the 'Back' button takes a minute to happen). I'm not sure how relevant it is, but I put in some debug code then checked the logcat output and the MapView is repeatedly calling the draw() method of the Overlay whether anything has changed or not. This is happening several times a second and is causing a massive amount of garbage collection to happen (2-3 MB every second).
View 2 Replies
View Related
May 19, 2014
Still learning on Samsung Galaxy Ring; how can I delete all texts in a thread rather than just delete one at a time? I played around with touch, slide, etc.
View 7 Replies
View Related
Sep 7, 2010
How can I implement a run() method of thread if I create a Thread Global?
I mean If I create a Thread Globally then can I implement its run() method {" public void run()"} anywhere in my Application?
In the run() method I have to write the code to perform some action.
IF I can do it then please can anyone show me briefly how to do it particularly.
View 2 Replies
View Related
Jun 21, 2010
Is there any efficient linear algebra library for android? I need to compute matrices of different sizes(also bigger than 4x4) and rectangular too.
View 1 Replies
View Related
Nov 24, 2010
I want to do the following and am kind of stuck on these for a few days:
1) I was trying to draw poly lines ( I have encoded polylines, but have managed to decoded those) that move when I move the map(the only solution that I found was for Geopoints to be transformed into screen co-ordinateswhich wont move if I move the map !)
2) I have used helloItemizedOverlay to add about 150 markers and it gets very very slow.any idea what to do ? I was thinking about threads(handler)
3) I was looking for some sort of a timer function that executes a given function, say, every 1 minute or so.
4) I was also looking for ways to clear the Google map from all the markers/lines etc
View 1 Replies
View Related
Aug 3, 2010
My application requires that when a snapshot is taken it must store in memory and next time when I restart the phone I must get a thumbnail of that photo in list of photos and the full scale photo when I click on it.There are 2 ways I know.
1. Store images directly. Concern here is every time it has to hit directory to get image which takes some time.
2. Store all images in single xml. Concern here is XML will be too big and takes time to parse.
View 1 Replies
View Related
May 26, 2009
What's the most efficient way to clone a JSONArray?
View 2 Replies
View Related
Aug 21, 2009
I have some image names stored in a database, but the images themselves are in the /res/drawable folder of the application. I need to assign these images to some views at runtime, and I'm currently doing it this way:
// public static final String DRAWABLES_PATH = ":drawable/";
int resId = getResources().getIdentifier(packageName+DRAWABLES_PATH +imageName,null,null); mButtonX.setBackgroundResource(resId); //
Is there a more efficient way to do it? Or should I be storing the images directly in the database (they are many)?
View 2 Replies
View Related
May 21, 2009
I am writing an application in which i need to handle messages between the main thread(the deafult UI related thread) and the user created Gamethread.
The requirement is like this.
An activity(say "Activity_X") is setting the view by "setContentView(some "View_Y")". In "Activity_X" i have implemeted "onCreateOptionsMenu()" and "onOptionsItemSelected()" fucntions for creating menus & a switch case for action to be taken on selecting those menus.Menu has items like "resume/pause/zoom/" .
All action to be take on selecting these menus are implemented in "View_Y" in a separate Gamethread by extending "Thread" class.
So whenever a menu is selected in "Activity_X" i need to send a message to "View_Y". And on receiving this ,a particular action/method should be called in View_Y(GameThread).
How can i achieve this using Handlers?Is there any other way of doing this? Please do share with me some code snippets for these.
View 3 Replies
View Related
Aug 22, 2010
I'm using a mixture of the "Efficient Adapter" and the EndlessAdapter from CommonsGuy, and sometime the holder in getView() is null.
CODE:.............
I've put the rest of the code for both of my classes here, as it's rather large to paste inline.
Once the whole data set is loaded, scrolling up & down causes rows to disappear and re-appear too.
View 1 Replies
View Related
Dec 29, 2009
Currently I'm using a HashMap to map the strings to int and the int values need to be frequently accessed. I'm looking for a better way to do this if possible with minimal object creation, and preferable being able to store the values as primitive ints without wrapping them with the Integer class. (Basically, the reverse of the SparseArray's int->object mapping.)
View 4 Replies
View Related
Jul 10, 2010
I am trying to reduce the size of images retrieved form the camera (so ~5-8 mega pixels) down to one a a few smaller sizes (the largest being 1024x768).It looks like the OOM happens during the createBitmap. Is there a more memory efficient way to do this? Perhaps something that doesn't require me to load the entire original into memory?
View 2 Replies
View Related
Jun 24, 2010
It happens that the user click on enter where i dont want to include it as a part of my input the string can end with 3 times so just replacing one wont do the job
My solution was:
CODE:........
Or just to point there without the new but i want later to dump the garbage. Or at least to dump values to the gc now ....
View 5 Replies
View Related