Search Results

Search found 14940 results on 598 pages for 'android wake lock'.

Page 295/598 | < Previous Page | 291 292 293 294 295 296 297 298 299 300 301 302  | Next Page >

  • .NET Code Evolution

    - by Alois Kraus
    Originally posted on: http://geekswithblogs.net/akraus1/archive/2013/07/24/153504.aspxAt my day job I do look at a lot of code written by other people. Most of the code is quite good and some is even a masterpiece. And there is also code which makes you think WTF… oh it was written by me. Hm not so bad after all. There are many excuses reasons for bad code. Most often it is time pressure followed by not enough ambition (who cares) or insufficient training. Normally I do care about code quality quite a lot which makes me a (perceived) slow worker who does write many tests and refines the code quite a lot because of the design deficiencies. Most of the deficiencies I do find by putting my design under stress while checking for invariants. It does also help a lot to step into the code with a debugger (sometimes also Windbg). I do this much more often when my tests are red. That way I do get a much better understanding what my code really does and not what I think it should be doing. This time I do want to show you how code can evolve over the years with different .NET Framework versions. Once there was  time where .NET 1.1 was new and many C++ programmers did switch over to get rid of not initialized pointers and memory leaks. There were also nice new data structures available such as the Hashtable which is fast lookup table with O(1) time complexity. All was good and much code was written since then. At 2005 a new version of the .NET Framework did arrive which did bring many new things like generics and new data structures. The “old” fashioned way of Hashtable were coming to an end and everyone used the new Dictionary<xx,xx> type instead which was type safe and faster because the object to type conversion (aka boxing) was no longer necessary. I think 95% of all Hashtables and dictionaries use string as key. Often it is convenient to ignore casing to make it easy to look up values which the user did enter. An often followed route is to convert the string to upper case before putting it into the Hashtable. Hashtable Table = new Hashtable(); void Add(string key, string value) { Table.Add(key.ToUpper(), value); } This is valid and working code but it has problems. First we can pass to the Hashtable a custom IEqualityComparer to do the string matching case insensitive. Second we can switch over to the now also old Dictionary type to become a little faster and we can keep the the original keys (not upper cased) in the dictionary. Dictionary<string, string> DictTable = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); void AddDict(string key, string value) { DictTable.Add(key, value); } Many people do not user the other ctors of Dictionary because they do shy away from the overhead of writing their own comparer. They do not know that .NET has for strings already predefined comparers at hand which you can directly use. Today in the many core area we do use threads all over the place. Sometimes things break in subtle ways but most of the time it is sufficient to place a lock around the offender. Threading has become so mainstream that it may sound weird that in the year 2000 some guy got a huge incentive for the idea to reduce the time to process calibration data from 12 hours to 6 hours by using two threads on a dual core machine. Threading does make it easy to become faster at the expense of correctness. Correct and scalable multithreading can be arbitrarily hard to achieve depending on the problem you are trying to solve. Lets suppose we want to process millions of items with two threads and count the processed items processed by all threads. A typical beginners code might look like this: int Counter; void IJustLearnedToUseThreads() { var t1 = new Thread(ThreadWorkMethod); t1.Start(); var t2 = new Thread(ThreadWorkMethod); t2.Start(); t1.Join(); t2.Join(); if (Counter != 2 * Increments) throw new Exception("Hmm " + Counter + " != " + 2 * Increments); } const int Increments = 10 * 1000 * 1000; void ThreadWorkMethod() { for (int i = 0; i < Increments; i++) { Counter++; } } It does throw an exception with the message e.g. “Hmm 10.222.287 != 20.000.000” and does never finish. The code does fail because the assumption that Counter++ is an atomic operation is wrong. The ++ operator is just a shortcut for Counter = Counter + 1 This does involve reading the counter from a memory location into the CPU, incrementing value on the CPU and writing the new value back to the memory location. When we do look at the generated assembly code we will see only inc dword ptr [ecx+10h] which is only one instruction. Yes it is one instruction but it is not atomic. All modern CPUs have several layers of caches (L1,L2,L3) which try to hide the fact how slow actual main memory accesses are. Since cache is just another word for redundant copy it can happen that one CPU does read a value from main memory into the cache, modifies it and write it back to the main memory. The problem is that at least the L1 cache is not shared between CPUs so it can happen that one CPU does make changes to values which did change in meantime in the main memory. From the exception you can see we did increment the value 20 million times but half of the changes were lost because we did overwrite the already changed value from the other thread. This is a very common case and people do learn to protect their  data with proper locking.   void Intermediate() { var time = Stopwatch.StartNew(); Action acc = ThreadWorkMethod_Intermediate; var ar1 = acc.BeginInvoke(null, null); var ar2 = acc.BeginInvoke(null, null); ar1.AsyncWaitHandle.WaitOne(); ar2.AsyncWaitHandle.WaitOne(); if (Counter != 2 * Increments) throw new Exception(String.Format("Hmm {0:N0} != {1:N0}", Counter, 2 * Increments)); Console.WriteLine("Intermediate did take: {0:F1}s", time.Elapsed.TotalSeconds); } void ThreadWorkMethod_Intermediate() { for (int i = 0; i < Increments; i++) { lock (this) { Counter++; } } } This is better and does use the .NET Threadpool to get rid of manual thread management. It does give the expected result but it can result in deadlocks because you do lock on this. This is in general a bad idea since it can lead to deadlocks when other threads use your class instance as lock object. It is therefore recommended to create a private object as lock object to ensure that nobody else can lock your lock object. When you read more about threading you will read about lock free algorithms. They are nice and can improve performance quite a lot but you need to pay close attention to the CLR memory model. It does make quite weak guarantees in general but it can still work because your CPU architecture does give you more invariants than the CLR memory model. For a simple counter there is an easy lock free alternative present with the Interlocked class in .NET. As a general rule you should not try to write lock free algos since most likely you will fail to get it right on all CPU architectures. void Experienced() { var time = Stopwatch.StartNew(); Task t1 = Task.Factory.StartNew(ThreadWorkMethod_Experienced); Task t2 = Task.Factory.StartNew(ThreadWorkMethod_Experienced); t1.Wait(); t2.Wait(); if (Counter != 2 * Increments) throw new Exception(String.Format("Hmm {0:N0} != {1:N0}", Counter, 2 * Increments)); Console.WriteLine("Experienced did take: {0:F1}s", time.Elapsed.TotalSeconds); } void ThreadWorkMethod_Experienced() { for (int i = 0; i < Increments; i++) { Interlocked.Increment(ref Counter); } } Since time does move forward we do not use threads explicitly anymore but the much nicer Task abstraction which was introduced with .NET 4 at 2010. It is educational to look at the generated assembly code. The Interlocked.Increment method must be called which does wondrous things right? Lets see: lock inc dword ptr [eax] The first thing to note that there is no method call at all. Why? Because the JIT compiler does know very well about CPU intrinsic functions. Atomic operations which do lock the memory bus to prevent other processors to read stale values are such things. Second: This is the same increment call prefixed with a lock instruction. The only reason for the existence of the Interlocked class is that the JIT compiler can compile it to the matching CPU intrinsic functions which can not only increment by one but can also do an add, exchange and a combined compare and exchange operation. But be warned that the correct usage of its methods can be tricky. If you try to be clever and look a the generated IL code and try to reason about its efficiency you will fail. Only the generated machine code counts. Is this the best code we can write? Perhaps. It is nice and clean. But can we make it any faster? Lets see how good we are doing currently. Level Time in s IJustLearnedToUseThreads Flawed Code Intermediate 1,5 (lock) Experienced 0,3 (Interlocked.Increment) Master 0,1 (1,0 for int[2]) That lock free thing is really a nice thing. But if you read more about CPU cache, cache coherency, false sharing you can do even better. int[] Counters = new int[12]; // Cache line size is 64 bytes on my machine with an 8 way associative cache try for yourself e.g. 64 on more modern CPUs void Master() { var time = Stopwatch.StartNew(); Task t1 = Task.Factory.StartNew(ThreadWorkMethod_Master, 0); Task t2 = Task.Factory.StartNew(ThreadWorkMethod_Master, Counters.Length - 1); t1.Wait(); t2.Wait(); Counter = Counters[0] + Counters[Counters.Length - 1]; if (Counter != 2 * Increments) throw new Exception(String.Format("Hmm {0:N0} != {1:N0}", Counter, 2 * Increments)); Console.WriteLine("Master did take: {0:F1}s", time.Elapsed.TotalSeconds); } void ThreadWorkMethod_Master(object number) { int index = (int) number; for (int i = 0; i < Increments; i++) { Counters[index]++; } } The key insight here is to use for each core its own value. But if you simply use simply an integer array of two items, one for each core and add the items at the end you will be much slower than the lock free version (factor 3). Each CPU core has its own cache line size which is something in the range of 16-256 bytes. When you do access a value from one location the CPU does not only fetch one value from main memory but a complete cache line (e.g. 16 bytes). This means that you do not pay for the next 15 bytes when you access them. This can lead to dramatic performance improvements and non obvious code which is faster although it does have many more memory reads than another algorithm. So what have we done here? We have started with correct code but it was lacking knowledge how to use the .NET Base Class Libraries optimally. Then we did try to get fancy and used threads for the first time and failed. Our next try was better but it still had non obvious issues (lock object exposed to the outside). Knowledge has increased further and we have found a lock free version of our counter which is a nice and clean way which is a perfectly valid solution. The last example is only here to show you how you can get most out of threading by paying close attention to your used data structures and CPU cache coherency. Although we are working in a virtual execution environment in a high level language with automatic memory management it does pay off to know the details down to the assembly level. Only if you continue to learn and to dig deeper you can come up with solutions no one else was even considering. I have studied particle physics which does help at the digging deeper part. Have you ever tried to solve Quantum Chromodynamics equations? Compared to that the rest must be easy ;-). Although I am no longer working in the Science field I take pride in discovering non obvious things. This can be a very hard to find bug or a new way to restructure data to make something 10 times faster. Now I need to get some sleep ….

    Read the article

  • Utility that helps in file locking - expert tips wanted

    - by maix
    I've written a subclass of file that a) provides methods to conveniently lock it (using fcntl, so it only supports unix, which is however OK for me atm) and b) when reading or writing asserts that the file is appropriately locked. Now I'm not an expert at such stuff (I've just read one paper [de] about it) and would appreciate some feedback: Is it secure, are there race conditions, are there other things that could be done better … Here is the code: from fcntl import flock, LOCK_EX, LOCK_SH, LOCK_UN, LOCK_NB class LockedFile(file): """ A wrapper around `file` providing locking. Requires a shared lock to read and a exclusive lock to write. Main differences: * Additional methods: lock_ex, lock_sh, unlock * Refuse to read when not locked, refuse to write when not locked exclusivly. * mode cannot be `w` since then the file would be truncated before it could be locked. You have to lock the file yourself, it won't be done for you implicitly. Only you know what lock you need. Example usage:: def get_config(): f = LockedFile(CONFIG_FILENAME, 'r') f.lock_sh() config = parse_ini(f.read()) f.close() def set_config(key, value): f = LockedFile(CONFIG_FILENAME, 'r+') f.lock_ex() config = parse_ini(f.read()) config[key] = value f.truncate() f.write(make_ini(config)) f.close() """ def __init__(self, name, mode='r', *args, **kwargs): if 'w' in mode: raise ValueError('Cannot open file in `w` mode') super(LockedFile, self).__init__(name, mode, *args, **kwargs) self.locked = None def lock_sh(self, **kwargs): """ Acquire a shared lock on the file. If the file is already locked exclusively, do nothing. :returns: Lock status from before the call (one of 'sh', 'ex', None). :param nonblocking: Don't wait for the lock to be available. """ if self.locked == 'ex': return # would implicitly remove the exclusive lock return self._lock(LOCK_SH, **kwargs) def lock_ex(self, **kwargs): """ Acquire an exclusive lock on the file. :returns: Lock status from before the call (one of 'sh', 'ex', None). :param nonblocking: Don't wait for the lock to be available. """ return self._lock(LOCK_EX, **kwargs) def unlock(self): """ Release all locks on the file. Flushes if there was an exclusive lock. :returns: Lock status from before the call (one of 'sh', 'ex', None). """ if self.locked == 'ex': self.flush() return self._lock(LOCK_UN) def _lock(self, mode, nonblocking=False): flock(self, mode | bool(nonblocking) * LOCK_NB) before = self.locked self.locked = {LOCK_SH: 'sh', LOCK_EX: 'ex', LOCK_UN: None}[mode] return before def _assert_read_lock(self): assert self.locked, "File is not locked" def _assert_write_lock(self): assert self.locked == 'ex', "File is not locked exclusively" def read(self, *args): self._assert_read_lock() return super(LockedFile, self).read(*args) def readline(self, *args): self._assert_read_lock() return super(LockedFile, self).readline(*args) def readlines(self, *args): self._assert_read_lock() return super(LockedFile, self).readlines(*args) def xreadlines(self, *args): self._assert_read_lock() return super(LockedFile, self).xreadlines(*args) def __iter__(self): self._assert_read_lock() return super(LockedFile, self).__iter__() def next(self): self._assert_read_lock() return super(LockedFile, self).next() def write(self, *args): self._assert_write_lock() return super(LockedFile, self).write(*args) def writelines(self, *args): self._assert_write_lock() return super(LockedFile, self).writelines(*args) def flush(self): self._assert_write_lock() return super(LockedFile, self).flush() def truncate(self, *args): self._assert_write_lock() return super(LockedFile, self).truncate(*args) def close(self): self.unlock() return super(LockedFile, self).close() (the example in the docstring is also my current use case for this) Thanks for having read until down here, and possibly even answering :)

    Read the article

  • How to turn on monitor after wake-up from suspend mode?

    - by alek.sys
    Hi all, I need wake up PC from sleep to perform some actions - from C#. I've used CreateWaitableTimer functions, everything goes fine, at given time PC wakes up - but monitor stays in power save mode (turned off). So i want to know - how possible to turn on monitor after wake up? PS I've tried "Complete Guide on How To Turn A Monitor On/Off/Standby" - with SendMessage (Codeproject) and SetThreadExecutionState(ES_DISPLAY_REQUIRED) - it doesn't work Any ideas?

    Read the article

  • phablet-flash aborting while installing Ubuntu Touch on Nexus 4

    - by Till B
    I have a Nexus 4 with Android 4.3 installed and I want to flash it to Ubuntu Touch. My system is Ubuntu 12.04, running inside a virtual machine on Mac OS 10.5.8. To use the VM, I opened an NAT bridge and forwarded port 5037 for adb, I can see the Nexus with adb and e.g. use the adb shell into it. USB ports are also forwarded to the VM. I follow these instructions to the letter. My bootloader is unlocked, just as it was described in the instructions. Now I encounter different issues, when executing sudo phablet-flash ubuntu-system --no-backup. On the first run, it got stuck in this state: INFO:phablet-flash:Decompressing partitions/recovery.img from /home/till/Downloads/phablet-flash/imageupdates/pool/device-5ba3031cb0d6fc624848266edba781e3e821b6e1e8dd21105725f0ab26077d0a.tar.xz INFO:phablet-flash:Restarting device... wait INFO:phablet-flash:Restarting device... wait complete INFO:phablet-flash:Booting /tmp/tmpMSN8bm/partitions/recovery.img < waiting for device > downloading 'boot.img'... OKAY [ 1.772s] booting... OKAY [ 0.005s] finished. total time: 1.779s INFO:phablet-flash:Waiting for recovery image to boot The following happened: around the line "INFO:phablet-flash: Restarting...", it rebooted into the bootloader. The bootloader shows only for two seconds, then the screen goes off and the phone stays off. But I do notice, that the screen is not off - it is just black, but the background light is on. If I wait long enough, phablet-flash aborts with ERROR:phablet-flash:Wait for recovery expired On the second try, I wanted to manually start the bootloader and choose "Recovery mode". Pressing "volume down+power" at first did nothing. Releasing the buttons and then pressing them again brought me into the bootloder. After choosing "Recovery mode", phablet-flash continued and after a while aborted with the following output: INFO:phablet-flash:Wait for recovery image to boot complete INFO:phablet-flash:Clearing /data and /cache INFO:phablet-flash:Pushing /home/till/Downloads/phablet-flash/imageupdates/pool/ubuntu-2b5345658b58e55207c4a4e7b6b3d8cd4f3d9a3187d2448fc9020c884234bac0.tar.xz to /cache/recovery/ failed to copy '/home/till/Downloads/phablet-flash/imageupdates/pool/ubuntu-2b5345658b58e55207c4a4e7b6b3d8cd4f3d9a3187d2448fc9020c884234bac0.tar.xz' to '/cache/recovery/': Permission denied ERROR:phablet-flash:Command 'adb push /home/till/Downloads/phablet-flash/imageupdates/pool/ubuntu-2b5345658b58e55207c4a4e7b6b3d8cd4f3d9a3187d2448fc9020c884234bac0.tar.xz /cache/recovery/' returned non-zero exit status 1 Removing directory /tmp/tmpDnbz6N Removing directory /tmp/tmpth4L6w What can I do to properly flash my phone with Ubuntu Touch? I noticed that adb does not show the phone in recovery mode: Typing adb devices, when the Nexus 4 is in recovery mode, shows the serial number and the state device, where it should show recovery. Should the phone be rooted? This is not mentioned in the instructions.

    Read the article

  • Game Review: God of Light

    Luckily I came across this title at a very early stage. If I remember correctly, I took notice of God of Light on Twitter right on the weekend it has been published on the Play Store. "Sit back and become immersed into the world of God of Light, the game that rethinks the physics puzzle genre with its unique environment exploration gameplay, amazing graphics and exclusive soundtrack created by electronic music icon UNKLE. Join cute game mascot, Shiny, on his way to saving the universe from the impending darkness. Play through a variety of exciting game worlds and dozens of levels with mind-blowing puzzles. Your goal is to explore game levels, seek for game objects that reflect, split, combine, paint, bend and teleport rays of light energy to activate the Sources of Life and bring light back to the universe." Mastering the various reflection items in God of Light is very easy to learn and new elements are introduced during the game. Amazing puzzle game Here's the initial review I posted on the Play Store: "Great change in puzzles Fantastic and refreshing concept of puzzle solving. The effects and the music match very well, putting the player in the right mood to game. Get enlightened and grow your skills until you are a true God of Light." And it remains true, even after completing the first realm completely. Similar to Quell it took me only a couple of hours during the evening to complete all levels in the available three realms, unfortunately. God of Light currently consists of 75 levels, well it's 25 in each realm to be precise, and the challenges are increasing. Compared to the iOS version from the AppStore, God of Light is available for free on Android - at least the first realm (25 levels). Unlocking the other two remaining realms is done through an in-app purchase. The visual appearance, the sound effects and the background music provided by UNKLE makes God of Light a superb package for any puzzle gamer. Whether it is simply reflecting light over multiple mirrors, or later on bending the rays of light with black holes, or using prisms to either split, enforce, or colourise your beam, God of Light is great fun and offers a good amount of joy. Check out the following screenshots for some impressions. God of Light: Astonishing graphics and visual appeal throughout the game God of Light - Introduction to the game during the first levels. New light items are introduced at each stage during the game play God of Light: Increasing complexity and puzzle fun Hopefully, Playmous is going to provide more astonishing looking realms and interesting gimmicks in future versions. Play Store: God of Light Also, check out the latest game updates on the official web site of Playmous

    Read the article

  • Help with Strategy-game AI

    - by f20k
    Hi, I am developing a strategy-game AI (think: Final Fantasy Tactics), and I am having trouble coming up for the design of the AI. My main problem is determining which is the optimal thing for it to do. First let me describe the priority of what action I would like the AI to take: Kill nearest player unit Fulfill primary directive (kill all player units, kill target unit, survive for x turns) Heal ally unit / cast buffer Now the AI can do the following in its turn: Move - {Attack / Ability / Item} (either attack or ability or item) {Attack / Ability / Item} - Move Move closer (if targets not in range) {Attack / Ability / Item} (if move not available) Notes Abilities have various ranges / effects / costs / effects. Each ai unit has maybe 5-10 abilities to choose from. The AI will prioritize killing over safety unless its directive is to survive for x turns. It also doesn't care about ability cost much. While a player may want to save a big spell for later, the AI will most likely use it asap. Movement is on a (hex) grid num of player units: 3-6 num of ai units: 3-7 or more. Probably max 10. AI and player take turns controlling ONE unit, instead of all at the same time. Platform is Android (if program doesnt respond after some time, there will be a popup saying to Force Quit or Wait - which looks really bad!). Now comes the questions: The best ability to use would obviously be the one that hits the most targets for the most damage. But since each ability has different ranges, I won't know if they are in range without exploring each possible place I can move to. One solution would be to go through each possible places to move to, determine the optimal attack at that location - which gives me a list of optimal moves for each location. Then choose the optimal out of the list and execute it. But this will take a lot of CPU time. Is there a better solution? My current idea is to move as close as possible towards the closest, largest group of people, and determine the optimal attack/ability from there. I think this would be a lot less work for the CPU and still allow for wide-range attacks. Its sub-optimal but the AI will still seem 'smart'. Other notes/questions: Am I over-thinking/over-complicating it? Better solution? I am open to all sorts of suggestions I have taken a look at the spell-casting question, but it doesn't take into account the movement - so perhaps use that algo for each possible move location? The top answer mentioned it wasn't great for area-of-effect and group fights - so maybe requires more tweaking? Please, if you mention a graph/tree, let me know basically how to use it. E.g. Node means ability, level corresponds to damage, then search for the deepest node.

    Read the article

  • Les appareils sous Android seraient plus sujets aux pannes matérielles que ceux sous Windows Phone ou iOS selon WDS

    Les appareils sous Android seraient plus sujets aux pannes matérielles Que Windows Phone et iOS selon WDS Le résultat d'une étude menée par la société WDS montre que les dispositifs sous Android seraient plus victimes de pannes matérielles que les autres. L'enquête a été menée pendant un an en Europe, en Amérique du Nord, en Australie et en Afrique du Sud. Elle s'appuie sur environ 600 000 appels clients et révèle que le taux de pannes des smartphones sous Android s'élèverait à 14%. Selon WDS, les pannes matérielles les plus fréquentes sur les dispositifs Android, seraient dues à la fragmentation de la plate-forme mobile et à son adoption par des constructeurs divers. ...

    Read the article

  • Android 2.2 cinq fois plus rapide que son prédécesseur ? "Froyo" est sur le point d'être dévoilé par

    Mise à jour du 14/05/10 Android 2.2 serait cinq fois plus rapide que Android 2.1 Froyo est sur le point d'être dévoilé par Google Une nouvelle sculpture vient de faire son apparition devant le siège de Google. Pour les initiés, cette curieuse tradition destinée à alimenter le « buzz » indique que la nouvelle version d'Android ne va tarder à être dévoilée officiellement. Pour l'instant, cette sculpture de Froyo (dessert à base de Yogourt glacé et nom de code d'Android 2.2) trône à coté d'un éclair et d'un Donuts, mais elle est encore recouverte d'un film plastic. En attendant qu'il soit retiré (trè...

    Read the article

  • Brevets : Android de nouveau en danger, un consortium constitué d'Apple, Microsoft, Sony attaque en justice Google et plusieurs constructeurs

    Brevets : Android de nouveau en danger un consortium constitué d'Apple, Microsoft, Sony attaque en justice Google et plusieurs constructeurs Android de nouveau devant la barre. Après la grosse affaire de violation des brevets liés aux API Java ayant opposé Google à Oracle, Android va de nouveau faire face à une autre poursuite en justice qui pourrait bouleverser l'écosystème mobile.Le succès de la plateforme mobile de Google, qui détient désormais près de 70 % de part de marché du mobile, charme...

    Read the article

  • Google a-t-il raté son entrée sur le marché des tablettes ? Android connaît une "croissance pénible" d'après DisplaySearch

    Google a-t-il raté son entrée sur le marché des tablettes ? Android connaît une "croissance pénible" d'après DisplaySearch Six mois après le lancement d'Android 3 (alias Honeycomb), force est de constater que les ventes des tablettes qui tournent dessus sont loin de défrayer les chroniques, elles ne semblent pas être en mesure en tout cas de freiner les ventes frénétiques de l'iPad d'Apple. Pour l'analyste Richard Shim de DisplaySearch, l'univers Android connaît une « croissance pénible » avec Honeycomb : « il est clair que les premières tablettes fondées sur Android ne s'écoulent pas aussi bien que ce que beaucoup attendaient, quelques marques avec lesquelles ...

    Read the article

  • Flash ne sera pas disponible sur Android 4.1, Adobe annonce le retrait de l'application de Google Play dès le 15 août

    Flash ne sera pas disponible sur Android 4.1 Adobe annonce le retrait de l'application de Google Play dès le 15 août Mise à jour du 02/07/2012, par Hinault Romaric Le lecteur Flash ne sera pas disponible pour Android 4.1, la prochaine version du système d'exploitation mobile présentée la semaine dernière lors du Google I/O. Adobe avait annoncé en fin d'année dernière qu'il arrêtait avec le développement de Flash pour les plateformes mobiles (lire ci-avant). C'est donc sans surprise que l'éditeur dans un billet de blog a déclaré qu'il n'y aurait pas de certification de Flash pour Android 4.1. Le programm...

    Read the article

  • Sybase adapte Android aux besoins de l'entreprise en intégrant des fonctions de sécurité sur les appareils mobiles de Samsung

    Sybase adapte Android aux besoins de l'entreprise En intégrant des fonctions de sécurité sur les appareils mobiles de Samsung C'est depuis le Mobile World Congress de Barcelone que Sybase, filiale de SAP et expert des solutions logicielles, a annoncé qu'il allait fournir sa solution Afaria AES (Advanced Enterprise Security) aux terminaux professionnels de Samsung tournant sous Android. Sybase intégrera ainsi des fonctions de sécurité et de gestion des applications supplémentaires à l'OS mobile de Google sur les Galaxy S et Galaxy S II. « L'engouement pour les appareils Android, tels que les nouveaux téléphones Samsung Galaxy, pose un véritable dilemme aux...

    Read the article

  • Android vend deux fois plus qu'iOS, mais ses développeurs gagneraient quatre fois moins d'après une estimation de Flurry

    Android vend deux fois plus qu'iOS, mais ses développeurs gagneraient quatre fois moins D'après Flurry A quelques jours du Google I/O et en plein WWDC d'Apple, l'étude est polémique et se doit d'être prise avec des pincettes. D'après Flurry, un cabinet d'analyse éditeur de solutions de marketing mobile, iOS bénéficierait d'une communauté de développeurs beaucoup plus fidèle et plus motivée que celle d'Android. En comparant les deux OS, l'étude affirme que sur 10 applications développées, 7 le sont pour les appareils d'Apple contre seulement 3 pour Android. [IMG]http://ftp-developpez.com/gordon-fowler/Etudes...

    Read the article

  • Android : KitKat embarqué sur 13,6% de terminaux, Jelly Bean chute à moins de 60%, toutes les anciennes versions ont enregistré une baisse

    Android : KitKat embarqué sur 13,6% de terminaux Jelly Bean chute à moins de 60%, toutes les anciennes versions ont enregistré une baisseLes développeurs Android ont de nouveaux chiffres sur la répartition des différentes versions d'Android sur l'ensemble des terminaux exécutant la plateforme mobile et ayant eu accès au Play Store entre mai et juin.Ces chiffres sont publiés chaque mois par Google pour permettre aux développeurs d'adapter leur stratégie de développement pour cibler le plus de terminaux...

    Read the article

  • How are OpenGL ES 1 framebuffers and textures sized?

    - by jens
    I am trying to draw to a texture using a framebuffer using OpenGL ES 1.1 on Android, Java. Afterwords I want to overlay this texture full-screen over my game. In theory, this works like a charm, but somehow the coordinates are off. For testing I drew something at (0,0) with width and height 200, and it partly is off-screen. This is how I create the framebuffer: fb = new int[1]; depthRb = new int[1]; renderTex = new int[1]; gl11ep.glGenFramebuffersOES(1, fb, 0); gl11ep.glGenRenderbuffersOES(1, depthRb, 0); // the depth buffer gl.glGenTextures(1, renderTex, 0);// generate texture gl.glBindTexture(GL10.GL_TEXTURE_2D, renderTex[0]); gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT); gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT); texBuffer = ByteBuffer.allocateDirect(buf.length*4).order(ByteOrder.nativeOrder()).asIntBuffer(); gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_LUMINANCE, texW, texH, 0, GL10.GL_LUMINANCE, GL10.GL_UNSIGNED_BYTE, texBuffer); gl11ep.glBindRenderbufferOES(GL11ExtensionPack.GL_RENDERBUFFER_OES, depthRb[0]); gl11ep.glRenderbufferStorageOES(GL11ExtensionPack.GL_RENDERBUFFER_OES, GL11ExtensionPack.GL_DEPTH_COMPONENT16, texW, texH); Before I draw, I do this: gl11ep.glBindFramebufferOES(GL11ExtensionPack.GL_FRAMEBUFFER_OES, fb[0]); gl.glClearColor(0f, 0f, 0f, 0f); // specify texture as color attachment gl11ep.glFramebufferTexture2DOES(GL11ExtensionPack.GL_FRAMEBUFFER_OES, GL11ExtensionPack.GL_COLOR_ATTACHMENT0_OES, GL10.GL_TEXTURE_2D, renderTex[0], 0); // attach render buffer as depth buffer gl11ep.glFramebufferRenderbufferOES(GL11ExtensionPack.GL_FRAMEBUFFER_OES, GL11ExtensionPack.GL_DEPTH_ATTACHMENT_OES, GL11ExtensionPack.GL_RENDERBUFFER_OES, depthRb[0]); I set texW = 1024 and texH = 512. When rendering this texture fullscreen, with a lightmask (size 200x200) placed at (0, 0) and (texW/2, texH/2). You can see that it seems like the coordinate system doesnt start at (0,0) as that light overlaps the screen and the images are not drawn as squares (my lightcone-texture is a circle, not an ellipse). So, how is the coordinate system of this offscreen-drawn texture defined? Thanks

    Read the article

  • Android : la publicité menace la vie privée des utilisateurs, la moitié des applications intègrent des bibliothèques publicitaires douteuses

    Vie privée : plus de la moitié des applications Android intègrent des bibliothèques publicitaires permettant d'accéder aux données personnelles et de tracer les utilisateurs La publicité dans les applications sur Google Play (anciennement Android Market) pourrait causer des risques à la sécurité des utilisateurs et de leur vie privée. Le constat a été fait dans deux études séparées des chercheurs de l'université de la Californie du Nord et de l'université Purdue dans l'Indiana. En analysant 100 000 applications de la galerie officielle Android, les chercheurs ont constaté que plus de la moitié de celles-ci contenaient des bibliothèques publicitaires et 297 applications ...

    Read the article

  • Un chercheur informe Google d'une faille dans l'Android Market et le regrette, il aurait pu gagner le concours de hacking Pwn2Own

    Un chercheur informe Google d'une faille dans l'Android Market Et le regrette, il aurait pu gagner le concours de hacking Pwn2Own Un chercheur en sécurité a signalé à Google une vulnérabilité pouvant toucher son OS mobile Android. Une faille qu'il aurait pu utiliser lors du concours de hacking Pwn2Own qui se déroule actuellement et auquel il participe. Jon Oberheide, a découvert une vulnérabilité critique touchant l'Android Market ui pouvait être exploitée par un pirate pour installer à distance des applications malveillantes sur les terminaux Android en incitant les utilisateurs à cliquer sur un lien malveillant. Pensant que l'utilisation de cette vulnérabilité lors de la compéti...

    Read the article

  • Google publie le code source d'Android 4.1, Jelly Bean sera disponible pour les Galaxy Nexus et Nexus S le 26 juillet

    Google publie le code source d'Android 4.1 Jelly Bean l'OS sera disponible pour les Galaxy Nexus et Nexus S le 26 juillet Mise à jour du 10/07/2012 Deux semaines seulement après avoir levé le voile sur Android 4.1 lors de la conférence Google I/O, le géant de la recherche ouvre le code source de Jelly Bean. Étiquetés sous le nom d'Android 4.1.1_r1, les binaires de la prochaine mise à jour majeure du système d'exploitation mobile de Google sont disponibles dans le cadre du projet Android Open Source (AOSP). Une nouvelle qui va ravir les développeurs intéressés par le code source du système, qui pourront le ...

    Read the article

  • Brevets : Microsoft gagne contre Motorola en Allemagne, les terminaux Android du constructeur interdits de ventes sur le territoire

    Brevets : Microsoft gagne contre Motorola en Allemagne les terminaux Android du constructeur interdits de ventes sur le territoire Les procès Android se poursuivent avec leurs lots de rebondissements, et laissent peu à peu place à des décisions de justice. Après le verdict de l'affaire Google contre Oracle pour violation de brevets Java dans Android, dont le géant de la recherche en est sorti vainqueur, c'est au tour d'un autre gros feuilleton IT qui dure depuis plus d'un an de livrer sa sentence. Un tribunal régional de Munich en Allemagne a arrêté que les téléphones Android de Motorola Mobility violent les brevets de Microsoft. Plus précisément, ces dispositifs empièten...

    Read the article

  • Vie privée : plus de la moitié des applications Android intègrent des bibliothèques publicitaires pouvant menacer la securité des utilisateurs

    Vie privée : plus de la moitié des applications Android intègrent des bibliothèques publicitaires permettant d'accéder aux données personnelles et de tracer les utilisateurs La publicité dans les applications sur Google Play (anciennement Android Market) pourrait causer des risques à la sécurité des utilisateurs et de leur vie privée. Le constat a été fait dans deux études séparées des chercheurs de l'université de la Californie du Nord et de l'université Purdue dans l'Indiana. En analysant 100 000 applications de la galerie officielle Android, les chercheurs ont constaté que plus de la moitié de celles-ci contenaient des bibliothèques publicitaires et 297 applications ...

    Read the article

  • Quel EDI utilisez-vous pour vos développements Android ? Quels en sont les principaux atouts ?

    Quel EDI utilisez-vous pour vos développements Android ? Quels en sont les principaux atouts ?L'écosystème mobile est en plein essor et de nombreux développeurs se sont déjà lancés dans la création d'applications pour plateformes mobiles.Android, de part son positionnement comme OS mobile dominant, bénéficie d'une attention particulière des développeurs.Si vous avez déjà développé une application Android (ou envisagez de le faire), quel environnement de développement intégré (EDI) avez-vous utilisé...

    Read the article

  • Les applications Android réalisent 7% du chiffre d'affaires généré par celles d'iOS, Apple conserverait 85% des revenus du secteur

    Les applications Android ne génèrent que 7% du chiffre d'affaires des applications iOS Apple conserverait 85% des revenus du secteur, selon Piper Jaffray Le constat est sans appel. Android possède peut-être 50% du marché des OS mobiles, mais c'est Apple qui en retire 85% des revenus. C'est en tout cas la conclusion d'une étude de Piper Jaffray citée par le magasine économique Fortune. Ou, dit autrement, les applications Android réalisent 7% du chiffre d'affaires généré par celles de l'iPhone et autres iPad. L'explication tient également en une phrase : seules 1,3% des applications Android serait payées par les utilisateurs contre 13,5% pour iOS. Résultat, les développeurs s...

    Read the article

  • Android occupe 70 % des terminaux mobiles européens, 6 Français sur 10 ont opté pour la plateforme de Google

    Android occupe 70 % des terminaux mobiles européens, 6 Français sur 10 ont opté pour la plateforme de GoogleLes derniers chiffres publiés par l'institut Kantar révèlent que les ventes de téléphones équipés d'Android sont en très forte progression sur le marché européen. Sur la période mars, avril et mai 2013, les parts de vente d'Android ont atteint 70,4 % en France, Grande-Bretagne, Allemagne, Italie et France. L'année passée elles avoisinaient les 61 %. En France, Android équipe 65,2 % des terminaux mobiles soit une hausse de 8,5 points en comparaison avec l'année dernière. Ave...

    Read the article

  • Qt 5.2 facilitera fortement le déploiement vers les plateformes Android, avec une automatisation de la création des paquets dans Qt Creator 3.0

    Voici une rapide mise à jour des fonctionnalités prévues pour la sortie de Qt 5.2 pour Android. Cette nouvelle version se concentre sur les premières interactions avec l'écosystème, et les finitions en général. Cela inclut des améliorations sur la prise en charge d'Android par Qt Creator, désormais en version 3.0. La création d'applications Android avec Qt s'en retrouve facilitée. Exemple d'amélioration dans Qt Creator 3.0 : vous recevrez maintenant une notification si le...

    Read the article

  • Android 4.4 ambitionne de mettre fin à la fragmentation de l'OS, Google annonce KitKat et le Nexus 5

    Android 4.4 ambitionne de mettre fin à la fragmentation de l'OS Google annonce KitKat et le nouveau Nexus 5Après plusieurs fuites des fonctionnalités, Android KitKat a été finalement publié par Google, ainsi que le nouveau Nexus 5.Android 4.4 s'annonce comme la version du système d'exploitation mobile qui mettra fin à la fragmentation de la plateforme. Google vante spécialement les optimisations qui ont été apportées à celui-ci pour réduire l'empreinte mémoire.« Jusqu'à présent, certains téléphones...

    Read the article

< Previous Page | 291 292 293 294 295 296 297 298 299 300 301 302  | Next Page >