[APP][Android 4.3+] SoloPi automated-testing tool (No-Root) - Android Software/Hacking General [Developers Only]

Synopsis:
This article mainly introduces SoloPi, which is a wireless, non-intrusive and root-free Android testing tool implemented by Alipay on Android devices. The automatic, performance, compatibility and stability test of the mobile phone can be realized by directly controlling the mobile phone.
1. Introduction:
In recent years, mobile testing technology has made great progress with the rapid development of mobile internet. Test efficiency has been improved again and again from the single device automation based on testing scripts in the early time, to recording and playback, image recognition, cloud testing platform and other testing technologies, fits the needs of actual business, in-depth application and innovation.
This article mainly introduces a wireless, non-intrusive and Root-free Android testing tool SoloPi implemented by Alipay on the mobile terminal. The automatic , performance, compatibility and stability test of the mobile phone can be realized by directly controlling the mobile phone.
1.1. Mobile Testing 1.0 Era
Mobile testing 1.0 era, can also be called the exploration period. As tired of day-to-day manual operation, how to improve the test efficiency has become the most important topic in the field of mobile testing. During this period, in addition to Monkey, Uiautomator, Instruments and other official tools, a number of excellent open-source automatic testing tools / frameworks have emerged in the industry. Based on the automatic driven ability, it can not only realize the verification of basic functions, but also realize the automation of various targeted type-based tests by combining performance data gathering scheme and traversal algorithm. In this stage, the common form of automatic testing is to deploy the testing environment on a single PC or a few local PCs, and then use Jenkins and other tools to achieve continuous integration.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
1.2. Mobile Testing 2.0 era
With the continuous development of testing technology, and benefits from the open source of STF, the concept of cloud testing platform began to emerge in the industry, which packaged real device equipment, task management, automatic framework and targeted type-based testing scheme into the platform and provided them as services, bringing one-step testing experience to users. On the other hand, the introduction of remote debugging, equipment scheduling and other technologies greatly improves the utilization rate of equipment, and testers no longer need to worry about the lack of testing equipment or the time-consuming queuing of testing tasks. For users of cloud testing platform, the common testing pattern at this stage is to develop testing scripts on local PC, upload them to the cloud testing platform for execution, and finally view the testing report on the platform. The testing process is simple and clear.
1.3. Mobile testing 2.0+
In keeping with the above "cloud testing", testing technology in the era of mobile test 2.0+ usually provides a set of complete solutions rather than an independent small tools, for example, to provide users with a set of customized IDE environment, combined with the recording playback, image recognition technology, the user may only need to do some simple checkbox select, drag and drop to complete the testing scripts development. On the other hand, due to the limitations of office environment, hardware conditions and other factors, more and more testers hope to initiate testing directly on the mobile terminal and make mobile testing with random mobile-state. Of course, whether it is the cloud, IDE, or mobile, all of them should be able to communicate with each other, test easily in multi-device and variable system, so that the testing scheme can be more flexible and applicable to more scenarios.
2. Wireless driven Android testing tool: SoloPi
The concept of "test easily in multi-device and variable system" is broad, which may not be clearly explained by only one article, so the following will focus on a set of wireless, non-intrusive, root-free Android testing scheme SoloPi that we have implemented on the mobile terminal in order to welcome the era of "mobile 2.0+". Automatic, performance, compatibility, stability testing and other work can be realized by directly controlling the phone.
2.1 Overall structure
HTML:
Replay Video
In this scheme, the underlying dependencies are mainly "wireless ADB, system assist, Chrome debugging, and image recognition technology", which will be described later in the article. At the same time, on the basis of the underlying dependency, we encapsulate a set of core capabilities, consisting of "widget positioning, event-driven, performance data gathering and dependency injection", and realize common service capabilities such as recording, playback and data processing in the service layer. At the top of the architecture, the interface interaction logic encapsulates the entrance of each function.
2.2 Wireless ADB
As is known to all, for Android automation, ADB Shell's executive ability is the foundation of everything.
On PC, ADB Client provided by Android SDK communicates with ADB Server also running on PC, and then ADB Server communicates with Adbd located on the device via USB. To implement a set of wireless scheme, it is necessary to get rid of the dependence on USB cable. Fortunately, Android also provides a socket-based ADB connection mode. In this case, you only need to communicate with the native 5555 port on the end according to ADB communication protocol to obtain the executive ability of ADB shell.
There are already Java open source projects that implement the ADB communication protocol, such as AdbLib, they encapsulate an ADB debugging communication service that replaces the role of ADB Server on a PC. We have integrated the AdbLib open source library in SoloPi applications and packaged it as a set of ADB command execution tools, laying a solid foundation for SoloPi's subsequent implementation of various testing capabilities. The following will introduce you SoloPi's core features.
2.3 Recording and playback
The recording and playback based on AccessibilityService, ChromeDevToolsProtocol and image recognition achieved the accurate search. It can be played back locally on the device or converted into scripts of Appium/Macaca and other automatic frameworks to connect to the cloud testing platform. In addition, in order to reduce user maintenance cost, we also provide functions of testcase editing and process control.
2.3.1 Implementation
During the recording process, SoloPi will intercept the user's operation, identify the location of the user's operation, highlight the control for the current operation and record the current operation type of the user. After each step of operation, all kinds of information about the operation type and target control will be recorded. Control information here includes basic information such as the control's ID and text, as well as relative layout, screenshot information, and so on.
During playback, SoloPi will parse the previously recorded data item by item, and locate the target control through intelligent search algorithm, comprehensive various properties, and perform appropriate operations, such as clicking and sliding, after finding the control. After all the steps are performed, the results of the playback, including logs, screenshots and other information, will be displayed as a summary of the playback.
2.3.2 Widget lookup capability
For traditional Native applications, the properties obtained through UiAutomator dump are sufficient for automation. However, with the steady development of mobile dynamic capability, more and more applications adopt the hybrid development scheme of "Native + H5/Tinyapp". In addition, considering the rapid development of mobile game industry in recent years, the demand for automatic testing of mobile games is also increasing. In order to fit as many scenarios as possible, SoloPi provides three lookup modes:
Don't need to say more, the core of the first scheme is to generate the current control view tree based on AccessbilityService and record the attributes such as ID and text, which is suitable for Native scenario.
The second scheme is based on the Debugging protocol of Chrome. The page layout and the attributes of each element can be obtained by injecting JS. The positioning idea of the control is consistent with the scheme of Accessbility. Suitable for H5/ Tinyapp scenarios.
The third scheme is the image matching scheme. SoloPi implements a set of image matching capability on the device, combines template matching, feature matching and other algorithms, and makes certain adaptation and tuning. Suitable for game automatic scenarios. In addition, in the current SoloPi scheme, the image matching ability will also be used as the first two positioning methods works for all the details, further improve the accuracy rate of control search.
2.3.3 Playback capability
The testcase recorded by SoloPi is stored as JSON, so that the testcase can be directly played back on the device as demonstrated in the above video. Moreover, the testcase can be converted into scripts of the current mainstream automatic testing framework such as Appium and Macaca through SoloPi's parser, and the cloud testing platform can be easily accessed. In addition, benefits from the ability of text capture and image recognition, SoloPi also realized the ability to record the testcases once on the Android side, and the generated scripts can be played back on both Android and iOS sides at the same time.
2.3.4 More functions
SoloPi also provides testcase editing functions such as insert, delete, and modify of testcase steps, which can effectively reduce the maintenance cost of testcase. In addition, SoloPi introduces flow control capabilities such as loops, conditions, and so on. If the test cases are properly choreographed, tool scripts that require repeated operations or stability testing scripts that require violent playback can be easily implemented.
Additional recording and playback capabilities include the ability to combine data-mock to improve testcase playback instability, to get through performance tests, and so on.
2.4 Multi-control By One Device
Among all kinds of targeted type-based tests, compatibility testing is the most time-consuming and laborious one. Testers need to pay attention to various system versions, various mobile phone manufacturers, various types of screens and so on. It is very expensive to guarantee the quality of compatibility testing through pure manual test.
SoloPi implements a compatibility testing scheme based on the recording and playback capability. In the playback scenario, we first record the user's actions on one device, and then implement the playback of the actions on any device. If the scene is extended to more than one device, multiple devices can be controlled by one device. We call this function "Multi-control By One Device (MBOD)". More concretely, a Socket connection is established between the host and the slave, and then send the user's operation to each slave in real time on the host, and complete the playback of the operation on the slave.
The setup of MBOD environment is flexible. After installing SoloPi on the mobile phone at hand, deployment can be completed through simple joint operation. MBOD is adapted to the current mainstream models and ROM in the market, and encapsulates some quick functions to improve the testing efficiency, such as application installation, data cleaning, equipment information viewing and so on.
2.5 Performance Testing
When it comes to targeted type-based tests, performance testings have to be mentioned. In recent years, mobile applications have become an indispensable part of people's daily life, which also puts higher requirements on the application experience. In order to give users a easy and smooth experience, it is not enough to just implement functions, and performance testing is an indispensable part of creating a good application. However, it is not easy to carry out performance testing. On the one hand, performance testing has certain thresholds, and many times it is necessary to develop scripts to implement it and deal with various compatibility issues. On the other hand, most performance testing scenarios capture basic indicators that make it difficult to detect deeper issues. SoloPi implements a set of performance testing tools to solve the above problems. It includes three functions of acquiring conventional performance indicators, response time calculation and mobile Lighthouse.
2.5.1 Regular performance indicators acquisition
SoloPi supports the real-time acquisition of regular indicators such as CPU, memory, FPS and network traffic, as well as the recording of performance data, which can be stored locally and displayed in the form of reports. SoloPi also provides the ability to upload data that can be sent to the server for further processing. The complete set of performance tools supports manual and broadcast trigger, which can be easily combined with automatic testing.
2.5.2 Response time calculation
In addition to capturing regular performance indicators, SoloPi provides the ability to calculate response time. One of the most commonly used methods for calculate response time is based on code embedding point or system logs (e.g. ActivityDisplayed Time), but the results of this method are differ from users' experience for interfaces that are more asynchronously loading.
SoloPi realized a scheme to calculate the response time close to the user experience based on the ability of recording screen and framing. Specifically, after opening to record screen, SoloPi will monitor screen click event based on the command of ADB shell's get event , as a starting point of the response time, when after recording screen, SoloPi would compare the video from back to front in reverse order to find out the point when the interface tends to be stable in time, and as the end of the calculation. The subtraction is response time.
2.5.3 Mobile Lighthouse
As technologies such as H5/ Tinyapp account for an increasing proportion of mobile applications, how to test the performance of such applications has become a new topic. As anyone who has been exposed to front-end performance knows, Lighthouse is a powerful tool for front-end performance testing, but it cannot be directly used on a mobile phone. And SoloPi is the performance testing tool which implements a Lighthouse in the front-end based on CDP, it can obtain the H5 / Tinyapp startup performance of the page, the flow of resources consumption, request quality, quality of JS, call situation and page information of JSAPI, and built more than 30 best practices of front-end development , aims to find fine-grained performance problems.
The concrete implementation plan is that SoloPi connects to target app with websocket based on Chrome dev tool protocol to listen for callbacks of events such as page initiated request, data receiving, start loading, etc., and to collect data such as error reporting and Trace. Then the data is classified and sorted according to the six dimensions of startup performance, resource flow consumption, request quality, JS quality, JSAPI call situation and page information. Then the collected results are judged by the built-in rules, and the report is finally generated and displayed in the interface.
3. More
As a complete set of targeted type-based testing scheme, besides recording and playback, Multi-control By One Device and performance testing previously mentioned,SoloPi also provides data-mock, performance compression, network simulation, intelligent Monkey, and other functions . Part of the source code of SoloPi is open source currently (Please search SoloPi in Github).
HTML:
SoloPi
Welcome to join us in developing better testing tools!

Related

A roundup of three brand new IRC clients

Finnish invention Internet Relay Chat (IRC) has always been a great way to meet each other. This was particularly the case in the pre-Web, pre-* Messenger, pre-VoIP times, when the only really widely used form of conversation was IRC. Yours Truly has even spent 6-7 hours a day some 14-15 years ago talking to his friends, was always called A Serious, Hopeless IRC Addict that would probably never get back to life
After publishing my two roundups of IRC clients (Part I; Part II) two brand new IRC apps, PontiSoftware's mIRCy and Gargaj's zsIRC have been released; also, a brand new, 1.2 version of PocketIRC has been released. Therefore, I considered it to be essential to compare these three new releases to both each other and the already-released titles; most importantly, wmIRC (which hasn’t been updated for half a year), which, regardless the (sometimes fatal) bugs, I’ve always considered one of the two best IRC clients (the other being, up until now, PocketIRC).
All the three apps are landscape- and true VGA-friendly and run flawlessly on WM2003, WM2003SE and WM5 devices.
Code North PocketIRC 1.2
(Price: $14.95; free upgrade for previous 1.0 / 1.1 owners; OS compatibility: WM2003+ (1.1 supported all pre-WM2003 OS’es))
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The new version indeed delivers seamless VGA support (it doesn’t do pixel doubling any more, which was one of the biggest problems with version 1.1), which is the most important news. Also, it sports several bugfixes and is more compliant with WM5 (interestingly, I haven’t encountered any WM5-related problem with the previous 1.1 version either). Also, support for inverse color codes has been added (see Part I of my IRC roundup series on what this means).
Unfortunately, no new functionality seems to have been implemented. For example, one of the most important omission in version 1.1, the lack of logging, hasn’t been fixed in this version either.
Following are the Options dialogs so that you can have a clear picture what you can set and what you can’t: Server Display Format Ident DCC. As can clearly be seen, if you compare these dialogs to the previous version, there are absolutely no changes. The same stands for the menus.
Pros
VGA-friendly (no pixel doubling)
DCC support (as was already in the old, 1.1 version), in which it's really unique
said to have bugfixes and improved WM5 compatibility
Cons
ClearType can’t be switched off – it can be VERY annoying, especially on QVGA devices. Note that version 1.1 didn’t have ClearType.
No new functionality over version 1.1 except for the inverse color codes
The history is as useless as before – that is, pressing the “Up” arrow retrieves the first message, not the last one
mIRCy 1.0 by PontiSoftware
This brand new, commercial (it costs $11.95) IRC client is definitely worth paying attention to – it has great potential. By just eliminating its bugs, making it VGA-friendly (now, it does pixel doubling) including font size setting support, it can easily become the best IRC client for the Pocket PC (it, however, lacks any kind of DCC, in which PocketIRC is still the best Pocket PC IRC client).
It has a lot of goodies: logging support and for example Ignore, Highlight and Notify lists - in this respect, it’s really unique. Also, it’s highly fine-tunable (except for the character size, which I’ll elaborate on later). Following is a quick list of the dialog screens so that you can have a picture of what can be set: Connection, Options, Colors, Sounds (for example the channel joining sound is very funny!), Info, Files.
It’s of the very few apps that has a local server list. It can be found in the Connections settings dialog where there is a separate network and, inside networks, server list. It’s, however, is in no way as extensive as the desktop mIRC’s list available for download and conversion here. The two lists aren’t compatible but can definitely be converted with some regular expression knowledge (with which, fortunately, I can brag with). I’ve, therefore, quickly written the regexps to convert mIRC’s format to that of mIRCy (from: n\d+=(.+):.+SERVER\S+)\S+)GROUP:.+ to: $1\t$2\t$3\t ; with Editpad Pro (my favorite, fully regexp-compliant editor under Windows), this should be used as depicted in this and this screenshots). Note that the list MUST have a trailing Enter character; otherwise, the client will crash upon trying to load the list. Also note that you should only keep the [servers] section; delete everything BEFORE it. Also make sure you remove (or, manually convert) the “n127=EpicIRC Random serverSERVER:irc.epicirc.net:6667GROUP:EpicIRC” row from the resulting conversion (and make sure there are no other records with : in them; they don’t adhere to the reg exp syntax of the other records. You can, naturally, eliminate them yourself.) With my list AVAILABLE HERE (just overwrite the default list, \Program Files\ PontiSoft\ mIRCy\ servers.txt, with it), as you can see here, there are much more selectable networks and considerably more servers (416 as opposed to 306). Hope you enjoy my list.
Pros
Manually editable server list at \Program Files\ PontiSoft\ mIRCy\ servers.txt (to which, again, I’ve created an up-to-date list and a converter script for you so that you can do the conversion yourself, along with making available a converted, up-to-date, much-better-than-the-original mIRC list)
Logging
Copying to the clipboard (just select the text)
Pretty good context menu
The only Pocket PC IRC application to support multiple ports, of which it automatically chooses in a random way – starting from a port in the lower range, when it finds it doesn’t answer, it retries with a port with a higher port number). Much as, up to now, I haven’t really found a real use for this (if you use the default port number, 6667, and can’t join a server because it’s full, in most cases retrying with a different port number on the same server doesn’t help), this may be handy. For example, the most widely known, internationally (even from Europe!) usable US-based IRCNet server, irc.stealth.net, allows for connections in the 6660-6669 range (of which, at the time of writing, 6000, 6001 and 6002 were unreachable though as can also be seen in here (screenshot of PocketIRC 1.1 (also note there’s no ClearType); manually changed port numbers between connection attempts).
Note that the lack of multiple port support isn’t a showstopper with other clients. If you really want to try to retry with another port (as has already pointed out, in general, you won’t need to) different from the default 6667, you can always (manually) reconfigure your IRC client before reconnecting. (Yeah, I know it means you end up having to shut down zsIRC and editing the config file with an editor. In other clients, it’s much easier.)
Cons
No DCC
after disconnecting (File/Disconnect) from a server (or after an unsuccessful attempt to do it), it’s impossible to reconnect (retry) at once for at least 30 seconds: you’ll get the as can be seen in this screenshot too – or, in cases, the GUI becomes totally unresponsive. This can be a real pain in the back with servers that require many attempts to connect to (for example irc.stealth.net). The tested, other clients (the two PocketIRC versions, wmIRC 2.2, zsIRC) don’t do the same.
Sometimes selecting Connect results in the same without even having connected to servers before. Then, in addition, the GUI just seems to be frozen. Fortunately, after 10-15 seconds, you will regain control over it.
Generic rendering errors for example at inserting text into already-existing text and at displaying non-active queries / channels
Pixel doubling in SE (standard) VGA mode; forcing \Program Files\PontiSoft\mIRCy\mircy.exe doesn’t really help this because of the really tiny characters, totally messed-up main screen and whisper context menus (in native VGA, it's OK but uses very small characters)
Character size can’t be set (unlike in almost any other IRC client). Unfortunately, it doesn’t take into account the system-level character size setting either (see the “old” “Everything about VGA” article linked from here for more information on this)
There is history (accessible also with the up/down keys) but it always returns the first (globally) entered string, not the latest one – not what you may be looking for
Verdict
For VGA users: if it’d be more VGA-friendly (no pixel doubling) and the character size were settable, I’d certainly recommend it. For now: if you get upset by the non-settable character sizes and the pixel doubling, go for another client, for example zsIRC.
For QVGA users: recommended. Give it a try (particularly with my server list), you’ll like it.
zsIRC 2006. 07. 23. by Gargaj
This free (!) IRC client was a BIG surprise for me. It’s a bit hard for a newbie to operate (everything must be configured by manually editing the zsIRC.ini file; there isn’t even a CAB-based or a desktop installer etc) but is much-much better than any other free client out there – and, in many respects, even commercial ones! For example, it supports logging (again, the above-reviewed PocketIRC, which is in many respects the best IRC client, still doesn’t support this essential feature) and, as opposed to the above-reviewed mIRCy, it supports VGA and lets the user configure the fonts. This application is certainly worth a try.
Pros
LOGGING!
Free and MUCH better than any other free client
Pretty easy to switch between channels and queries (no drop-down menu to switch, unlike in PocketCHAT)
No anomalies on VGA devices
History works as expected (and unlike the other two apps, which always bring up the first item): pressing the Up key retrieves the last message sent, not the first one
(Via the zsIRC.ini file) many parameters can be configured (for example, a lot of appearance-related ones)
Cons
Everything must be configured via the zsIRC.ini file – no dedicated settings menus / dialogs
No installer
Requires you to know the exact syntax of, for example, /topic or /kick – no menu/dialog-based support
Very weak context menus (compare this to the context menus of the other two apps)
No copy to the clipboard – you can’t select any text, unlike with the other two reviewed apps. You need to look up the log files if you need to copy anything to the clipboard.
No DCC
No colors
Verdict
zsIRC has indeed proved to be a very good surprise: it’s so much better than all the other free clients out there. It’s not only free but also supports logging, has the best-working history (if you have an external / thumb keyboard and are used to the way how desktop / Unix IRC clients work, you’ll certainly welcome it) and has no visible anomalies, unlike both mIRCy (pixel doubling and non-settable character sizes) and PocketIRC (ClearType).
Sure, it has a lot of shortcomings, but as far as you don’t need menu support for IRC commands (after all, in the old IRC days, I had to memorize the correct syntax of all op and other commands because there were no menus under Unix or, even better, VM/CMS and I can tell you it’s not impossible), give it a go – you’ll like it.
Unfortunately, the new version of PocketIRC was a disappointment for me. I certainly hoped for more. The always-on ClearType is a real pain in the back (I just HATE it, particularly on QVGA devices). If you, on the other hand, don't dislike ClearType, you may want to give a title a try.
mIRCy clearly shows it’s just a 1.0 product – while, in some areas, it excels (for example, ignore lists and logging), the lack of VGA support and the inability to set the font size is unforgivable (if you are a VGA user, that is). Hope its problems will be soon fixed; for now, I can’t really recommend it if you have a VGA device. Then, I recommend the free zsIRC the best if you aren’t afraid of editing the settings file and memorizing the syntax of some often-used IRC commands like /invite, /kick or /ban. You’ll like it.
If you have a QVGA Pocket PC, on the other hand, you may definitely want to give mIRCy a try.
APPENDIX: The timeout problem
I’ve emphasized in Part I of this series that Pocket PC IRC clients are particularly sensitive to timeout issues.
‘Timeout’ means you don’t get direct feedback about the IRC server you (are supposed to) connect to not receiving your messages any more because, for example, the direct connection between you and the server has been broken, timed out. This can be caused by both IRC-specific problems and generic problems like the entire Pocket PC’s losing its Internet connection.
Not receiving any feedback, sadly, also means that, in cases, you may end up sending messages to your listeners even minutes after you’ve been disconnected. All these messages will be lost and will never be seen by the people you were speaking to (the "synchronous" IRC has no “memory”, unlike some much more modern also-asynchronous peer-to-peer (P2P) architectures like that of Skype – or, for that matter, the E-mail itself) unless you copy them to the clipboard (if your client is able to do this at all) and, then, paste them again into the channel / query windows as soon as you reconnect to the server.
Just to have a picture of what can happen to you in normal-day situations, here are the results of some of my real-world tests with current IRC applications, using two different servers: a well-known and usable-from-anywhere IRCNet (irc.stealth.net) and an EFNet (efnet.cs.hut.fi) one; using exactly the same circumstances on the client. All test have been done the same way: resetting my test Pocket PC (Dell Axim x51v A12; other models would have behaved the same way), booting in, starting the tested IRC client, connecting to the server via ActiveSync, logging into a channel so that my test clients logged into the channel can see everything’s all right and, then, just disconnecting the Pocket PC, starting the stopwatch. I’ve made sometimes several measurements with each client; the results are separated by commas.
As can be seen, all the tested applications (that is, all the really usable Pocket PC-based, native IRC applications), without exception, suffer from this problem, without an exception. In cases, you may end up sending out messages for even 20-30 minutes (!) without being notified of the broken connection.
Unfortunately, on the Pocket PC, using the current clients, it’s very hard to fight these kinds of errors because they don’t support for example timers to automatically send ping requests to anywhere, and manually pinging others every 1-2 minutes is quite awkward. To ease the pain and to implement the best possible solution, however, I recommend the following: if you have any friends you talk to with mIRC, you can ask them to enter the following command:
/timer 10000 10 msg your-nickname anymessage
or
/timer 10000 10 ping your-nickname
where 10 is (in seconds) the time messages and/or PING requests are sent to the client and 10000 is the amount requests are sent out. These values can be freely modified.
(If there is no one with this, just use the PING command.)
This way, if you just switch to the Status / server tab and/or the message window of the given user (canceling it being highlighted) and, then, switch back to your other windows, you can easily see even from other windows whether you’re still connected (see the red/ blue message/status window highlight here). You, of course, will need to often “clean” the “updated” flag by switching windows; if your IRC client supports switching tabs with the left/right D-pad (like mIRCy and unlike zsIRC or PocketIRC), it can be very easily done. Still, this way you can always be absolutely sure you’re still connected to the server and your friends can see you.
Note that your partners will see at once you’ve been disconnected (“EOF from client”), it’s “only” you that won’t notice this.
UPDATE (09/06/2006): PPCT frontpage; Appendix added.
Thanks for the write up. Always looking for improved IRC Clients.
Update: brand new Appendix added on generic timeout issues; (comparatively) minor additions and updates in the article
does someone knows IRC Client of the multi-servers supports?
i want to connect on a IRC Bouncer
MFG
Nullinga
PocketIRC 1.2.1 released – now, the always-on ClearType bug is fixed; additional color displaying tests with the four best Pocket PC IRC clients
It was just a few days ago that I’ve reported on the last, 1.2 version of PocketIRC, the great IRC client being released. Probably my biggest grief with the application (in addition to the still-missing logging capabilities) was the always-on ClearType.
Now, a new, 1.2.1 bugfix build has been released, which uses the system-level ClearType setting. This means it no longer uses ClearType when it’s not needed:
Unfortunately, there are no other changes; for example, still there is no logging.
Color rendering capabilities of the four best IRC clients (PocketIRC, wmIRC, zsIRC, mIRCy)
Now that I’ve tested PocketIRC’s ability to render (inverse) colors (see the above screenshot), I’ve also done the same to the new clients I’ve tested.
the free zsIRC and the commercial (!) mIRCy 1.0 don’t support them at all (neither normal nor inverse)
wmIRC 2.2 still doesn’t support inverse colors, only normal ones.
That is, color support-wise PocketIRC 1.2.1 is the best, wmIRC is the second and the others don’t support colors at all.
Nullinga said:
does someone knows IRC Client of the multi-servers supports?
i want to connect on a IRC Bouncer
MFG
Nullinga
Click to expand...
Click to collapse
There is none of them

[GUIDE]Complete guide for Galaxy 3 I5800/I5801

The Complete Guide For Galaxy 3 i5800/i5801
​
Index:
1) Android Basics
2) Galaxy 3 Features
3) Hardware
4) ROM Basics, Tutorials
5) Kernel Basics
6) Tools/Imp Download Links
7) Complete List of ROMs,Kernels for G3
8) FAQ
9) EPIC Fail Ideas for G3
Android Basics
1) Android Basics​
Introduction:
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Google Inc. purchased the initial developer of the software, Android Inc., in 2005. Android's mobile operating system is based on the Linux kernel. Google and other members of the Open Handset Alliance collaborated on Android's development and release. The Android Open Source Project (AOSP) is tasked with the maintenance and further development of Android. The Android operating system is currently the world's best-selling Smartphone platform.
Android has a large community of developers writing applications ("apps") that extend the functionality of the devices. There are currently over 200,000 apps available for Android. Android Market is the online app store run by Google, though apps can also be downloaded from third-party sites. Developers write primarily in the Java language, controlling the device via Google-developed Java libraries.
The unveiling of the Android distribution on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 80 hardware, software, and telecom companies devoted to advancing open standards for mobile devices. Google released most of the Android code under the Apache License, a free software and open source license.
The Android open-source software stack consists of Java applications running on a Java-based, object-oriented application framework on top of Java core libraries running on a Dalvik virtual machine featuring JIT compilation. Libraries written in C include the surface manager, OpenCore media framework, SQLite relational database management system, OpenGL ES 2.0 3D graphics API, WebKit layout engine, SGL graphics engine, SSL, and Bionic libc. The Android operating system, including the Linux kernel, consists of roughly 12 million lines of code including 3 million lines of XML, 2.8 million lines of C, 2.1 million lines of Java, and 1.75 million lines of C++.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Version history
2.1 Eclair
Changelog:
Sync: Expanded Account sync. Multiple accounts can be added to a device for email and contact synchronization
Email: Exchange support, Combined inbox to browse email from multiple accounts in one page.
Bluetooth: 2.1 support
Contacts: Tap a contact photo and select to call, SMS, or email the person.
Messaging: Search all saved SMS and MMS messages. Auto delete oldest messages in a conversation when a defined limit is reached.
Camera: Flash support, Digital zoom, Scene mode, White balance, Color effect, Macro focus
Virtual keyboard: Improved typing speed, smarter dictionary learns from word usage and includes contact names as suggestions.
Browser: Refreshed UI, Bookmark thumbnails, Double-tap zoom, Support for HTML5
Calendar: Agenda view enhanced, Attending status for each invitee, Invite new guests to events.
System: Optimized hardware speed, Revamped UI
Display: Support for more screen sizes and resolutions, Better contrast ratio
Maps: Improved Google Maps 3.1.2
MotionEvent class enhanced to track multi-touch events
Live Wallpapers: Home screen background images can be animated to show movement
2.2 Froyo
Changelog:
System: Speed, memory, and performance optimizations
Additional application speed improvements courtesy of JIT implementation
Integration of Chrome's V8 JavaScript engine into the Browser application
Improved Microsoft Exchange support (security policies, auto-discovery, GAL look-up, calendar synchronization, remote wipe)
Improved application launcher with shortcuts to Phone and Browser applications
USB tethering and Wi-Fi hotspot functionality
Added an option to disable data access over mobile network
Updated Market application with batch and automatic update features
Quick switching between multiple keyboard languages and their dictionaries
Voice dialing and contact sharing over Bluetooth
Support for numeric and alphanumeric passwords
Support for file upload fields in the Browser application
Support for installing applications to the expandable memory
Adobe Flash support
Support for extra high DPI screens (320 dpi), such as 4" 720p
2.3 Gingerbread
Changelog:
System: Updated user interface design for simplicity and speed
Display: Support for extra-large screen sizes and resolutions (WXGA and higher)
Internet calling: Native support for SIP VoIP telephony
Virtual Keyboard: Faster, more intuitive text input, improved accuracy, better suggested text. Voice input mode
Copy/Paste: Enhanced. Select a word by press-hold, copy, and paste.
Near Field Communication lets the user read an NFC tag embedded in a poster, sticker, or advertisement.
New audio effects such as reverb, equalization, headphone virtualization, and bass boost
System: Improved power management with a more active role in managing apps that are keeping the device awake for too long.
Download Manager gives the user easy access to any file downloaded from the browser, email, or another application.
Camera: Access multiple cameras on the device, including a front-facing camera, if available.
Media: Support for WebM/VP8 video playback, and AAC audio encoding
System: Enhanced support for native code development
Audio, graphical, and input enhancements for game developers
Concurrent garbage collection for increased performance
Native support for more sensors (such as gyroscopes and barometers)
Switched from YAFFS to ext4 on newer devices
Android Architecture
FEATURES OF ANDROID
Handset layouts The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications, and traditional smartphone layouts.
Storage SQLite, a lightweight relational database, is used for data storage purposes
Connectivity Android supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi (no connections through Proxy server and no Ad hoc wireless network), LTE, NFC and WiMAX.
Messaging SMS and MMS are available forms of messaging, including threaded text messaging and now Android Cloud To Device Messaging Framework(C2DM) is also a part of Android Push Messaging service.
Multiple Language Support Multiple languages are available on Android. The number of languages more than doubled for the platform 2.3 Gingerbread. Android lacks font rendering of several languages even after official announcements[citation needed] of added support (e.g. Hindi).
Web browser The web browser available in Android is based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine. The browser scores a 93/100 on the Acid3 Test.
Java support While most Android applications are written in Java, there is no Java Virtual Machine in the platform and Java byte code is not executed. Java classes are compiled into Dalvik executables and run on the Dalvik virtual machine. Dalvik is a specialized virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU. J2ME support can be provided via third-party applications.
Media support Android supports the following audio/video/still media formats: WebM, H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, FLAC, WAV, JPEG, PNG, GIF (though earlier versions do not support animated GIFs, BMP.
Streaming media support RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 <video> tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic Streaming are supported by the Flash plugin. Apple HTTP Live Streaming is supported by RealPlayer for Mobile, and by the operating system in Android 3.0 (Honeycomb). Microsoft Smooth Streaming is planned to be supported through the awaited port of Silverlight plugin to Android.
Additional hardware support Android can use video/still cameras, touchscreens, GPS, accelerometers, gyroscopes, magnetometers, dedicated gaming controls, proximity and pressure sensors, thermometers, accelerated 2D bit blits (with hardware orientation, scaling, pixel format conversion) and accelerated 3D graphics.
Multi-touch Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. The feature was originally disabled at the kernel level (possibly to avoid infringing Apple's patents on touch-screen technology at the time). Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively.
Bluetooth Supports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice dialing and sending contacts between phones. Keyboard, mouse and joystick (HID) support is available through manufacturer customizations and third-party applications. Full HID support is planned for Android 3.0 (Honeycomb).
Video calling Android does not provide native video calling support, but some handsets have a customized version of the operating system that support it, either via the UMTS network (like the Samsung Galaxy S) or over IP. Video calling through Google Talk is available in Android 2.3.4 and later.
Multitasking Multitasking of applications is available.
Voice based features Google search through voice has been available since initial release. Voice actions for calling, texting, navigation, etc. are supported on Android 2.2 onwards.
Tethering Android supports tethering, which allows a phone to be used as a wireless/wired hotspot. Prior to Android 2.2 this was supported by third-party applications or manufacturer customizations.
Screen Capture Android does not currently support screenshot capture. This is supported by manufacturer and third-party customizations.
2) Galaxy 3 Features​
General
2G Network GSM 850 / 900 / 1800 / 1900
3G Network HSDPA 900 / 2100
Announced 2010, June
Status Available. Released 2010, July
SIZE
I5801
Dimensions 113.5 x 55 x 12.6 mm
Weight 113 g
I5800
Dimensions 113.5 x 55 x 12.9 mm
Weight 109 g
DISPLAY
Type TFT capacitive touchscreen, 16M colors
Size 240 x 400 pixels, 3.2 inches
Features - Touch Wiz 3.0
- Accelerometer sensor for UI auto-rotate
- Proximity sensor for auto turn-off
- Multi-touch input method
SOUND
Alert types Vibration; MP3, WAV ringtones
Loudspeaker Yes
3.5mm jack Yes
- DNSe (Digital Natural Sound Engine)
MEMORY
Phonebook Practically unlimited entries and fields, Photocall
Call records Practically unlimited
Internal 512MB ROM, 256MB RAM
Card slot microSD, up to 32GB
DATA
GPRS Class 10 (4+1/3+2 slots), 32 - 48 kbps
EDGE Class 10, 236.8 kbps
3G HSDPA, 3.6 Mbps
WLAN Wi-Fi 802.11 b/g/n, Wi-Fi hotspot (Android 2.2)
Bluetooth Yes, v3.0 with A2DP
Infrared port No
USB Yes, v2.0 microUSB
CAMERA
Primary 3.15 MP, 2048x1536 pixels, autofocus
Features Geo-tagging, face and smile detection
Video Yes, [email protected]
Secondary No
SOFTWARE
OS Android OS, v2.1 (Eclair), upgradable to v2.2
CPU Samsung S5P6442 667 MHz processor
Messaging SMS(threaded view), MMS, Email, Push Mail, IM
Browser HTML
Radio Stereo FM radio with RDS
Games
Colors Black, White
GPS Yes, with A-GPS support
Java Yes, via Java MIDP emulator
- Orange Application Shop
- Orange Maps, Orange TV, Orange Push Email
- Contact Back & Restore, Orange Photo
- Digital compass
- MP4/DivX/XviD/WMV/H.264/H.263 player
- MP3/WAV/eAAC+ player
- Organizer
- Document editor(Word, Excel, PowerPoint, PDF)
- Google Search, Maps, Gmail, YouTube, Calendar, Google Talk integration
- Voice memo
- Predictive text input
BATTERY
Type Standard battery, Li-Ion 1500 mAh
Stand-by Up to 620 h (2G) / Up to 480 h (3G)
Talk time Up to 15 h 30 min (2G) / Up to 7 h 15 min (3G)
3) Hardware​
Processor: Samsung S5P6442 (It is modified version of S5P6440)
General Description
SAMSUNG's S5P6440, AKA "Vega-L", is the first member of the "Vega" Series, which is our newest family of Application Processors. Each Application Processor in the Vega Series will maintain a high level of compatibility with each other in order to allow for PND Makers to design their entire line-up of products on a single SoC platform.
The S5P6440 will be Samsung's first AP designed solely for PND's with a strong emphasis on high performance while maintaining cost competitiveness.
In terms of performance, the S5P6440 is run by a powerful ARM1176 processor running at 533MHz, 667MHz with a 64-bit AXI bus.
Additionally, the S5P6440 features both 2D Graphics HW and OpenVG HW, thus providing exceptional graphics acceleration for mainstream PND products. We have also focused heavily on providing optimum IP's and interfaces in order to reduce the Bill-of-Materials of the system as a whole. As an example, the S5P6440 features upgraded NAND Error Correction HW to be able to support next generation MLC NAND Flash devices. The S5P6440 also supports serial LCD protocols via the MIPI DSI standard, which allows for lower cost, lower EMI and simpler integration.
Block Diagram
Features
ARM1176JZF-S 533MHz, 667MHz, 16KB/16KB L1 Cache with Java acceleration Engine
Memory Subsystem
- NAND Flash Interface with x8 data bus, with 1/4/8/12/16-bit hardware ECC circuit and 4KB page mode
- Mobile DDR Interface with x16 or x32 data bus (up to 333Mbps/pin)
- DDR2 Interface with x16 or x32 data bus (up to 333Mbps/pin)
2D Graphics Accelerator with BitBlit and Rotation
Vector Graphics Accelerator with dedicated Anti-Aliasing HW
1/2/4/8 bpp Palletized or 8/16/24bpp Non-Palletized Color-TFT support up to 800x480
Serial LCD I/F support with MIPI DSI
- Two data lanes and one clock lane
4 channel UART: 1 channel muxed with IrDA SIR/FIR
1 channel I2S
2 channel I2C interface support
3 channel MMC/SDHC/SDIO (or 1 ch HS-MMC & 1 ch SD/MMC/SDIO)
On-chip USB 2.0 OTG controller and PHY transceiver supporting high speed
Real time clock, 3 PLL's, timer with PWM and watch dog timer
8 channel DMA controller
12 channel 12-bit ADC (Touch screen interface)
2 channel SPI: 1ch muxed with TSI (transport stream interface)
Configurable GPIOs
Technical Documents:
The Only Technical Document that we have currently is the User Manual of S3C6410 RISC Processor. It is not exactly same as S5P6442 but can be used as a reference.
Download S3C6410 User Manual
TouchScreen: ATMEL mXT224(AT42QT602240)
General Desciption
A 224-node highly configurable touchscreen controller that is part of the Atmel maXTouch product platform. An optimal and scalable architecture enables smart processing of a capacitive touch image to accurately regenerate and report the user’s interaction with the touchscreen. Multi-touch performance identifies and individually tracks touches and allows a range of built-in gestures to be reported to the host processor. The IC provides position data of 12-bit x 12-bit resolution, as well as information on the size and angle of touch. Position data is reported at >250Hz, providing fast and smooth finger tracking, making it suitable for use with demanding applications such as handwriting recognition. Due to the high signal-to-noise ratio (SNR) of up to 80:1, the device works well with fingertip touch and can also be used with a conductive stylus. It is designed to work in demanding, rapidly changing environments. Only the touchscreen area is touch-sensitive, allowing design freedom to place the chip on the main board or adjacent to the sensor. The device is ideally suited to mobile phone-sized touchscreens and can also be used on screens of up to 7", supporting single-touch or two-touch with a larger finger separation.
Technical Documents
mXT224 Datasheet
TFT LCD PANEL: Samsung S6D04D1
General Description
S6D04D1 is a single-chip display driver IC for a TFT-LCD panel. Integrated on this chip are source drivers with built-in
memory, gate drivers and power sources. S6D04D1 can support a TFT-LCD panel up to a resolution of 240-RGB x 432-
dot graphics with 16M-color. S6D04D1 also supports various types of peripheral interface such as 80-series MCU
interface (8-/9-/16-/18-/24-bits data), 3-wire 9bit / 4-wire 8bit serial interface, and MDDI(Mobile Display Digital Interface)
S6D04D1 supports various types of RGB interface (24-/18-/16-/8-/6-bits data).
The Integrated on-chip functions that are described in this document include:
- Power saving: It reduces the overall power consumed in a TFT-LCD panel module.
- Internal GRAM:
- Internal DC/DC voltage converter
- MIE (Mobile Image Enhancement) functions
S6D04D1 features several power saving functions to reduce the overall power consumed in a TFT-LCD panel module:
S6D04D1 operates at low voltage and has internal GRAMs that can store 240-RGB x 432-dot 16M-color image data. In
addition, it has an internal DC/DC voltage converter that generates various voltages needed for driving the TFT-LCD
panel by using breeder resistors and the voltage followers.
Features
A single-chip TFT-LCD Controller/gate driver/source driver with built-in Graphic RAM
Supported Display panel resolution: 240*R/G/B (H) * 432 (V) , 240*R/G/B (H) * 400 (V) & 240*R/G/B (H) * 320 (V)
Integrated 2,488,320bit of graphic RAM (GRAM)
-GRAM configuration: 240 x 432 x 24-bits = 2,488,320bits
Supported Interfaces
-3-wire 9-bit data, 4-wire 8-bit data serial interface (for RGB parallel Interface)
-8-/9-/16-/18-/24- bit interface with 80-Series MCU (so called 80-Series)
-VSYNC I/F
-MDDI(Mobile Display Digital Interface)
Outputs
-Common electrode output
-Gate outputs
-Source outputs
Color Display mode
-Full color mode (Idle mode off): 16M / 260k / 65k colors
-Reduced color mode (Idle mode on): 8-colors (3-bit binary mode)
Color modes on the display host interface
-16-bits/Pixel: RGB= (565) using the 1,843k bit frame memory
-18-bits/Pixel: RGB= (666) using the 1,843k bit frame memory
-24-bits/Pixel: RGB= (888) using the 1,843k bit frame memory
Display features
-Partial display mode
Driving scheme: line inversion & frame inversion
MIE (Mobile Image Enhancement) functions
-Adaptive luminance/contrast enhancement function.
-Reduce the power consumption of backlight.
SE ( Sharpness Enhancement) functions
On-chip functions
-Voltage Boosters
-Adjustable VCOM voltage source generator
-An oscillator for display clock generation & Timing generation
-Factory default value (Contrast, Module ID, Module version, etc) can be stored inside IC
-MTP (Multi-time Programmable) Memory
-MTP initialization & program voltages are generated automatically from the built-in power circuit.
-Each 8-bits product ID1, ID2, ID3
-6-bits VCM Offset adjustment
-Each 5-bits for VML, GVD Offset adjustment
-1 bit for MTP writing protection
Voltage Supplies
-2.3V – 3.3V for VCI, supply voltage for Analog blocks
-1.65V – 3.3V for VDD3, Supply voltage for I/O
Output voltage levels
-2.5V to 5.0V for GVDD, Source output voltage
-AVDD, Power supply for driver circuit (Note 1)
-Maximum 6.0V for VCOM, Common electrode output voltage
-11.25V to 16.50V for VGH, Positive Gate output voltage (Note 2, Note 3)
--13.75V to - 6.75V for VGL, Negative Gate output voltage (Note 2)
CMOS compatible inputs
COG package
Operating temperature range: -40℃ to +85℃
Technical Documents
S6D04D1 Datasheet
4) ROM Basics, Tutorials​
STOCK ROM
A stock ROM is the version of the phone's operating system that comes with your phone when you buy it.
Samsung letter code
AW-Hungary AZ-France BD-Cyprus, Greece BY-Greece CB-Poland CE-Benelux CP-Denmark, Finland, Norway, Sweden DB-Vietnam DC-Thailand DD-India DT-Australia DX-Indonesia, Malaysia, Philippines, Singapore, Vietnam DZ-Malaysia, Singapore JA-South Africa JC-Algeria, Morocco, Nigeria, South Africa, Tunisia JP-Arabic JR-Arabic JV-Algeria, Egypt, Iran, Iraq, Kuwait, Morocco, Nigeria, Oman, Pakistan, Saudi Arabia,South Africa, Syria, Tunisia, Turkey JW-West Africa JX-Algeria, Egypt, Iran, Iraq, Kuwait, Morocco, Nigeria, Oman, Pakistan, Saudi Arabia,South Africa, Syria, Tunisia, Turkey KA-Turkey ME-France MK-Serbia MS-France, Germany, Italy, Netherlands, Portugal, Spain, Turkey, UK MT-Switserland MY-Italy NH-Latvia PO-France PU-Russia UB-Brazil XA-Austria, France, Germany, Italy, Netherlands, Switzerland, United Kingdom XB-Denmark, Norway, Sweden XC-Portugal, Spain XD-Croatia, Czech, Hungary, Slovakia XE-Bulgaria, Estonia, Kazakhstan, Latvia, Lithuania, Russia, Ukraine XF-Bulgaria, Croatia, Romania XP-UK, France, Italy, Spain, Netherlands, Poland, Portuguese, Turkey XX-Austria, Belgium, France, Germany, Hungary, Italy, Spain, United Kingdom XW-Austria, Belgium, France, Germany, Hungary, Italy, Spain, United Kingdom ZC-China, Hong Kong ZH-Hong Kong ZS-China, Hong Kong ZT-Taiwan
Custom ROM
A custom ROM is a fully standalone version of the OS, including the kernel (which makes everything run), apps, services, etc - everything you need to operate the device, except it's customized by someone in some way.
So what does the "customized" part mean? Since Android is open source, developers are free to take stock ROMs, modify them, strip them of garbage, optimize them, add things, and pretty much do whatever their imagination and skills allow.
Flashing
Flashing Process is basically, installing a new ROM/Kernel, Stock/Custom, via Odin.
Odin is a software used to flash ROM's to the phone in the Download Mode.
Odin used for Galaxy 3 is v4.252.
Steps to follow:
1) Install Samsung Kies
2) Connect phone to PC and let it detect and install drivers automatically.
3) Download Odin with ops file from here.
4) Extract them to some folder.
5) Run Odin as Administrator.
6) Odin will now open.
7) Put phone in download mode. (Vol Down + HOME + POWER)
8) Connect Phone to PC via USB and wait till Odin shows detected.
9) Select One Package.
10) Select .ops file and .tar file for flashing.
11) Press Start button.
12) Wait till the message box on odin shows the following message and phone reboots.
13) You have now successfully flashed new ROM / Kernel.
Rooting
Rooting is a process that allows users of cellphones and other devices running the Android operating system to attain privileged control (known as "root access") within Android's Linux subsystem, similar to jailbreaking on Apple devices running the iOS operating system, overcoming limitations that the carriers and manufacturers put on such phones.
Most retail devices running the Android operating system must be rooted in order to install custom versions of the Android system such as CyanogenMod. This is because in the stock configuration (unrooted), user-installed applications do not have direct access to the flash memory chip on the device and, thus, are not able to replace or modify the operating system itself. Rooting is also necessary for certain applications and widgets that require additional system and hardware rights such as for rebooting the phone, certain backup utilities, and other access to other hardware such as status LEDs. Rooting is also needed to disable or remove manufacturer-installed applications such as City ID. Rooting the phone typically also includes installing an application called Superuser that supervises which applications are granted root rights.
Steps to follow:
1) Download SuperOneClick - Download
2) Run SuperOneClick
3) Press on Root
4) It will show "Waiting for device"
5) Put your phone in USB Debugging Mode.
6) Connect to PC via USB Cable.
7) Press Yes, for the subsequent messages that follow
8) Done
Deodexing
WHAT IS AN ODEX FILE?
In Android file system, applications come in packages with the extension .apk. These application packages, or APKs contain certain .odex files whose supposed function is to save space. These ‘odex’ files are actually collections of parts of an application that are optimized before booting. Doing so speeds up the boot process, as it preloads part of an application. On the other hand, it also makes hacking those applications difficult because a part of the coding has already been extracted to another location before execution.
THEN COMES DEODEX
Deodexing is basically repackaging of these APKs in a certain way, such that they are reassembled into classes.dex files. By doing that, all pieces of an application package are put together back in one place, thus eliminating the worry of a modified APK conflicting with some separate odexed parts.
In summary, Deodexed ROMs (or APKs) have all their application packages put back together in one place, allowing for easy modification such as theming. Since no pieces of code are coming from any external location, custom ROMs or APKs are always deodexed to ensure integrity.
HOW THIS WORKS
For the more geeky amongst us, Android OS uses a Java-based virtual machine for running applications, called the Dalvik Virtual Machine. A deodexed, or .dex file contains the cache used by this virtual machine (referred to as Dalvik-cache) for a program, and it is stored inside the APK. An .odex file, on the other hand, is an optimized version of this same .dex file that is stored next to the APK as opposed to inside it. Android applies this technique by default to all the system applications.
Now, when an Android-based system is booting, the davlik cache for the Davlik VM is built using these .odex files, allowing the OS to learn in advance what applications will be loaded, and thus speeds up the booting process.
By deodexing these APKs, a developer actually puts the .odex files back inside their respective APK packages. Since all code is now contained within the APK itself, it becomes possible to modify any application package without conflicting with the operating system’s execution environment.
ADVANTAGES & DISADVANTAGES
The advantage of deodexing is in modification possibilities. This is most widely used in custom ROMs and themes. A developer building a custom ROM would almost always choose to deodex the ROM package first, since that would not only allow him to modify various APKs, but also leave room for post-install theming.
On the other hand, since the .odex files were supposed to quickly build the dalvik cache, removing them would mean longer initial boot times. However, this is true only for the first ever boot after deodexing, since the cache would still get built over time as applications are used. Longer boot times may only be seen again if the dalvik cache is wiped for some reason.
For a casual user, the main implication is in theming possibilities. Themes for android come in APKs too, and if you want to modify any of those, you should always choose a dedoexed custom ROM.
Steps to follow:
1) Download xUltimate - Download
2) Run Main.exe
3) Press N to continue
4) Press Y to continue
5) You should get a complete menu
6) Connect phone to PC in USB Debugging Mode
7) Run Option 1
8) Run Option 2
9) Run Option 3
10) Run Option 4
11) You Will now have deodexed apps and framework files in done_app and done_frame folders.
12) Copy these folders where you have your adb setup.
13) Run the following Code
Code:
adb -d shell "mount -o remount,rw /dev/block/stl6 /system"
adb -d shell "stop"
adb -d shell "rm /system/app/*.apk"
adb -d shell "rm /system/app/*.odex"
adb -d shell "rm /system/framework/*.jar"
adb -d shell "rm /system/framework/*.odex"
adb -d push done_app /system/app/
adb -d push done_frame /system/framework/
adb reboot
14) Your phone should reboot successfully, and you now have a deodexed ROM.
Clean ROM
The following list of files you can delete to clean ROM
1) BuddiesNow
2) Dlna
3) DualClock
4) FlashSVGPlayer
5) HTMLViewer
6) InfoAlarm
7) InputEventApp
8) Layar-samsung
9) Maps
10) MobileTrackerEngineTwo
11) MobileTrackerUI
12) Protips
13) SamsungApps
14) SamsungWidget_CalendarClock
15) SamsungWidget_FeedAndUpdate
16) SamsungWidget_ProgramMonitor
17) SamsungWidget_StockClock
18) Street
19) UNAService
20) UnifiedInbox
21) VoiceRecorder
22) wipereceiver
23) WriteandGo
5) Kernel Basics​
dhirend_6d said:
What Is a Kernel?​
The UNIX kernel is the software that manages the user program's access to the systems hardware and software resources. These resources range from being granted CPU time, accessing memory, reading and writing to the disk drives, connecting to the network, and interacting with the terminal or GUI interface. The kernel makes this all possible by controlling and providing access to memory, processor, input/output devices, disk files, and special services to user programs.
Kernel Services
The basic UNIX kernel can be broken into four main subsystems:
Process Management
Memory Management
I/O Management
File Management
These subsystems should be viewed as separate entities that work in concert to provide services to a program that enable it to do meaningful work. These management subsystems make it possible for a user to access a database via a Web interface, print a report, or do something as complex as managing a 911 emergency system. At any moment in the system, numerous programs may request services from these subsystems. It is the kernel's responsibility to schedule work and, if the process is authorized, grant access to utilize these subsystems. In short, programs interact with the subsystems via software libraries and the systems call interface. We'll start by looking at how the UNIX kernel comes to life by way of the system initialization process.
System Initialization​
System initialization (booting) is the first step toward bringing your system into an operational state. A number of machine-dependent and machine-independent steps are gone through before your system is ready to begin servicing users. At system startup, there is nothing running on the Central Processing Unit (CPU). The kernel is a complex program that must have its binary image loaded at a specific address from some type of storage device, usually a disk drive. The boot disk maintains a small restricted area called the boot sector that contains a boot program that loads and initializes the kernel. You'll find that this is a vendor specific procedure that reflects the architectural hardware differences between the various UNIX vendor platforms. When this step is completed, the CPU must jump to a specific memory address and start executing the code at that location. Once the kernel is loaded, it goes through its own hardware and software initialization.
Kernel Mode​
The operating system, or kernel, runs in a privileged manner known as kernel mode. This mode of operation allows the kernel to run without being interfered with by other programs currently in the system. The microprocessor enforces this line of demarcation between user and kernel level mode. With the kernel operating in its own protected address space, it is guaranteed to maintain the integrity of its own data structures and that of other processes. (That's not to say that a privileged process could not inadvertently cause corruption within the kernel.) These data structures are used by the kernel to manage and control itself and any other programs that may be running in the system. If any of these data structures were allowed to be accidentally or intentionally altered, the system could quickly crash. Now that we have learned what a UNIX kernel is and how it is loaded into the system, we are ready to take a look at the four UNIX subsystems Process Management, Memory Management, Filesystem Management and I/O Management.
Process Management​
The Process Management subsystem controls the creation, termination, accounting, and scheduling of processes. It also oversees process state transitions and the switching between privileged and nonprivileged modes of execution. The Process Management subsystem also facilitates and manages the complex task of the creation of child processes.
A simple definition of a process is that it is an executing program. It is an entity that requires system resources, and it has a finite lifetime. It has the capability to create other processes via the system call interface. In short, it is an electronic representation of a user's or programmer's desire to accomplish some useful piece of work. A process may appear to the user as if it is the only job running in the machine. This "sleight of hand" is only an illusion. At any one time a processor is only executing a single process.
Process Structure​
A process has a definite structure (see Figure 19.1). The kernel views this string of bits as the process image. This binary image consists of both a user and system address space as well as registers that store the process's data during its execution. The user address space is also known as the user image. This is the code that is written by a programmer and compiled into an ".o " object file. An object file is a file that contains machine language code/data and is in a format that the linker program can use to then create an executable program.
Diagram of process areas.​
The user address space consists of five separate areas: Text, Data, Bss, stack, and user area.
Text Segment The first area of a process is its text segment. This area contains the executable program code for the process. This area is shared by other processes that execute the program. It is therefore fixed and unchangeable and is usually swapped out to disk by the system when memory gets too tight.
Data Area The data area contains both the global and static variables used by the program. For example, a programmer may know in advance that a certain data variable needs to be set to a certain value. In the C programming language, it would look like:
Code:
int x = 15;
If you were to look at the data segment when the program was loaded, you would see that the variable x was an integer type with an initial value of 15.
Bss Area The bss area, like the data area, holds information for the programs variables. The difference is that the bss area maintains variables that will have their data values assigned to them during the programs execution. For example, a programmer may know that she needs variables to hold certain data that will be input by a user during the execution of the program.
Code:
int a,b,c; // a,b and c are variables that hold integer values.
char *ptr; // ptr is an unitialized character pointer.
The program code can also make calls to library routines like malloc to obtain a chunk of memory and assign it to a variable like the one declared above.
Stack Area The stack area maintains the process's local variables, parameters used in functions, and values returned by functions. For example, a program may contain code that calls another block of code (possibly written by someone else). The calling block of code passes data to the receiving block of code by way of the stack. The called block of code then process's the data and returns data back to the calling code. The stack plays an important role in allowing a process to work with temporary data.
User Area The user area maintains data that is used by the kernel while the process is running. The user area contains the real and effective user identifiers, real and effective group identifiers, current directory, and a list of open files. Sizes of the text, data, and stack areas, as well as pointers to process data structures, are maintained. Other areas that can be considered part of the process's address space are the heap, private shared libraries data, shared libraries, and shared memory. During initial startup and execution of the program, the kernel allocates the memory and creates the necessary structures to maintain these areas.
The user area is used by the kernel to manage the process. This area maintains the majority of the accounting information for a process. It is part of the process address space and is only used by the kernel while the process is executing(see Figure 19.2). When the process is not executing, its user area may be swapped out to disk by the Memory Manager. In most versions of UNIX, the user area is mapped to a fixed virtual memory address. Under HP-UX 10.X, this virtual address is 0x7FFE6000. When the kernel performs a context switch (starts executing a different process) to a new process, it will always map the process's physical address to this virtual address. Since the kernel already has a pointer fixed to this location in memory, it is a simple matter of referencing the current u pointer to be able to begin managing the newly switched in process. The file /usr/include/sys/user.h contains the user area's structure definition for your version of UNIX.
Diagram of kernel address space.​
Process Table The process table is another important structure used by the kernel to manage the processes in the system. The process table is an array of process structures that the kernel uses to manage the execution of programs. Each table entry defines a process that the kernel has created. The process table is always resident in the computer's memory. This is because the kernel is repeatedly querying and updating this table as it switches processes in and out of the CPU. For those processes that are not currently executing, their process table structures are being updated by the kernel for scheduling purposes. The process structures for your system are defined in /usr/include/sys/proc.h.
Fork Process The kernel provides each process with the tools to duplicate itself for the purpose of creating a new process. This new entity is termed a child process. The fork() system call is invoked by an existing process (termed the parent process) and creates a replica of the parent process. While a process will have one parent, it can spawn many children. The new child process inherits certain attributes from its parent.
Process Run States​
A process moves between several states during its lifetime, although a process can only be in one state at any one time. Certain events, such as system interrupts, blocking of resources, or software traps will cause a process to change its run state. The kernel maintains queues in memory that it uses to assign a process to based upon that process's state. It keeps track of the process by its user ID.
UNIX version System V Release 4 (SVR4) recognizes the following process run states:
Code:
- SIDLE This is the state right after a process has issued
a fork() system call. A process image has yet to be copied into memory.
- SRUN The process is ready to run and is waiting to be executed by the CPU.
- SONPROC The process is currently being executed by the CPU.
- SSLEEP The process is blocking on an event or resource.
- SZOMB The process has terminated and is waiting on
either its parent or the init process to allow it to completely exit.
- SXBRK The process is has been switched out so that another process can be executed.
- SSTOP The process is stopped.[/COLOR]
When a process first starts, the kernel allocates it a slot in the process table and places the process in the SIDL state. Once the process has the resources it needs to run, the kernel places it onto the run queue. The process is now in the SRUN state awaiting its turn in the CPU. Once its turn comes for the process to be switched into the CPU, the kernel will tag it as being in the SONPROC state. In this state, the process will execute in either user or kernel mode. User mode is where the process is executing nonprivileged code from the user's compiled program. Kernel mode is where kernel code is being executed from the kernel's privileged address space via a system call.
At some point the process is switched out of the CPU because it has either been signaled to do so (for instance, the user issues a stop signal--SSTOP state) or the process has exceeded its quota of allowable CPU time and the kernel needs the CPU to do some work for another process. The act of switching the focus of the CPU from one process to another is called a context switch. When this occurs, the process enters what is known as the SXBRK state. If the process still needs to run and is waiting for another system resource, such as disk services, it will enter the SSLEEP state until the resource is available and the kernel wakes the process up and places it on the SRUN queue. When the process has finally completed its work and is ready to terminate, it enters the SZOMB state. We have seen the fundamentals of what states a process can exist in and how it moves through them. Let's now learn how a kernel schedules a process to run.
Process Scheduler​
Most modern versions of UNIX (for instance, SVR4 and Solaris 2.x) are classified as preemptive operating systems. They are capable of interrupting an executing a process and "freezing" it so that the CPU can service a different process. This obviously has the advantage of fairly allocating the system's resources to all the processes in the system. This is one goal of the many systems architects and programmers who design and write schedulers. The disadvantages are that not all processes are equal and that complex algorithms must be designed and implemented as kernel code in order to maintain the illusion that each user process is running as if it was the only job in the system. The kernel maintains this balance by placing processes in the various priority queues or run queues and apportioning its CPU time-slice based on its priority class (Real-Time versus Timeshare).
Memory Management​
Random access memory (RAM) is a very critical component in any computer system. It's the one component that always seems to be in short supply on most systems. Unfortunately, most organizations' budgets don't allow for the purchase of all the memory that their technical staff feel is necessary to support all their projects. Luckily, UNIX allows us to execute all sorts of programs without, what appears at first glance to be, enough physical memory. This comes in very handy when the system is required to support a user community that needs to execute an organization's custom and commercial software to gain access to its data.
Memory chips are high-speed electronic devices that plug directly into your computer. Main memory is also called core memory by some technicians. Ever heard of a core dump? (Writing out main memory to a storage device for post-dump analysis.) Usually it is caused by a program or system crash or failure. An important aspect of memory chips is that they can store data at specific locations called addresses. This makes it quite convenient for another hardware device called the central processing unit (CPU) to access these locations to run your programs. The kernel uses a paging and segmentation arrangement to organize process memory. This is where the memory management subsystem plays a significant role. Memory management can be defined as the efficient managing and sharing of the system's memory resources by the kernel and user processes.
Memory management follows certain rules that manage both physical and virtual memory. Since we already have an idea of what a physical memory chip or card is, we will provide a definition of virtual memory. Virtual memory is where the addressable memory locations that a process can be mapped into are independent of the physical address space of the CPU. Generally speaking, a process can exceed the physical address space/size of main memory and still load and execute.
The systems administrator should be aware that just because she has a fixed amount of physical memory, she should not expect it all to be available to execute user programs. The kernel is always resident in main memory and depending upon the kernel's configuration (tunable-like kernel tables, daemons, device drivers loaded, and so on), the amount left over can be classified as available memory. It is important for the systems administrator to know how much available memory the system has to work with when supporting his environment. Most systems display memory statistics during boot time. If your kernel is larger than it needs to be to support your environment, consider reconfiguring a smaller kernel to free up resources.
We learned before that a process has a well-defined structure and has certain specific control data structures that the kernel uses to manage the process during its system lifetime. One of the more important data structures that the kernel uses is the virtual address space (vas in HP-UX and as in SVR4. For a more detailed description of the layout of these structures, look at the vas.h or as.h header files under /usr/include on your system.).
A virtual address space exists for each process and is used by the process to keep track of process logical segments or regions that point to specific segments of the process's text (code), data, u_area, user, and kernel stacks; shared memory; shared library; and memory mapped file segments. Per-process regions protect and maintain the number of pages mapped into the segments. Each segment has a virtual address space segment as well. Multiple programs can share the process's text segment. The data segment holds the process's initialized and uninitialized (BSS) data. These areas can change size as the program executes.
The u_area and kernel stack contain information used by the kernel, and are a fixed size. The user stack is contained in the u_area; however, its size will fluctuate during its execution. Memory mapped files allow programmers to bring files into memory and work with them while in memory. Obviously, there is a limit to the size of the file you can load into memory (check your system documentation). Shared memory segments are usually set up and used by a process to share data with other processes. For example, a programmer may want to be able to pass messages to other programs by writing to a shared memory segment and having the receiving programs attach to that specific shared memory segment and read the message. Shared libraries allow programs to link to commonly used code at runtime. Shared libraries reduce the amount of memory needed by executing programs because only one copy of the code is required to be in memory. Each program will access the code at that memory location when necessary.
When a programmer writes and compiles a program, the compiler generates the object file from the source code. The linker program (ld) links the object file with the appropriate libraries and, if necessary, other object files to generate the executable program. The executable program contains virtual addresses that are converted into physical memory addresses when the program is run. This address translation must occur prior to the program being loaded into memory so that the CPU can reference the actual code.
When the program starts to run, the kernel sets up its data structures (proc, virtual address space, per-process region) and begins to execute the process in user mode. Eventually, the process will access a page that's not in main memory (for instance, the pages in its working set are not in main memory). This is called a page fault. When this occurs, the kernel puts the process to sleep, switches from user mode to kernel mode, and attempts to load the page that the process was requesting to be loaded. The kernel searches for the page by locating the per-process region where the virtual address is located. It then goes to the segments (text, data, or other) per-process region to find the actual region that contains the information necessary to read in the page.
The kernel must now find a free page in which to load the process's requested page. If there are no free pages, the kernel must either page or swap out pages to make room for the new page request. Once there is some free space, the kernel pages in a block of pages from disk. This block contains the requested page plus additional pages that may be used by the process. Finally the kernel establishes the permissions and sets the protections for the newly loaded pages. The kernel wakes the process and switches back to user mode so the process can begin executing using the requested page. Pages are not brought into memory until the process requests them for execution. This is why the system is referred to as a demand paging system.
The memory management unit is a hardware component that handles the translation of virtual address spaces to physical memory addresses. The memory management unit also prevents a process from accessing another process's address space unless it is permitted to do so (protection fault). Memory is thus protected at the page level. The Translation Lookaside Buffer (TLB) is a hardware cache that maintains the most recently used virtual address space to physical address translations. It is controlled by the memory management unit to reduce the number of address translations that occur on the system.
Input and Output Management​​
The simplest definition of input/output is the control of data between hardware devices and software. A systems administrator is concerned with I/O at two separate levels. The first level is concerned with I/O between user address space and kernel address space; the second level is concerned with I/O between kernel address space and physical hardware devices. When data is written to disk, the first level of the I/O subsystem copies the data from user space to kernel space. Data is then passed from the kernel address space to the second level of the I/O subsystem. This is when the physical hardware device activates its own I/O subsystems, which determine the best location for the data on the available disks.
The OEM (Original Equipment Manufacture) UNIX configuration is satisfactory for many work environments, but does not take into consideration the network traffic or the behavior of specific applications on your system. Systems administrators find that they need to reconfigure the systems I/O to meet the expectations of the users and the demands of their applications. You should use the default configuration as a starting point and, as experience is gained with the demands on the system resources, tune the system to achieve peak I/O performance.
UNIX comes with a wide variety of tools that monitor system performance. Learning to use these tools will help you determine whether a performance problem is hardware or software related. Using these tools will help you determine whether a problem is poor user training, application tuning, system maintenance, or system configuration. sar, iostat, and monitor are some of your best basic I/O performance monitoring tools.
1) sar The sar command writes to standard output the contents of selected cumulative activity counters in the operating system. The following list is a breakdown of those activity counters that sar accumulates.
* File access
* Buffer usage
* system call activity
* Disk and tape input/output activity
* Free memory and swap space
* Kernel Memory Allocation (KMA)
* Interprocess communication
* Paging
* Queue Activity
* Central Processing Unit (CPU)
* Kernel tables
* Switching
* Terminal device activity
2) iostat Reports CPU statistics and input/output statistics for TTY devices, disks, and CD-ROMs.
3) monitor Like the sar command, but with a visual representation of the computer state.
RAM I/O​
The memory subsystem comes into effect when the programs start requesting access to more physical RAM memory than is installed on your system. Once this point is reached, UNIX will start I/O processes called paging and swapping. This is when kernel procedures start moving pages of stored memory out to the paging or swap areas defined on your hard drives. (This procedure reflects how swap files work in Windows by Microsoft for a PC.) All UNIX systems use these procedures to free physical memory for reuse by other programs. The drawback to this is that once paging and swapping have started, system performance decreases rapidly. The system will continue using these techniques until demands for physical RAM drop to the amount that is installed on your system. There are only two physical states for memory performance on your system: Either you have enough RAM or you don't, and performance drops through the floor.
Memory performance problems are simple to diagnose; either you have enough memory or your system is thrashing. Computer systems start thrashing when more resources are dedicated to moving memory (paging and swapping) from RAM to the hard drives. Performance decreases as the CPUs and all subsystems become dedicated to trying to free physical RAM for themselves and other processes.
This summary doesn't do justice, however, to the complexity of memory management nor does it help you to deal with problems as they arise. To provide the background to understand these problems, we need to discuss virtual memory activity in more detail.
We have been discussing two memory processes: paging and swapping. These two processes help UNIX fulfill memory requirements for all processes. UNIX systems employ both paging and swapping to reduce I/O traffic and execute better control over the system's total aggregate memory. Keep in mind that paging and swapping are temporary measures; they cannot fix the underlying problem of low physical RAM memory.
Swapping moves entire idle processes to disk for reclamation of memory, and is a normal procedure for the UNIX operating system. When the idle process is called by the system again, it will copy the memory image from the disk swap area back into RAM.
On systems performing paging and swapping, swapping occurs in two separate situations. Swapping is often a part of normal housekeeping. Jobs that sleep for more that 20 seconds are considered idle and may be swapped out at any time. Swapping is also an emergency technique used to combat extreme memory shortages. Remember our definition of thrashing; this is when a system is in trouble. Some system administrators sum this up very well by calling it "desperation swapping."
Paging, on the other hand, moves individual pages (or pieces) of processes to disk and reclaims the freed memory, with most of the process remaining loaded in memory. Paging employs an algorithm to monitor usage of the pages, to leave recently accessed pages in physical memory, and to move idle pages into disk storage. This allows for optimum performance of I/O and reduces the amount of I/O traffic that swapping would normally require.
NOTE: Monitoring what the system is doing is easy with the ps command. ps is a "process status" command on all UNIX systems and typically shows many idle and swapped-out jobs. This command has a rich amount of options to show you what the computer is doing.
I/O performance management, like all administrative tasks, is a continual process. Generating performance statistics on a routine basis will assist in identifying and correcting potential problems before they have an impact on your system or, worst case, your users. UNIX offers basic system usage statistics packages that will assist you in automatically collecting and examining usage statistics.
You will find the load on the system will increase rapidly as new jobs are submitted and resources are not freed quickly enough. Performance drops as the disks become I/O bound trying to satisfy paging and swapping calls. Memory overload quickly forces a system to become I/O and CPU bound.
Filesystem Concept​
Filesystem is the collection place on disk device(s) for files. Visualize the filesystem as consisting of a single node at the highest level (ROOT) and all other nodes descending from the root node in a tree-like fashion (see Figure 19.5) . The second meaning will be used for this discussion, and Hewlett Packard's High-performance Filesystem will be used for technical reference purposes.
Diagram of a Android' s hierarchical filesystem.​
The superblock is the key to maintaining the filesystem. It's an 8 KB block of disk space that maintains the current status of the filesystem. Because of its importance, a copy is maintained in memory and at each cylinder group within the filesystem. The copy in main memory is updated as events transpire. The update daemon is the actual process that calls on the kernel to flush the cached superblocks, modified inodes, and cached data blocks to disk. The superblock maintains the following static and dynamic information about the
Click to expand...
Click to collapse
6) Tools/Imp Download Links​
rickslick said:
Samsung USB drivers(no more kies) for 32bit and 64bit windows: Driver
Adb with ncessary dll : Click here
Flashing tools(odin+ops):click here
Click to expand...
Click to collapse
7) Complete List of ROMs,Kernels for G3​
dhirend_6d said:
GINGERBREAD BASED ROMS : -
CYANOGENMOD 7 AND GINGERBREAD AOSP by Marcellusbe.
AOSP FROYO BASED ROMS : -
CYANOGENMOD 6.2 by Marcellusbe.
SAMSUNG FROYO BASED ROMS : -
1) G3MOD ROM by DharamG3 and G3Mod team.
2) KYRILLOS' ROM by Kyrillos13.
3) INDROID by Rudolf895, Arunmcops, Neeljinwala, Akash, Chirayu.
4) DUTCHMODS by Werker123.
5) DESTINY by Hodostamas.
6) KYORAROM by Hillbeast.
7) STYLOO' S AOSP STYLE ROM by Styloo.
8) LESTATIOUS ROM by The Dark Lestat.
9) GRIGORA ROM by RafayelG.
10) SUMEE ROM by Ash!sh.
11) STOCK DEODEXED ROOTED ROMS by DharamG3.
12) DHARAM' S ROM COLLECTION by DharamG3.
13) SAMSUNG STOCK FIRMWARES (WITHOUT BOOTLOADERS) by Kyrillos13.
14) IBREAD.NITESH by Niteshtak.
15) GREENMODS POX by Jazux, Akash, Pauri, s3th.g3ck0.
16) ATROM by Dpthakar.
17) SPEEDMOD ROM by Styloo and DharamG3.
18) RAFO' S ROM by RafayelG.
19) REAPER REVIVAL ROM by Jihaa.
20) APOCALYPSE by ARMVKDevs.
21) BURAK' S ROM by Burak721.
22) CYANOBROZZU MOD ROM by Superfancy97.
23) OUM ROM by Revant.
24) THE PEOPLE' S ROM by Shekhargreen.
25) GALACTIC BLUE ROM by Cdesai, Shubhamchamaria, Aarun.
26) PSYCHOTIK ROM by TotorLeTaureau
27) [KERNEL+ROM] APOLLO by Apollo5801
28) THE BLUE by Abhi0n0nakul.
KERNELS : -
KERNELS BY DHARAM AND TEAM G3MOD : -
1) G3Mod Kernels for Froyo.
2) G3Mod Kernels for CM 6.2.
All the kernels of G3Mod along with changelog and features can be found here.
KERNELS BY MARCELLUSBE : -
1) FuguMod 2.4 Beta 3 (JFS/REISERFS Supported), 800 Mhz Edition.
2) FuguMod 2.4 Beta 3 (JFS/REISERFS Supported), Standard Edition.
3) FuguMod 2.4 Beta 3, 800 MHz Edition.
4) FuguMod 2.4 Beta 3, Standard Edition.
5) FuguMod 2.2 Bleeding Edge Edition.
6) FuguMod 2.2 Standard Edition.
Link to all the above kernels here.
For features and changelog see here.
7) FuguMod Ultra.
KERNELS BY APOLLO5801 : -
Dual Boot kernel.
KERNELS BY GSAM101 : -
SAM' S KERNEL V0.1.
Click to expand...
Click to collapse
8) FAQ For G3​
9) EPIC Fail Ideas for G3​
hillbeast said:
Seeing nobody has posted any real epic fail ideas, I will post one: I saw a guy wanting to post iOS to our phone. Now I can understand an iOS skin, but why would we want an OS that can't even handle multitasking properly and replace the glory of Android with Steve Jobs' locked down nutjob OS?
Click to expand...
Click to collapse
Credits​
1) Android Basics
http://www.wikipedia.org/
http://developer.android.com/index.html
2) Galaxy 3 Features
www.gsmarena.com
3) Hardware
http://www.samsung.com/
http://www.atmel.com
4) ROM Basics/Tutorails
Flashing - BraveBuddy
dharamg3 said:
Credits​
rudolf895, jazux and sekhargreen for their tutorials and how-to's....
loads more too come...i will add as i add the context...
but thanks to all the developers doing the wonderful work for Galaxy 3
Click to expand...
Click to collapse
Damn this is going to be a long one because you reserved 10 posts good luck
jazux said:
Damn this is going to be a long one because you reserved 10 posts good luck
Click to expand...
Click to collapse
just wait and see..hoping to cover everything
dharamg3 said:
Credits​
rudolf895, jazux and sekhargreen for their tutorials and how-to's....
loads more too come...i will add as i add the context...
but thanks to all the developers doing the wonderful work for Galaxy 3
Click to expand...
Click to collapse
Hi,
It is good to get all the stuff at one place.
Let me know if any help needed.
sekhargreen said:
Hi,
It is good to get all the stuff at one place.
Let me know if any help needed.
Click to expand...
Click to collapse
sure, you can give me links here on what all can be added...
you can call the topic: "the ultimate guide for the galaxy 3"
vonuzu said:
you can call the topic: "the ultimate guide for the galaxy 3"
Click to expand...
Click to collapse
let me start off...it will take time to make it the ultimate
Android Basics Added to start off...Much More To Come
NICE WORK! Im definetly going to mail the xda newswriter about this
done in week you are going to be in news, for sure
This subject topic will be the most significant added value to this forum:
For the new members (sometime old once) that are joining the G3 revolution (and this is happing here), there is a need to provide them the basics before they can dive into elements such as: Custom ROM's, Kernel's...etc.
Myself as a junior user and others will greatly appreciate this new introduced topic.

[LOTK]Android Terms,Slang,Definitions & Laiman Terms Android Guides UPDATED! 07/26/13

[LOTK]Android Terms,Slang,Definitions & Laiman Terms Android Guides UPDATED! 07/26/13
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
1 OF 12 PAGES...
Watch these informative videos and start reading....
Contents:
Page 1:Terms,Slang & Definitions
Page 2:Governors Explained
Page 3:Android Versions
Page 4:Laiman Terms Android Guides
Page 5:Laiman Terms Android Guides Continued...
Page 6:Terms,Slang & Definitions Continued...
Page 7:Android Permissions & Security Explained...
Page 8:Android Permissions & Security Explained Continued...
Page 9:Android Permissions & Security Explained Continued...
Page 10:Laiman Terms Android Guides Continued...
Page 11:Terms,Slang & Definitions Continued...
Page 12:Laiman Terms Android Guides Continued...
Page 13:Laiman Terms Android Guides Continued...
Author Comments:
I figured i would post this thread to help all of the new members and experienced alike,understand the Android slang,there are actually a few i did'nt know the meaning of until i made this thread.I have compiled most of the terms,definitions and slang i could dig up,if theres anything i missed,let me know and i will add it to the thread,otherwise i will update this thread as new slang,terms and definitions are presented to me.
If you would like to learn more about this and other great Android learning,go over to XDA-University and learn how to set-up and use the android environment.
Apps2SD:A method of storing applications and cache on the device's microSD card.
ADB:Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It is a client-server program that includes three components:
•A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.
•A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.
•A daemon, which runs as a background process on each emulator or device instance.
Android:A Linux-based operating system for mobile devices such as HTC EVO.Versions are alphabetically codenamed after snacks: Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Donut.
AMOLED:Active Matrix Organic Light Emitting Diode. Basically, a very colorful, bright, display found in some smartphones.
APK:Android application package file. Each Android application is compiled and packaged in a single file that includes all of the application's code (.dex files), resources, assets, and manifest file. The application package file can have any name but must use the .apk extension. For example: myExampleAppname.apk. For convenience, an application package file is often referred to as an ".apk".
Alpha:The alpha phase of the release life cycle is the first phase to begin software testing (alpha is the first letter of the Greek alphabet, used as the number 1). In this phase, developers generally test the software using white box techniques. Additional validation is then performed using black box or gray box techniques, by another testing team. Moving to black box testing inside the organization is known as alpha release.[1]
Alpha software can be unstable and could cause crashes or data loss. The exception to this is when the alpha is available publicly (such as a pre-order bonus), in which developers normally push for stability so that their testers can test properly. External availability of alpha software is uncommon in proprietary software. However, open source software, in particular, often have publicly available alpha versions, often distributed as the raw source code of the software.
The alpha phase usually ends with a feature freeze, indicating that no more features will be added to the software. At this time, the software is said to be a feature complete.
Boot Animation:Boot animation is a term for a graphical representation of the boot process of the operating system.
Boot animation can be a simple visualisation of the scrolling boot messages in the console, but it can also present graphics or some combinations of both.
Unlike splash screens, boot screen or boot animation is not necessarily designed for marketing purposes, but can be to enhance the experience of the user as eye candy, or provide the user with messages (with an added advantage of color coding facility) to diagnose the state of the system.
Bootloader:This small program's only job is to load other data and programs which are then executed from RAM.Often, multiple-stage boot loaders are used, during which several programs of increasing complexity load one after the other in a process of chain loading.
Bootloop:When your system recycles over and over without entering the main OS.
Beta: is the software development phase following alpha. It generally begins when the software is feature complete. Software in the beta phase will generally have many more bugs in it than completed software, as well as speed/performance issues. The focus of beta testing is reducing impacts to users, often incorporating usability testing. The process of delivering a beta version to the users is called beta release and this is typically the first time that the software is available outside of the organization that developed it.
The users of a beta version are called beta testers. They are usually customers or prospective customers of the organization that develops the software, willing to test the software without charge, often receiving the final software free of charge or for a reduced price.
Beta version software is often useful for demonstrations and previews within an organization and to prospective customers. Some developers refer to this stage as a preview, prototype, technical preview (TP), or early access.
Some software is kept in perpetual beta—where new features and functionality is continually added to the software without establishing a firm "final" release.
CPU:It stands for Central Processing Unit and handles all the complex mathematical formulas necessary to do everyday things like surfing the Internet.
Custom:Independent developers who like to customize their devices beyond the standard options provided often tend to release the fruits of their labor for the rest to enjoy, in form of custom ROMs.
Cache:A component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere. If requested data is contained in the cache (cache hit), this request can be served by simply reading the cache, which is comparatively faster. Otherwise (cache miss), the data has to be recomputed or fetched from its original storage location, which is comparatively slower. Hence, the greater the number of requests that can be served from the cache, the faster the overall system performance becomes.
CDMA:Mobile phone standards called cdmaOne, CDMA2000 (the 3G evolution of cdmaOne) and WCDMA (the 3G standard used by GSM carriers), which are often referred to as simply CDMA, and use CDMA as an underlying channel access method.
CIQ:Carrier IQ. A piece of preinstalled software that runs with elevated access in the background of portable devices by default and records everything. Potentially can be exploited to steal information.
Dual Core:A dual core processor is a central processing unit (CPU) that has two separate cores on the same die, each with its own cache. It essentially is two microprocessors in one. This type of CPU is widely available from many manufacturers. Other types of multi-core processors also have been developed, including quad-core processors with four cores each, hexa-core processors with six, octa-core processors with eight and many-core processors with an even larger number of cores.
Dalvik:The Android platform's virtual machine. The Dalvik VM is an interpreter-only virtual machine that executes files in the Dalvik Executable (.dex) format, a format that is optimized for efficient storage and memory-mappable execution.
Dalvik Cache:Writable cache that contains the optimized bytecode of all apk files (apps) on your Android device. Having the information in it's own cache makes applications load faster and perform better.
EXT.(Extended File System):The extended file system, or ext, was implemented in 1992 as the first file system created specifically for the Linux kernel. It has metadata structure inspired by the traditional Unix File System and was designed by Rémy Card. It was the first implementation that used the virtual file system and it could handle file systems up to 2 gigabytes in size.
The ext2, ext3 and ext4 file systems were all derived from this one. Most ext discussions center around ext3 and ext4 in the Android world.
ext3 is a journaled file system that is commonly used by the Linux kernel. Its main advantage over ext2 is journaling, which improves reliability and eliminates the need to check the file system after an unclean shutdown. Generally, ext3 is slower than competing Linux filesystems, such as ext4, JFS, ReiserFS and XFS, but it has a significant advantage in that it allows in-place upgrades from ext2 without having to back up and restore data. Benchmarks suggest that ext3 also uses less CPU power than ReiserFS and XFS. It is also considered safer than the other Linux file systems, due to its relative simplicity and wider testing base. ext3 does not do checksumming when writing to the journal and if the hardware is doing out-of-order write caching, you run the risk of severe filesystem corruption during a crash.
ext4 was created as a series of backward compatible extensions to ext3. In January 2010, Google announced that it would upgrade its storage infrastructure from ext2 to ext4. In December 2010, they also announced they would use ext4, instead of YAFFS, on Android. The ext4 advantages include large file system support, extents, persistent pre-allocation and journal checksumming.
FC/FC's:Short for "force close," meaning an app that has crashed.
Fastboot:A diagnostic protocol used primarily to modify the flash filesystem in Android smartphones from another computer over a USB connection. It is part of the Android Debug Bridge library.
Utilizing the Fastboot protocol requires that the device be started in a boot loader or Second Program Loader mode in which only the most basic hardware initialization is performed. After enabling the protocol on the device itself it will accept any command sent to it over USB via a command line. Some of most commonly used fastboot commands include:
•flash - Overwrites a partition in flash with a binary image stored on the host computer.
•erase - Erases a partition in flash.
•reboot - Reboots the device into the either the main operating system or the system recovery partition.
•devices - Displays a list of all devices (with Serial #) connected to the host computer.
Flashing:The ROM memory used in smartphones and tablets etc. is often same as flash memory found in SD cards and USB flash drives, simply optimized for better speed and performance while running the operating system.
Hotspot:A spot that offers Internet access over a wireless local area network through the use of a router connected to a link to an Internet service provider. Hotspots typically use Wi-Fi technology.You can connect wifi campatible devices to it.
HDMI:High-Definition Multimedia Interface) is a compact audio/video interface for transmitting encrypted uncompressed digital data.It is a digital alternative to consumer analog standards, such as radio frequency (RF) coaxial cable, composite video, S-Video, SCART, component video, D-Terminal, or VGA (also called D-sub or DE-15F). HDMI connects digital audio/video sources (such as set-top boxes, DVD players, HD DVD players, Blu-ray Disc players, AVCHD camcorders, personal computers (PCs), video game consoles (such as the PlayStation 3 and Xbox 360), AV receivers, tablet computers, and mobile phones) to compatible digital audio devices, computer monitors, video projectors, and digital televisions.
Hboot:It’s mainly responsible for checking and initializing the hardware and starting the phone’s software. It can also be used for flashing official software releases, as well as a few other things. HBoot can be compared to the BIOS on a computer.
HAVS:a control system that dynamically adjusts the voltage based on CPU load. This has proven to be a battery saver, but it can actually have the opposite effect when multiple control systems are operating (like setCPU).
JIT:The Just-in-Time Compiler. Released with Android 2.2, it's a method of greatly speeding up apps in Android on the software side.
Kang:Someone writes a code,someone else modifies the code to make their own release,its concidered a kang release.
Kernel:A kernel is a layer of code that allows the OS and applications to interface with your phone's hardware. The degree in which you can access your phone's hardware features depends on the quality of code in the kernel. The homebrew (rooting) community for HTC has made several kernel code improvements that give us additional features from our hardware that the stock kernel does not. When you flash a custom ROM, you automatically get a kernel. But you can also flash a standalone kernel ROM on top of the existing one, effectively overwriting it. These days, the difference in custom kernels is less about new features and more about alternate configurations. Choosing a custom kernel is basically choosing one that works best with your ROM.
Launcher:Collectively, the part of the Android user interface on home screens that lets you launch apps, make phone calls, etc. Is built in to Android, or can be purchased in the Android Market.
LCD Density:Pixel density is a measurement of the resolution of devices in various contexts; typically computer displays, image scanners, and digital camera image sensors.
First of all you need to understand that the Android User Interface uses something called a "display independent pixel" or a "dip" (yes, it's confusing because the density settings are in "dots per inch" or "dpi" which are considered the same as "ppi" or "pixels per inch" as well).
The default LCD Density setting on Android is 160 dpi. As far as the operating system is concerned 1 dip @ 160 dpi = 1 screen pixel. It doesn't mean that's actually true, but you've gotta start somewhere. In my opinion it would have been a lot nicer if they'd chosen 100 dpi because then it would be an easy percentage thing, but they didn't so we're stuck with this formula.
Mod:The act of modifying a piece of hardware or software or anything else for that matter, to perform a function not originally conceived or intended by the designer.
NILFS:(New Implementation of a Log-structured File System) is a log-structured file system for Linux. It is being developed by Nippon Telegraph and Telephone Corporation (NTT) CyberSpace Laboratories. It uses a copy-on-write technique known as "nothing in life is free", NILFS records all data in a continuous log-like format that is only appended to, never overwritten, a design intended to reduce seek times, as well as minimize the kind of data loss that occurs after a crash with conventional file systems. For example, data loss occurs on ext3 file systems when the system crashes during a write operation. When the system reboots, the journal notes that the write did not complete, and any partial data writes are lost. NILFS also includes fast write and recovery times, minimal damage to file data and system consistency on hardware failure, 32-bit checksums, etc.
Android kernels do not routinely include NILFS although mods to make it available can be found.
Nandroid:Nandroid is used to backup or restore backups from Recovery. You can chose to either do a regular backup (Phone only) or a backup + sd-ext (Phone + Apps2sd ext.)Both will backup your whole system, the second will include apps saved on your sdcard’s sd-ext.
Nightly:A build that is performed at the end of each day of development. If you use a continuous integration server, it will generally be configured to build the code and run the unit tests on every check in. At the end of each day you may want to run more extensive tests, regression test and integration tests for example, which take too long to run on each check in and these would be triggered after the nightly build. If you have a full continuously delivery pipeline the nightly build may also be used to deploy the built code to environments for user testing.
OpenGL ES:Android provides OpenGL ES libraries that you can use for fast, complex 3D images. It is harder to use than a Canvas object, but better for 3D objects. The android.opengl and javax.microedition.khronos.opengles packages expose OpenGL ES functionality.
Open & Closed Beta:Developers release either a closed beta or an open beta; closed beta versions are released to a select group of individuals for a user test and are invitation only, while open betas are from a larger group to the general public and anyone interested. The testers report any bugs that they find, and sometimes suggest additional features they think should be available in the final version.
Overclock:To increase the speed of your CPU.
Partition:The phone's internal memory (not the SD card) is solid-state (flash) memory, AKA NAND. It can be partitioned much like a normal hard drive can be partitioned. The bootloader exists in its own partition. Recovery is another partition; radio, system, cache, etc are all partitions.
Here are the standard partitions on an Android phone:
/misc - not sure what this is for.
/boot - bootloader, kernel
/recovery - holds the recovery program (either clockworkmod or RA recovery for a rooted Evo)
/system - operating system goes here: Android, Sense, boot animation, Sprint crapware, busybox, etc
/cache - cached data from OS usage
/data - user applications, data, settings, etc.
The below partitions are not android-specific. They are tied to the hardware of the phone, but the kernel may have code allowing Android to interact with said hardware.
/radio - the phone's radio firmware, controls cellular, data, GPS, bluetooth.
/wimax - firmware for Sprint's flavor of 4G, WiMax.
PRL:The Preferred Roaming List, basically a way of telling your phone which towers to connect to first.
RUU:a complete software package released by HTC, it can contain many things they are trying to update. Radio, ROM, bootloader, etc... Installing an ruu is like installing an image on a hard drive it wipes the phone and installs the image. It will wipe everything data and all so if you install one be prepared.
Recovery:The recovery partition is a boot-mode for your phone that allows you to wipe your settings from the Data partition of the phone (a hard wipe), or perform an update using an update.zip file on the root of the microSD card. It is common (although not necessary) to flash a patched Recovery image, such as TWRP or ClockworkMod Recovery. This allows you to run Nandroid backup from the device, and flash modifications, such as files to the device, essentially becoming a means to install software to the device. Recovery mode is separate from ‘normal’ mode, and can be entered by holding down home whilst turning the phone on.
Rom/Firmware:Read-Only Memory and technically speaking, it refers to the internal storage of a device, which is supposed to contain the operating system instructions that needn’t be modified at all during the device’s normal operation.
Radios:On the HTC side of things,the radios persist of:
•WiFi, which operates at 2.4-5ghz depending on what channel it's running
•Cellular/3G, which carries voice and data
•4G/WiMAX, which only carries data
•GPS, which is receive-only
•Bluetooth, which talks to WiiMotes and headsets
Flashing a radio means updating the code that controls the phones way of sending and recieving a signal.
Ram:(Random Access Memory) A group of memory chips, typically of the dynamic RAM (DRAM) type, which function as the computer's primary workspace. When personal computers first came on the market in the late 1970s, 64KB (64 kilobytes) of RAM was the upper limit. Today, 64MB (64 megabytes) of SDRAM is entry level for a desktop computer, a thousand times as much (see SDRAM).
The "random" in RAM means that the contents of each byte of storage in the chip can be directly accessed without regard to the bytes before or after it. This is also true of other types of memory chips, including ROMs and PROMs. However, unlike ROMs and PROMs, RAM chips require power to maintain their content, which is why you must save your data onto disk before you turn the computer off. To learn about the types of RAM chips and how to upgrade your memory, see memory module. To learn how memory is used to process data, see computer or memory. See also dynamic RAM and static RAM.
Root:The first level of a folder.
Rooting:A process allowing users of mobile phones, tablet PCs, and other devices running the Android operating system to attain privileged control (known as "root access") within Android's subsystem. Rooting is often performed with the goal of overcoming limitations that carriers and hardware manufacturers put on some devices, resulting in the ability to alter or replace system applications and settings, run specialized apps that require administrator-level permissions, or perform other operations that are otherwise inaccessible to a normal Android user. Rooting is analogous to jailbreaking devices running the Apple iOS operating system or the Sony PlayStation 3. On Android, rooting can also facilitate the complete removal and replacement of the device's operating system.
SBC:(the ability to charge your battery beyond the default safe limit). The concept is similar to overclocking a processor: you're overriding the safety limits established to achieve additional performance. The benefit here is that you may gain more use of your battery per charge. The drawback is that you can damage the battery and significantly reduce its longevity. Some kernels claim they are using a safe technique to prevent battery damage. Just be aware of the potential risks.
Sideloading:It means installing applications without using the official Android Market.
Splash Screen:A splash screen is an image that appears while android is loading.Splash screens cover the entire screen or simply a rectangle near the center of the screen. The splash screens of operating systems and some applications that expect to be run full-screen usually cover the entire screen.
Superuser/SU:On many computer operating systems, the superuser is a special user account used for system administration. Depending on the operating system, the actual name of this account might be: root, administrator or supervisor.
Normal work on such a system is done using ordinary user accounts, and because these do not have the ability to make system-wide changes any viruses and other malware - or simple user errors - do not have the ability to adversly affect a whole system. In organizations, administrative privileges are often reserved for authorized experienced individuals.
Script:The Scripting Layer for Android (abridged as SL4A, and previously named Android Scripting Environment or ASE) is a library that allows the creation and running of scripts written in various scripting languages directly on Android devices. SL4A is designed for developers and is still alpha quality software.
These scripts have access to many of the APIs available to normal Java Android applications, but with a simplified interface. Scripts can be run interactively in a terminal, in the background, or via Locale.
SDK:(SDK or "devkit") is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.
Stock:This is the operating system in its default form, without any modifications made to it except for any device-specific support required to run it on the particular device.
S-On:Security on,means no acces to the phones operating system.
S-Off:Security was exploited,now have access to the operating system.
Tethering:Means sharing the Internet connection of an Internet-capable mobile phone with other devices. This sharing can be offered over a wireless LAN (Wi-Fi), Bluetooth, or by physical connection using a cable. In the case of tethering over wireless LAN, the feature may be branded as a mobile hotspot.The Internet-connected mobile phone acts as a portable router when providing tethering services to others.
Userspace(Governor):This governor, exceptionally rare for the world of mobile devices, allows any program executed by the user to set the CPU's operating frequency. This governor is more common amongst servers or desktop PCs where an application (like a power profile app) needs privileges to set the CPU clockspeed.
Underclock:To reduce the speed of your CPU.
Undervolt:Undervolting means taking some of the voltage from the CPU which in return gives a longer battery life and lower temperature during intensive use of the CPU.
USB:Stands for Universal Serial Bus. Is a method of connecting devices to a computer. Most smartphones now use microUSB cables to charge and sync.
Updater Script:When Android devices install updates via 'update.zip' files using recovery mode they have to perform a wide range of functions on files and permissions. Instead of using a minimal shell such as {b,d,c}sh the Android designers decided to create a small functional language that can be extended by device manufacturers if necessary. Since the Android "Donut" release (v1.6) the scripting language is called Edify and is defined primarily in the bootable/recovery/{edify,edifyscripting,updater} directories of the Android source-code tree.
Wireless N:Wireless N technology increases wireless internet connection. Wireless 'N' routers also work with Wireless 'G' and 'B' wireless adapters.
WiiMax:(Worldwide Interoperability for Microwave Access) is a communication technology for wirelessly delivering high-speed Internet service to large geographical areas.
CONTINUED ON PAGE 2...
Page 3:Android Versions
CONTINUED FROM PAGE 2
3 OF 10 PAGES...
1.0:Android 1.0, the first commercial version of the software, was released on 23 September 2008.The first Android device, the HTC Dream (G1), incorporated the following Android 1.0 features:
•Android Market application download and updates through the Market app
•Web browser to show, zoom and pan full HTML and XHTML web pages – multiple pages show as windows ("cards")
•Camera support – however this version lacked the option to change the camera's resolution, white balance, quality, etc.
•Folders allowing the grouping of a number of app icons into a single folder icon on the Home screen.
•Access to web email servers, supporting POP3, IMAP4, and SMTP.
•Gmail synchronization with the Gmail app
•Google Contacts synchronization with the People app
•Google Calendar synchronization with the Calendar app
•Google Maps with Latitude and Street View to view maps and satellite imagery, as well as find local business and obtain driving directions using GPS
•Google Sync, allowing management of over-the-air synchronization of Gmail, People, and Calendar
•Google Search, allowing users to search the Internet and phone apps, contacts, calendar, etc
•Google Talk instant messaging
•Instant messaging, text messaging, and MMS
•Media Player, enabling management, importing, and playback of media files – however, this version lacked video and stereo Bluetooth support
•Notifications appear in the Status bar, with options to set ringtone, LED or vibration alerts
•Voice Dialer allows dialing and placing of phone calls without typing a name or number
•Wallpaper allows the user to set the background image or photo behind the Home screen icons and widgets
•YouTube video player
•Other apps include: Alarm Clock, Calculator, Dialer (Phone), Home screen (launcher), Pictures (Gallery), and Settings.
•Wi-Fi and Bluetooth support
1.1:On 9 February 2009, the Android 1.1 update was released, initially for the T-Mobile G1 only. The update resolved bugs, changed the API and added a number of other features:
•Details and reviews available when a user searches for businesses on Maps
•Longer in-call screen timeout default when using the speakerphone, plus ability to show/hide dialpad
•Ability to save attachments in messages
•Support added for marquee in system layouts
Cupcake:On 30 April 2009, the Android 1.5 update, dubbed Cupcake, was released, based on Linux kernel 2.6.27.The update included several new features and UI amendments:
•Support for third-party virtual keyboards with text prediction and user dictionary for custom words
•Support for Widgets - miniature application views that can be embedded in other applications (such as the Home screen) and receive periodic updates
•Video recording and playback in MPEG-4 and 3GP formats
•Auto-pairing and stereo support for Bluetooth added (A2DP and AVRCP profiles)
•Copy and paste features added to web browser
•User pictures shown for Favorites in Contacts
•Specific date/time stamp shown for events in call log, and one-touch access to a contact card from call log event
•Animated screen transitions
•Ability to upload videos to YouTube
•Ability to upload photos to Picasa
Donut:On 15 September 2009, the Android 1.6 SDK – dubbed Donut – was released, based on Linux kernel 2.6.29.Included in the update were numerous new features:
•Voice and text entry search enhanced to include bookmark history, contacts, and the web
•Ability for developers to include their content in search results
•Multi-lingual speech synthesis engine to allow any Android application to "speak" a string of text
•Easier searching and ability to view app screenshots in Android Market
•Gallery, camera and camcorder more fully integrated, with faster camera access
•Ability for users to select multiple photos for deletion
•Updated technology support for CDMA/EVDO, 802.1x, VPNs, and a text-to-speech engine
•Support for WVGA screen resolutions
•Speed improvements in searching and camera applications
•Expanded Gesture framework and new GestureBuilder development tool
Eclair:On 26 October 2009, the Android 2.0 SDK – codenamed Eclair – was released, based on Linux kernel 2.6.29.Changes included:
•Expanded Account sync, allowing users to add multiple accounts to a device for email- and contact-synchronization
•Exchange email support, with combined inbox to browse email from multiple accounts in one page
•Bluetooth 2.1 support
•Ability to tap a Contacts photo and select to call, SMS, or email the person
•Ability to search all saved SMS and MMS messages, with delete oldest messages in a conversation automatically deleted when a defined limit is reached
•Numerous new camera features, including flash support, digital zoom, scene mode, white balance, color effect and macro focus
•Improved typing speed on virtual keyboard, with smarter dictionary that learns from word usage and includes contact names as suggestions
•Refreshed browser UI with bookmark thumbnails, double-tap zoom and support for HTML5
•Calendar agenda view enhanced, showing attending status for each invitee, and ability to invite new guests to events
•Optimized hardware speed and revamped UI
•Support for more screen sizes and resolutions, with better contrast ratio
•Improved Google Maps 3.1.2
•MotionEvent class enhanced to track multi-touch events
•Addition of live wallpapers, allowing the animation of home-screen background images to show movement
2.0.1:The Android 2.0.1 SDK was released on 3 December 2009.It was a minor platform release deployable to Android-powered handsets, including minor API changes, bug fixes and framework behavioral changes
2.1:The 2.1 SDK was released on 12 January 2010.It was a minor platform release deployable to Android-powered handsets, including minor amendments to the API and bug fixes.
Froyo:On 20 May 2010, the Android 2.2 (Froyo) SDK was released, based on Linux kernel 2.6.32.Its features included:
•Speed, memory, and performance optimizations
•Additional application speed improvements, implemented through JIT compilation
•Integration of Chrome's V8 JavaScript engine into the Browser application
•Support for the Android Cloud to Device Messaging (C2DM) service, enabling push notifications
•Improved Microsoft Exchange support, including security policies, auto-discovery, GAL look-up, calendar synchronization and remote wipe
•Improved application launcher with shortcuts to Phone and Browser applications
•USB tethering and Wi-Fi hotspot functionality
•Added an option to disable data access over mobile network
•Updated Market application with batch and automatic update features
•Quick switching between multiple keyboard languages and their dictionaries
•Voice dialing and contact sharing over Bluetooth
•Support for Bluetooth-enabled car and desk docks
•Support for numeric and alphanumeric passwords
•Support for file upload fields in the Browser application
•Support for installing applications to the expandable memory
•Adobe Flash support
•Support for extra-high-PPI screens (320 ppi), such as 4" 720p
•Gallery allows users to view picture stacks using a zoom gesture
2.2.1:The Android 2.2.1 update was released on 18 January 2011, and included a number of bug fixes, security updates, and performance improvements.
2.2.2:The Android 2.2.2 update was released on 22 January 2011, and fixed minor bugs, including SMS routing issues that affected the Nexus One.
2.2.3:The Android 2.2.3 update was released on 21 November 2011, and consisted of two security patches.
Gingerbread:On 6 December 2010, the Android 2.3 (Gingerbread) SDK was released, based on Linux kernel 2.6.35.Changes included:
•Updated user interface design with increased simplicity and speed
•Support for extra-large screen sizes and resolutions (WXGA and higher)
•Native support for SIP VoIP internet telephony
•Faster, more intuitive text input in virtual keyboard, with improved accuracy,better suggested text and voice input mode
•Enhanced copy/paste functionality, allowing users to select a word by press-hold, copy, and paste
•Support for Near Field Communication (NFC), allowing the user to read an NFC tag embedded in a poster, sticker, or advertisement
•New audio effects such as reverb, equalization, headphone virtualization, and bass boost
•New Download Manager, giving users easy access to any file downloaded from the browser, email, or another application
•Support for multiple cameras on the device, including a front-facing camera, if available
•Support for WebM/VP8 video playback, and AAC audio encoding
•Improved power management with a more active role in managing apps that are keeping the device awake for too long
•Enhanced support for native code development
•Switched from YAFFS to ext4 on newer devices
•Audio, graphical, and input enhancements for game developers
•Concurrent garbage collection for increased performance
•Native support for more sensors (such as gyroscopes and barometers)
2.2.3:Released on 9 February 2011, Android 2.3.3 included several improvements and API fixes
2.3.4:Version 2.3.4 introduced support for voice or video chat using Google Talk.
2.3.5:Released on 25 July 2011, Android 2.3.5 included a number of system enhancements:
•Improved network performance for the Nexus S 4G, among other fixes and improvements
•Fixed Bluetooth bug on Samsung Galaxy S
•Improved Gmail application
•Shadow animations for list scrolling
•Camera software enhancements
•Improved battery efficiency
2.3.6:Released on 2 September 2011, this version fixed a voice search bug. The 2.3.6 update had the side-effect of impairing the Wi-Fi hotspot functionality of many Canadian Nexus S phones. Google acknowledged this problem and fixed it in late September.
2.3.7:Android 2.3.7 introduced Google Wallet support for the Nexus S 4G.
Honeycomb:On 22 February 2011, the Android 3.0 (Honeycomb) SDK – the first tablet-only Android update – was released, based on Linux kernel 2.6.36.The first device featuring this version, the Motorola Xoom tablet, was released on 24 February 2011.Changes included:
•Optimized tablet support with a new virtual and “holographic” user interface
•Added System Bar, featuring quick access to notifications, status, and soft navigation buttons, available at the bottom of the screen
•Added Action Bar, giving access to contextual options, navigation, widgets, or other types of content at the top of the screen
•Simplified multitasking – tapping Recent Apps in the System Bar allows users to see snapshots of the tasks underway and quickly jump from one app to another
•Redesigned keyboard, making typing fast, efficient and accurate on larger screen sizes
•Simplified, more intuitive copy/paste interface
•Multiple browser tabs replacing browser windows, plus form auto-fill and a new “incognito” mode allowing anonymous browsing
•Quick access to camera exposure, focus, flash, zoom, front-facing camera, time-lapse, and more
•Ability to view albums and other collections in full-screen mode in Gallery, with easy access to thumbnails for other photos
•New two-pane Contacts UI and Fast Scroll to let users easily organize and locate contacts
•New two-pane Email UI to make viewing and organizing messages more efficient, allowing users to select one or more messages
•Support for video chat using Google Talk
•Hardware acceleration
•Support for multi-core processors
•Ability to encrypt all user data
3.1:The 3.1 SDK was released on 10 May 2011.Changes included:
•UI refinements
•Connectivity for USB accessories
•Expanded Recent Apps list
•Resizable Home screen widgets
•Support for external keyboards and pointing devices
•Support for joysticks and gamepads
•Support for FLAC audio playback
•High-performance Wi-Fi lock, maintaining high-performance Wi-Fi connections when device screen is off
•Support for HTTP proxy for each connected Wi-Fi access point
3.2:The 3.2 SDK was released on 15 July 2011,first appearing on Huawei's MediaPad tablet.Changes included:
•Improved hardware support, including optimizations for a wider range of tablets
•Increased ability of apps to access files on the SD card, e.g. for synchronization
•Compatibility display mode for apps that have not been optimized for tablet screen resolutions
•New display support functions, giving developers more control over display appearance on different Android devices
3.2.1:The Android 3.2.1 update was released on 20 September 2011, and included a number of amendments:
•Bug fixes and minor security, stability and Wi-Fi improvements
•Update to Android Market with automatic updates and easier-to-read Terms and Condition text
•Update to Google Books
•Improved Adobe Flash support in browser
•Improved Chinese handwriting prediction
3.2.2:The 3.2.2 update was released on 30 August 2011, and included bug fixes and other minor improvements for the Motorola Xoom 4G.
Ice Cream Sandwhich:Android 4.0 – codenamed Ice Cream Sandwich, and based on Linux kernel 3.0.1– was previewed at the May 2011 Google I/O event,and officially launched at the Galaxy Nexus and Ice Cream Sandwich release event on 19 October 2011.
•Enhanced speed and performance
•Virtual buttons in the UI, in place of capacitive or physical buttons
•Separation of widgets in a new tab, listed in a similar manner to apps
•Easier-to-create folders, with a drag-and-drop style
•A customizable launcher
•Improved visual voicemail with the ability to speed up or slow down voicemail messages
•Pinch-to-zoom functionality in the calendar
•Offline search, a two-line preview, and new action bar at the bottom of the Gmail app
•Ability to swipe left or right to switch between Gmail conversations
•Integrated screenshot capture (accomplished by holding down the Power and Volume-Down buttons)
•Improved error correction on the keyboard
•Ability to access apps directly from lock screen (similar to HTC Sense 3.x)
•Improved copy and paste functionality
•Better voice integration and continuous, real-time speech to text dictation
•Face Unlock, a feature that allows users to unlock handsets using facial recognition software
•New tabbed web browser, allowing up to 16 tabs
•Automatic syncing of browser with users' Chrome bookmarks
•A new typeface family for the UI, Roboto
•Data Usage section in settings that lets users set warnings when they approach a certain usage limit, and disable data use when the limit is exceeded
•Ability to shut down apps that are using data in the background
•Improved camera app with zero shutter lag, time lapse settings, panorama mode, and the ability to zoom while recording
•Built-in photo editor
•New gallery layout, organized by location and person
•Refreshed "People" app with social network integration, status updates and hi-res images
•Android Beam, a near-field communication feature allowing the rapid short-range exchange of web bookmarks, contact info, directions, YouTube videos and other data
•Hardware acceleration of the UI
•Resizeable widgets – already part of Android 3.1 for tablets, but new for cellphones
•Wi-Fi Direct
•1080p video recording for stock Android devices
4.0.2:The Android 4.0.2 update was released on 28 November 2011,and fixed minor bugs on the Verizon Galaxy Nexus,the US launch of which was later delayed until December 2011.
4.0.3:The Android 4.0.3 update was first released on 16 December 2011.It included a number of bug fixes and optimizations, and offered improvements to graphics, databases, spell-checking and Bluetooth functionality,along with new APIs for developers,including a social stream API in the Contacts provider. Other features included Calendar provider enhancements, new camera apps enhancing video stabilization and QVGA resolution, and accessibility refinements such as improved content access for screen readers.
4.1 Jelly Bean:The report also mentions some interesting features that originally planned in the presence of ice Cream Sandwich is likely to be postponed and will be displayed on the jelly bean.
Reportedly,this is because these features are not ready until it came time to release the ice cream sandwiches.Google itself has not confirmed anything regarding this information.
Android 4.1, Jelly Bean, is the fastest and smoothest version of Android yet. Jelly Bean improves on the simplicity and beauty of Android 4.0, and introduces a new Google search experience on Android.
Jelly Bean features improved performance throughout the system, including faster orientation changes, faster responses when switching between recent apps, and smoother and more consistent rendering across the system through vsync and triple buffering.
Jelly Bean has more reactive and uniform touch responses, and makes your device even more responsive by boosting your device's CPU instantly when you touch the screen, and turns it down when you don't need it to improve battery life.
MIUI
(pronounced "Me You I", a play on the common abbreviation of the words user interface as UI),developed by Xiaomi Tech, is an aftermarket firmware for cell phones based on the open-source Android operating system. It features a heavily-modified user interface that does away with the Android app drawer and has drawn comparisons with Apple's iOS.It includes additional functionality not found in stock Android, including toggles on the notification pull-down, new music, gallery, and camera apps, and an altered phone dialer that displays matching contacts as a user enters a number.
MIUI is based on Android 2.3.7 and CyanogenMod 7.1 sources, and was initially developed in the Chinese language by Chinese startup Xiaomi.Xiaomi added a number of apps to enhance the basic framework; those include MITalk (a Blackberry Messenger clone),MINotes,MIBackup,MIMusic,and MIGallery.MIUI is made up of two parts, MI and UI, where UI stands for User Interface and MI, as stated by Xiaomi CEO Lei Jun, stands for Mobile Internet and Mission Impossible.
The modified operating system has been criticized for being similar to iOS.Due to the fact that MIUI is developed in China, some features that are not relevant to the Chinese market, such as WiMax support, are unavailable on MIUI, and without access to the source code, it is not possible for 3rd parties to easily add this support.
AOSP
The Android Open Source Project (AOSP) is led by Google, and is tasked with the maintenance and development of Android.According to the project "The goal of the Android Open Source Project is to create a successful real-world product that improves the mobile experience for end users."AOSP also maintains the Android Compatibility Program, defining an "Android compatible" device "as one that can run any application written by third-party developers using the Android SDK and NDK", to prevent incompatible Android implementations.The compatibility program is also optional and free of charge, with the Compatibility Test Suite also free and open-source.
Sense
HTC Sense is a graphical user interface developed by HTC Corporation for mobile devices running Android, Brew and Windows Mobile.Based on the TouchFLO 3D design,HTC has referred to HTC Sense as both a user interface in itself and also as a user experience layer on top of TouchFLO 3D.Announced June 24, 2009, the first phone running Android to feature HTC Sense was the HTC Hero,and the first Windows Phone to feature HTC Sense (an updated TouchFLO) was the HTC HD2,announced October 6, 2009.
At the Mobile World Congress 2010, HTC showed their new updated HTC Sense UI to debut on the HTC Desire and HTC Legend, with an upgrade available for the Hero and Magic. The new version is based upon Android 2.1 and has new interface features such as the Friend Stream widget (which aggregates all Twitter, Facebook and Flickr information) and Leap, which allows access to all the home screens at once.
Smartphones including the HTC EVO 3D and the HTC Sensation feature HTC Sense 3.0, which has major visual and functional changes to HTC Sense, including a new lock screen which allows users to access their favorite applications directly. Only HTC Sensation and later devices will run HTC Sense 3.0, but older devices will still get some of the new features from HTC Sense 3.0 via an over-the-air update.[citation needed]
While the Windows Mobile version of Sense is the successor to TouchFLO 3D, with information featured on separate tabs, the Android version presents information through Android desktop widgets and applications, and includes launcher, app drawer, and lock screen replacements.
Cyanogenmod:is an open source replacement firmware for smart phones and tablet computers based on the Android mobile operating system. It offers features and options not found in the official firmware distributed by vendors of these devices.
Features supported by CyanogenMod include native theming support, FLAC audio codec support, a large Access Point Name list, an OpenVPN client, an enhanced reboot menu, support for Wi-Fi, Bluetooth, and USB tethering, CPU overclocking and other performance enhancements, soft buttons and other "tablet tweaks", toggles in the notification pull-down (such as Wi-Fi, Bluetooth and GPS), app permissions management, as well as other interface enhancements. According to its developers, CyanogenMod does not contain spyware or bloatware.CyanogenMod is also stated to increase performance and reliability compared with official firmware releases.
CyanogenMod is developed as free and open source software based on the official releases of Android by Google, with added original and third-party code.
Although only a subset of total CyanogenMod users elect to report their use of the firmware, as of 24 August 2012, CyanogenMod has recorded over 3.1 million installs on a multitude of devices.
AOKP:AOKP stands for Android Open Kang Project. It is a custom ROM distribution for many Android devices. The name is a play on the word “kang” and AOSP (Android Open Source Project). The name was sort of a joke, but it just stuck, just like our infatuation with unicorns.
AOKP Versions
We have two different kinds of releases — Builds and Milestones. Builds are considered “nightlies” — they are released usually every week or two (sometimes even sooner, if there are any major bugs to fix). We have no set release schedule, we release Builds and Milestones as we feel they are ready.
Milestones: Most stable releases.
Builds: Newest releases with bleeding edge features and code.
Pacman:Paranoid + Aokp + Cyanogen = PACman
ROMs are compiled from source for Xperia Ray which is a msm7x30 device and is ported to Doubleshot [Mytouch 4g Slide] . This is a minimal port but with a lot of work done. It is still based on AOSP+CM source codes. The ROM packs all the tweaks from the three super ROMs into one.
4.2:Google was expected to announce Jelly Bean 4.2 at an event in New York City on 29 October 2012, but the event was cancelled due to Hurricane Sandy.Instead of rescheduling the live event, Google announced the new version with a press release, under the slogan "A new flavor of Jelly Bean". The first devices to run Android 4.2 were LG's Nexus 4 and Samsung's Nexus 10, which were released on 13 November 2012.
Android 4.2 takes the speed and simplicity of Jelly Bean to a different level – a completely new camera experience that’s beyond smart, a new form of typing that helps you power through your messages, and much more.
CONTINUED ON PAGE 4...
Page 2:Terms,Slang & Definitions(Governors Explained)
CONTINUED FROM PAGE 1
2 OF 10 PAGES...
Baseband: is an adjective that describes signals and systems whose range of frequencies is measured from close to 0 hertz to a cut-off frequency, a maximum bandwidth or highest signal frequency; it is sometimes used as a noun for a band of frequencies starting close to zero. Baseband can often be considered a synonym to lowpass or non-modulated, and antonym to passband, bandpass, carrier-modulated or radio frequency (RF).
Brazilianwax(Governor):Similar to smartassV2. More aggressive ramping, so more performance, less battery
BFS:Brain Fxck Scheduler for Linux was created by veteran kernel programmer Con Kolivas and has been reported to improve responsiveness on light-NUMA (non-uniform memory access) Linux mobile devices and desktop computers with fewer than 16 cores.
Conservative(Governor):This biases the phone to prefer the lowest possible clockspeed as often as possible. In other words, a larger and more persistent load must be placed on the CPU before the conservative governor will be prompted to raise the CPU clockspeed. Depending on how the developer has implemented this governor, and the minimum clockspeed chosen by the user, the conservative governor can introduce choppy performance. On the other hand, it can be good for battery life.
The Conservative Governor is also frequently described as a "slow OnDemand," if that helps to give you a more complete picture of its functionality.
Governor:It controls the speed of the CPU.
Hotplug(Governor):The Hotplug governor performs very similarly to the OnDemand governor, with the added benefit of being more precise about how it steps down through the kernel's frequency table as the governor measures the user's CPU load. However, the Hotplug governor's defining feature is its ability to turn unused CPU cores off during periods of low CPU utilization. This is known as "hotplugging."
Intellidemand(Governor):Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. Unlike what some users believe, this governor is not the replacement for OC Daemon (Having different governors for sleep and awake). The original intellidemand behaves differently according to GPU usage. When GPU is really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode. We can see some 'traces' of interactive governor here. Frequency scale-up decision is made based on idling time of CPU. Lower idling time (<20%) causes CPU to scale-up from current frequency. Frequency scale-down happens at steps=5% of max frequency. (This parameter is tunable only in conservative, among the popular governors)
To sum up, this is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling, and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such. Intellidemand does not jump to highest frequency when screen is off.
Interactive(Governor):Much like the OnDemand governor, the Interactive governor dynamically scales CPU clockspeed in response to the workload placed on the CPU by the user. This is where the similarities end. Interactive is significantly more responsive than OnDemand, because it's faster at scaling to maximum frequency.
Unlike OnDemand, which you'll recall scales clockspeed in the context of a work queue, Interactive scales the clockspeed over the course of a timer set arbitrarily by the kernel developer. In other words, if an application demands a ramp to maximum clockspeed (by placing 100% load on the CPU), a user can execute another task before the governor starts reducing CPU frequency. This can eliminate the frequency bouncing discussed in the OnDemand section. Because of this timer, Interactive is also better prepared to utilize intermediate clockspeeds that fall between the minimum and maximum CPU frequencies. This is another pro-battery life benefit of Interactive.
However, because Interactive is permitted to spend more time at maximum frequency than OnDemand (for device performance reasons), the battery-saving benefits discussed above are effectively negated. Long story short, Interactive offers better performance than OnDemand (some say the best performance of any governor) and negligibly different battery life.
Interactive also makes the assumption that a user turning the screen on will shortly be followed by the user interacting with some application on their device. Because of this, screen on triggers a ramp to maximum clockspeed, followed by the timer behavior described above.
InteractiveX(Governor):Created by kernel developer "Imoseyon," the InteractiveX governor is based heavily on the Interactive governor, enhanced with tuned timer parameters to better balance battery vs. performance. The InteractiveX governor's defining feature, however, is that it locks the CPU frequency to the user's lowest defined speed when the screen is off.
Lionheart(Governor):Lionheart is a conservative-based governor which is based on samsung's update3 source.
The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
LionheartX(Governor):LionheartX is based on Lionheart but has a few changes on the tunables and features a suspend profile based on Smartass governor.
Lazy(Governor):This governor from Ezekeel is basically an ondemand with an additional parameter min_time_state to specify the minimum time CPU stays on a frequency before scaling up/down. The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand. Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state on a step overriding sampling interval. Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always select the maximum frequency while the screen is off.
Lagfree(Governor):Lagfree is similar to ondemand. Main difference is it's optimization to become more battery friendly. Frequency is gracefully decreased and increased, unlike ondemand which jumps to 100% too often. Lagfree does not skip any frequency step while scaling up or down. Remember that if there's a requirement for sudden burst of power, lagfree can not satisfy that since it has to raise cpu through each higher frequency step from current. Some users report that video playback using lagfree stutters a little.
Min Max(Governor Speeds):Well this governor makes use of only min & maximum frequency based on workload... no intermediate frequencies are used.
OnDemand(Governor):This governor has a hair trigger for boosting clockspeed to the maximum speed set by the user. If the CPU load placed by the user abates, the OnDemand governor will slowly step back down through the kernel's frequency steppings until it settles at the lowest possible frequency, or the user executes another task to demand a ramp.OnDemand has excellent interface fluidity because of its high-frequency bias, but it can also have a relatively negative effect on battery life versus other governors. OnDemand is commonly chosen by smartphone manufacturers because it is well-tested, reliable, and virtually guarantees the smoothest possible performance for the phone. This is so because users are vastly more likely to ***** about performance than they are the few hours of extra battery life another governor could have granted them.
This final fact is important to know before you read about the Interactive governor: OnDemand scales its clockspeed in a work queue context. In other words, once the task that triggered the clockspeed ramp is finished, OnDemand will attempt to move the clockspeed back to minimum. If the user executes another task that triggers OnDemand's ramp, the clockspeed will bounce from minimum to maximum. This can happen especially frequently if the user is multi-tasking. This, too, has negative implications for battery life.
OndemandX(Governor):Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.
Performance(Governor):This locks the phone's CPU at maximum frequency. While this may sound like an ugly idea, there is growing evidence to suggest that running a phone at its maximum frequency at all times will allow a faster race-to-idle. Race-to-idle is the process by which a phone completes a given task, such as syncing email, and returns the CPU to the extremely efficient low-power state. This still requires extensive testing, and a kernel that properly implements a given CPU's C-states (low power states).
Powersave(Governor):The opposite of the Performance governor, the Powersave governor locks the CPU frequency at the lowest frequency set by the user.
Smoothass(Governor):The same as the Smartass “governor” But MUCH more aggressive & across the board this one has a better battery life that is about a third better than stock KERNEL
SavagedZen(Governor):Another smartassV2 based governor. Achieves good balance between performance & battery as compared to brazilianwax.
Smartass(Governor):Its based on the concept of the interactive governor.
I have always agreed that in theory the way interactive works – by taking over the idle loop – is very attractive. I have never managed to tweak it so it would behave decently in real life. Smartass is a complete rewrite of the code plus more. I think its a success. Performance is on par with the “old” minmax and I think smartass is a bit more responsive. Battery life is hard to quantify precisely but it does spend much more time at the lower frequencies.
Smartass will also cap the max frequency when sleeping to 352Mhz (or if your min frequency is higher than 352 – why?! – it will cap it to your min frequency). Lets take for example the 528/176 kernel, it will sleep at 352/176. No need for sleep profiles any more!"
SmartassV2(Governor):Version 2 of the original smartass governor from Erasmux. Another favorite for many a people. The governor aim for an "ideal frequency", and ramp up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq (500 mhz for GS2 by default) when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.
Scary(Governor):A new governor wrote based on conservative with some smartass features, it scales accordingly to conservatives laws. So it will start from the bottom, take a load sample, if it's above the upthreshold, ramp up only one speed at a time, and ramp down one at a time. It will automatically cap the off screen speeds to 245Mhz, and if your min freq is higher than 245mhz, it will reset the min to 120mhz while screen is off and restore it upon screen awakening, and still scale accordingly to conservatives laws. So it spends most of its time at lower frequencies. The goal of this is to get the best battery life with decent performance. It will give the same performance as conservative right now, it will get tweaked over time.
Continued On Page 3...
Page 4:Laymen Terms Android Guides
Continued From Page 3
Page 4 Of 10
Step 1: Get Eclipse
For this tutorial, I’m going to use Eclipse, because frankly it’s the easiest and most hassle-free development tool for Android right now. If you’re a NetBeans programmer, be my guest; but we'll use Eclipse.
Download Eclipse IDE for Java Developers (PC or Mac, 92MB)
Note: This is a .zip file; when you unzip it you will be able to run it wherever you unpacked it – there is no installer. I’d recommend that you put this in “C:\Program Files\” unless you plan on making it a portable application on a USB drive.
Step 2: Download The Java JDK
If you don’t have it already, you need to download the Java JDK 6. If you currently have the JDK 5, you should be okay, but there’s really no reason not to update. Just install it by downloading and then running through the setup to get things going. I’d recommend that you just hit next–>next–>finish, rather than doing anything fancy.
Step 3: Download The Android SDK Tools
Next, you’ll need to get the Android SDK Tools straight from Google. Unpack and install this to a directory you’ll remember – you need to reference this in the next few steps.
Step 4: Configure Eclipse For Your Android
Start Eclipse, and head to ‘Help>Install New Software‘. Hit “Add…” and for the name, type “Android” and set the link to “https://dl-ssl.google.com/android/eclipse/” (if this doesn’t work, try it with http:// instead of https:// ). Click “OK” and the following should appear.
Select both of the resulting packages, and hit next – this will download the Android ADT (Android Development Tools). Go ahead and start the download to obtain these two packages. Restart Eclipse (it should prompt you to on completion of the downloads). We’re almost ready to start coding.
Step 5: Configure The Android SDK
Navigate to the folder you downloaded/unpacked the Android SDK to. In there, you’ll find a file named “SDK Setup.exe.” Start that file – the following dialogue should appear.
Don’t feel obligated to download every single thing. Could it hurt? Not really. For me, however, I only really want to program for Android 2.1 and 2.01, so those are the only API packages I bothered to get (someday I may pay for my folly, but not today). Either way, get what you want (and you do need to pick one) and hit install. The SDK manager will install it for a little while.
Step 6: Set Up Your Android Virtual Device (AVD)
Now that you’ve finished, click over to “virtual devices” (still in the SDK Manager). We’re going to create an Android device that will test run your programs for you. Hit “New” to create a new Android device, and put in the specifications that you want it to have. In the screenshot below, you’ll see the options I wanted.
Click “Create AVD” to–well–create your AVD. Select your AVD from the list, and hit “Start” to make sure that you do indeed have a working emulation of an Android phone. After a pretty lengthy start-up wait, it should look something like this.
Fool around with it and explore for a bit if you want, then close it up so we can get back to work.
Step 7: Configure Eclipse Again
Remember that Android SDK we got earlier? We didn’t do anything with it. Now, it’s time to tell Eclipse where it is so Eclipse can use it as a resource. To do this, open Eclipse and navigate to Window>Preferences (or on Mac, Eclipse>Preferences) and select the Android tab. As shown below, browse to the location of your Android SDK and hit “Apply“.
Everything check out so far? Hit “OK” to save everything and let’s go program.
Step 8: Create A New Project
It’s finally time to code some. Navigate to ‘File>New>Other…>Android>Android Project‘, and input a project name, as well as some other details. If you want, copy from my screenshot below. Some of the fields need explaining that simply doesn’t belong here, so if you want to know more specifically, please let me know and maybe I’ll write an article about it.
Hit “Finish” and the project will be created.
Step 9: Input Your Code
In the tree on the left, navigate to the “src” folder and expand everything. Go to the file with the name of your “Activity” (created in step 8, mine was HelloWorld) and double click it to see the contents. Presently, your code has all of the content in black (with some minor modifications depending on your settings). To make a working “Hello world” program, you need to add the text that is in bold red. Note that there are two bold red “blocks” of code, and you need to add both to make things work.
//==========Start Code============
package com.android.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
//==========End Code============
The point of this tutorial is to get your feet off the ground. I know some or most of this is confusing; but it’s just how things are wired.
Step 10: Run Your Program
Above your code, you’ll see a little green “Play” button (or navigate to ‘Run>Run‘). Click it.When a popup box asks you how to run the application, you’re going to tell it to run as an “Android Application”. It will prompt you to save changes; hit yes.
Now you get to wait an eternity while your virtual device boots up. I’d recommend that you leave it open for the duration of your programming sprees, otherwise you’re going to spend more time watching the Android logo spin than you will watching your program freeze up. Just saying. Efficiency.
After everything’s done loading, your application should upload and start automatically. Which means that right after you “unlock” the device, you’ll be greeted with your first Android program.I only captured the top half of the screen because the rest of it is black.
Source: Coding project
Android 4.0(ICS): The Ultimate Guide
Home screen and system navigation
As with past versions of Android, the heart of Ice Cream Sandwich lies in its home screen; it's the main way you'll get around and get things done. If you've used Android before, the first thing you'll notice is how different the home screen looks in the 4.0-level release: With Ice Cream Sandwich, Google phased in a completely new graphic design, revolving around a blue-and-gray "holographic" interface and a custom font called Roboto.
Appearances aside, some things work a little differently in ICS than they have in the past. Follow along for a guided tour of the Android 4.0 home screen.
Status/Notification bar: The status bar always sits along the top of your phone's screen. On its right, you'll see the current time along with your battery level and data connection status; on its left, you'll see alerts and notifications, which have gotten a serious boost in Android 4.0.
Search bar: Android 4.0 features a Google search bar at the top of every home screen panel. You can tap here and begin typing a search term, or tap the Voice Actions icon on the right to initiate a voice search or perform other voice commands.
Home screen: You can fill this area with any combination of app shortcuts, folders and live, dynamic widgets (more on those in a bit). Android 4.0 gives you five home screen panels; just swipe left or right to move to the next or previous panel and access whatever you've stored there.
Favorites tray: The Favorites tray is like a dock for your home screen: The shortcuts or folders placed there stay present as you swipe from one panel to the next. By default, the tray includes commonly used items such as your Phone app, People app, Messaging app and Browser, with an icon for launching your app drawer in the center -- but you can customize it to include any items you want.
Navigation buttons: Instead of relying on a phone's physical buttons as in previous versions of Android, ICS has three main navigation buttons built into the interface at the bottom of the screen:
The Back button, which looks like a left-facing arrow, takes you back one step from wherever you are.
The Home button, which looks vaguely like a house, returns you to your home screen.
The Recent Apps button -- a new addition to Android 4.0 -- allows you to multitask and switch among recently used applications. You can tap the button from anywhere in the system to get a list of recently used apps, then tap on any app to jump directly to that program. You can also swipe left or right on any app to dismiss it and remove it from the list.
If you've used Android before, you might be wondering what happened to the Menu button. As of Android 4.0, the Menu button is a thing of the past: All options and commands now appear on-screen instead of being hidden away like they were with previous-generation devices.
If an application has more options than can fit on the screen, you'll see an icon that looks like three vertical dots; tapping that icon will bring up a list of additional functions relevant to your current activity.
(Curiously enough, the location of the vertical-dots icon is not always consistent, which was one of my criticisms of ICS in my initial review of the software.)
If your phone has hardware buttons: It's worth noting that while Google's Android 4.0 design guidelines call for virtual on-screen buttons, some phones still use hardware buttons instead -- either because they're older devices that have been upgraded or newer phones whose manufacturers have opted to stick with the older-style setup. If you're using an Android device that has physical buttons, those buttons should more or less correspond with the same functions described above.
A couple of exceptions: If your phone has a physical Menu button, some options in applications will remain hidden behind that button, as they have in the past. You can press the Menu button in various applications to see what additional options are available to you.
If your phone has a physical Home button but no Recent Apps button, meanwhile, you can access the app-switching function by pressing the Home button and holding it down for a few seconds.
Android 4.0 notifications
Notifications have always been a strength of Android, and with Android 4.0, they become more powerful than ever. Notifications appear on the left side of the status bar at the top of your phone's screen. The icons you see here indicate everything from new email and text messages to missed calls and calendar appointments.
To view your notifications in detail, touch your finger to the Notification bar and swipe downward. A panel will pull down over your screen showing you all of your pending notifications; you can tap on any notification to view more information about it or swipe your finger left or right on it to dismiss it from the list. You can also tap the "X" at the top-right of the notification area to dismiss and remove all of your pending notifications.
The type of notifications you get depends on what apps and accounts you have configured on your phone. With any app that's capable of sending notifications, you can customize what events trigger notifications or even disable notifications altogether; just look in the settings of each individual app to find those options.
The type of notifications you get depends on what apps and accounts you have configured on your phone. With any app that's capable of sending notifications, you can customize what events trigger notifications or even disable notifications altogether; just look in the settings of each individual app to find those options.
You can customize or disable notifications within the settings of individual apps. Click to view larger image.
In Gmail, for example, you can tap on the vertical-dots icon at the bottom of the screen (or press the Menu button, if you're on an older phone) to access the app's settings.
Within the Settings menu, tap on the line representing your Gmail account -- if you have more than one Gmail account configured, you can control notifications separately for each one -- and then check or uncheck "Email notifications" to enable or disable notifications for that account. You can also configure whether a sound and/or vibration will accompany each new mail notification.
Similar controls exist in other notification-capable apps, including the Messaging app (for text messages), Google Voice, Google+, Facebook and most Twitter clients.
In addition to basic activity-based alerts, the notifications area can display active controls for certain types of apps, such as the Android Play Music app; when you're playing a song in that app, pulling down the notification panel will reveal a set of interactive playback controls that allow you to pause, play or stop the music, or navigate through the album's tracks.
Apps in Android 4.0
If the home screen is the heart of Android, the apps are the blood that pump through its veins. Much of the Android experience revolves around applications, whether they're basic system apps like the Phone and Browser apps or third-party apps like Dropbox, Flipboard and Google Reader.
If you've used an earlier version of Android, you'll find that installing apps works the same way in ICS, so you can skip directly to "Accessing and organizing apps" below.
Finding and installing apps
You can access the Google Play Store directly from your phone or from any PC. Click to view larger image.
Android allows you to install apps from any source you wish. That said, most people use the Google Play Store to get new applications; it's the official Android market for apps (formerly known as the Android Market, fittingly enough) and the simplest and most direct way to get new programs onto your phone.
You can access the Google Play Store directly from your phone, via the Play Store icon (it looks like a shopping bag); you can also access it online from any PC by going to play.google.com. Whichever interface you use, just follow the tab for Android apps to browse through categories of popular and recommended applications. You can also use the Play Store's search function if you're looking for a particular title or type of application.
When you find an app you want, touch the Download or Install button to put it onto your phone. If you're using the Play Store website, the app will be sent wirelessly to your device. If you have multiple Android devices connected to your Google account -- a phone and a tablet, for example -- the website will prompt you to select the device you want to use via a drop-down menu.
If you see a price in place of the Download or Install button, that means the app isn't free; tap the button with the price if you want to buy it, and the cost will be charged to whatever credit card you have connected to your Google account. (The Play Store prompts you to set up a payment method the first time you connect or attempt to purchase an application.)
Accessing and organizing apps
The Android 4.0 app drawer houses all of your phone's apps and widgets. Click to view larger image.
You can always access all of your applications by tapping your phone's Apps icon -- the circled cluster of dots located in your Favorites tray at the bottom-center of your home screen.
This opens up your All Apps area, commonly called the app drawer, which contains a complete list of apps installed on your phone; swipe left or right to scroll through the list, and touch any app to open it.
If you want easy access to an app, you can add it as a shortcut on your home screen. Just press and hold the icon in your app drawer, then use your finger to drag it around until it's in a place you like. You can move the shortcut between home screen panels by sliding your finger to the very left- or rightmost edge of the current panel -- and if you decide you want to move a shortcut somewhere else later, all you have to do is press and hold the icon on your home screen to pick it up and relocate it. To remove a shortcut from your home screen, press and hold it, then drag it to the Remove icon that appears at the top of the screen.
Want to completely uninstall an app from your phone? Easy: All you have to do is press and hold it in the app drawer, then drag it to the Uninstall icon that shows up at the top of the screen. You'll also see an App Info icon; dragging the app there will allow you to view detailed info about the program's usage and permissions as well as clear its cache or data storage.
Android 4.0 makes it easy for you to create folders on your home screen that contain apps, in case you want to group similar items together to save on space or make things more tidy. While previous versions of Android had folders, they're easier to manage in 4.0, and their appearance has a sleek new look as well.
To create a folder in ICS, all you do is drop one icon on top of another on your home screen. You can add more items into the folder the same way.
Once a folder's been created, you can tap the folder to open it and show all the apps within; you can remove any item from the folder by touching it and dragging it out. You can name the folder, too: Just touch your finger to the text that says "Unnamed Folder" and type in any name you want.
Finally, you can place any items you want in the Favorites tray below the home-screen panels so they'll always be handy: Just touch and hold any icon that's already in the tray to move it out, and touch and drag any other icon in to replace it. You can even create folders within the tray, if you're so inclined.
Working with widgets
We can't talk about Android apps without talking about widgets. Widgets are one of the most powerful features Android provides; they essentially give you live, functioning programs right on your phone's home screen. Widgets let you do things like scroll through your inbox or your calendar, flip through current forecasts for multiple cities, and adjust your phone's basic settings without ever having to open a program or leave the home screen.
Widgets are frequently included as components of applications. For example, if you download the Pandora app, you'll also get the Pandora widget, which you can put on your home screen (or not) as you like. Some developers also offer standalone widget downloads, like the popular Beautiful Widgets and HD Widgets collections.
You can see a list of widgets on your device by touching the Widgets tab at the top of the app drawer and swiping left or right through the list. Placing a widget on your home screen is no different than placing an app shortcut: You press and hold the widget you want, then drag it wherever you wish on your home screen.
With Android 4.0, many widgets can be resized, too: Just press and hold any widget on your home screen, and if it's resizable, you'll see a blue box appear around it. Drag an edge of the box up, down, left or right to make the widget larger or smaller.
Want more widgets? Head to the Google Play Store; there's an entire section there devoted to apps with widgets, and you can always try searching, too.
Android 4.0 settings
Almost everything in Android can be customized, and Android 4.0 introduces a completely revamped settings area with a streamlined interface and numerous new options.
The simplest way to get to your phone's settings is to pull down the notification panel and then touch the icon directly next to the date (it looks like a series of sliding controls). Alternatively, you can find the Settings app within your app drawer; you can even put the shortcut directly on your home screen if you want.
Many of the items in the Android 4.0 settings area are self-explanatory. A few things are worth pointing out, though:
The Data Usage feature is a new and noteworthy addition to Android 4.0. It allows you to view your mobile data usage and see exactly how many bytes each application and process is utilizing.
It also lets you set a monthly mobile data limit; once set, the system will cut off all non-Wi-Fi data transfers above the limit to ensure you don't exceed your carrier's monthly data cap. You can set limits on background data transfers for specific apps, too, if you want to restrict activity for particularly data-hungry programs.
The Battery feature is another Android 4.0 addition that's well worth exploring. It allows you to get a grasp on your phone's power usage by seeing exactly how much of your battery charge is being consumed by each app and process during the day.
The Apps section of the settings shows you a complete list of all apps on your phone, including those you have installed and any that came preloaded on the device (touch the All tab to view preloaded applications). You can opt to disable any preinstalled app from here, which effectively hides it from the system and gets it out of your way.
This is useful for carrier-installed bloatware, which is often baked into the phone and impossible to uninstall. Just be careful in deciding what to disable, as disabling an important system process could have unintended consequences. As a general rule, if you aren't sure what something is, it's probably best to leave it alone.
The Accounts & Sync section shows you every account connected to your phone -- Google accounts, third-party email accounts and service-based accounts for apps like Dropbox or Facebook -- and allows you to change the autosync settings for each account as well. You can add new accounts and delete old ones from this area, too, which can be useful if you change email providers at some point or decide to add another inbox into the mix.
The Security section is an area you'll definitely want to visit. It houses the commands to set up a PIN, password or pattern lock for your phone. (Android 4.0 has a face-recognition unlock feature, too, but -- while incredibly novel -- it's far less secure than the more traditional methods.) The section also enables you to encrypt your phone's data and require a PIN or password to decrypt it every time the device is powered on.
As far as your data goes, Google can automatically back up your basic phone settings as well as your installed applications; if you should ever move to a new device, your settings and applications can then automatically be restored. Just make sure you have the "Back up my data" and "Automatic restore" options checked in the Backup & Reset section of your phone's settings if you want this feature to work.
Continued On Page 5...
Android Permissions & Security Explained
Continued From Page 6
Page 7 Of 10
Android Permissions & Security Explained
This guide aims to provide the basic info most people want to know about the security of their phones, and when to download, and when not to download applications from the Android Market.
It's my hope that this will help people make more informed decisions and be safe about their application usage, privacy, and data. It is my firm belief that Android is a fundamentally safe platform. With some common sense, diligence, and the right knowledge of the potential threats, users can rest assured and enjoy their devices more thoroughly.
While most of these tips will apply to any of the new app stores and markets now available for Android, this guide is written specifically for Google's original Android Market.
Also, while this guide attempts to be as comprehensive as possible, there may be errors or misjudgments, or just opinions that are subjective. Please read it with the idea in mind that it's just a part of the information you may want to consider when downloading your apps.
Deciding what to download is ultimately up to you, and that's the most important thing you'll need to remember.
Background about Android
The first thing when understanding the security of your phone is to know a little bit about what makes it tick. Android is a 'lite' version of Linux with most applications that you download from the market written in Java.
This is important to know because it means Android is very unlikely to ever get a 'virus' in the traditional sense. Part of the reason is because Linux is a fairly secure operating system that protects various parts of itself from other parts. This is similar to how Windows has admin accounts and limited user accounts. Because of this protection, applications downloaded from the market do not have access to anything by default. You must grant them permission for each activity they want to perform when they are installed. This is a very important point which we will address a bit later. Also due to some bad choices by Google, there are a few exceptions to this rule that we'll talk about in the permissions section.
Nevertheless, while Android is very unlikely to get a 'virus', that does not mean you are completely safe from 'malware', 'spyware', or other harmful types of programs.
Anti-virus
The efficacy of anti-virus apps on Android is a controversial subject on even the best of days. Needless to say, there are some very differing opinions on the necessity of having anti-virus software protecting your phone. Both sides of this debate have some credible and respectable reasons for their choice, so I will try and present both sides as objectively as I can. In full disclosure though, I personally do not use anti-virus on my phone. That's a personal choice I made. Plenty of security experts whom I respect do chose to use anti-virus on their phones. So ultimately this will be a choice that is yours alone to make and not something where you should take cues from other people. That said, here are the pros and cons of each side as best as I know them.
One thing to remember though, is that each side may have some irrational or sensational arguments. These stem from either a sense of emotional justification or a vested interest in selling software. Put simply, neither side of the debate is above bad arguments and unintentional or intentional faulty logic.
Benefits
- Will protect you from all past threats
- May protect you from a future threat
- Often can have additional features for privacy and data protection
- May have features to protect your phone if it is lost or stolen
Drawbacks
- May waste system resources like battery and memory
- It's hard to protect from future/unknown threats
- Can potentially cause serious harm to the OS (very rare but not unheard of)
- May provide a false sense of security and encourage risky behavior
Types of Dangerous Programs
The most common threats from Android applications are:
1) When the app tricks the user into giving it permissions it does not need to do its job.
2) When the app hides malicious code behind legitimate permissions.
3) When the app tricks the user into entering in personal information or sensitive data (such as a credit card number).
There are various ways malicious developers (also known as hackers or crackers) accomplish this. We'll briefly define each kind just to have a common understanding of the terms.
Malware
Malware generally is an all-encompassing term used to describe any harmful program. This includes spyware, viruses, and phishing scams. Sometimes the older term 'virus' is used in this context, but malware is now considered more accurate.
Spyware
Spyware is used to describe software or applications that read your information and data without you actually knowing it and reporting it back to some unknown third party for nefarious purposes. Oftentimes this includes keystroke loggers to steal passwords or credit card information. Some people include certain types of Advertising tracking in this category (sometimes called Adware, see below). However that's a much larger debate we wont cover here.
Phishing
Phishing and spyware are closely related. They work on a similar principle: tricking the user and sending user information to a 3rd party to steal it. The difference with phishing however, is that the application (or website) will pretend to be from a trusted source to try and 'trick' you into entering in your details. Contrastingly, spyware would try to hide itself from being known to the user. One way to think about the difference is that phishing is masquerading while spyware is hiding, but the end goal of stealing your data is the same.
An example of this would be an app or website pretending to be affiliated with your bank or Paypal or your email provider (Gmail, Hotmail, Yahoo). However it can, and does, include any service where someone might want to steal your identity or password.
There have been known successful phishing attacks related to at least one bank on Android.
Virus
The definition of virus used to be more all-encompassing. These days that term has been replaced by malware. Virus is more typically used to describe a specific type of software that takes control of your operating system and either damages it, or uses it for its own purposes. An example might be when a virus sends emails to everyone in your email address book. Again this is the type of program least likely to be a problem for Android.
Trojan Horse
A trojan horse is really just a specific type of virus. It merely refers to the idea that the app pretends to be something useful or helpful or fun for the user while actually causing harm or stealing data. This term is often used to describe spyware and phishing attacks as well.
Adware
Adware is typically a bit of a grey area. Sometimes this is also called nuisance-ware. This type of application will often show the users an excessive amount of advertising in return for providing a service of dubious quality to the user. However, this type of program can often be confused with legitimate ad-supported software, which shows a mild to moderate amount of advertising while providing a useful service that the user wants. Because it can be hard to tell the difference, there exists a grey area from most anti-virus companies as to how to handle adware.
How to check Permissions
When you install an application the Market will tell you all of the permissions it needs to function. These are important to read. Permissions can give you an idea if an application is asking for more than it needs to function properly. While some legitimate apps often ask for more permissions than they need, it should at least raise an eyebrow. Again this is just part of what you should consider when deciding if an application is safe and good quality.
How to Protect Yourself
There are no full-proof ways to avoid all bad situations in the world.But, any sane person with a reasonable head on their shoulders knowsthat a few good habits can keep you safe for a long, long time inwhatever you do. Here are a few tips I have learned from many years as aprofessional software developer and from reading many Android forumsthat have many people smarter and more knowledgeable than I aboutAndroid.
Read the comments in the Market
This should go without saying. Before you download any applications, besure to read the comments. Don't just read the first three either, clickthrough and see what people are saying. This can also help youunderstand how well an app works on your particular phone (and yourparticular version of Android). Comments should also be read EVERY timeyou update an app.
It's also important to note that bad apps can sometimes"game" the comments and ratings. There are some unsavoryservices that provide thousands of fake comments for apps and they areprobably more common than you think. See the section on TheCommunity for more on identifying these types of fake comments.
Check the Rating
Any app that fails to maintain above 2.5 stars is likely not worth yourtime. If you are brave enough to be one of the first few to download anapp, this does not apply to you. Nevertheless, almost all good apps havebetween 3 and 5 stars. To me, this is just a general rule to helpfind quality apps.
Check the permissions
There are many things an app can do to, and for, your phone. Butanything an app can do is told to you when you download and install it.Before you download and install an app, you will be shown a list ofpermissions the application is requesting. Read them. Try yourbest to understand them in terms of what the application is supposed todo for you. For example, if you download a game of checkers, and theMarket warns you that it wants to be able to read your contacts, youshould think twice and probably not download it. There is no sanereason a game of checkers needs to know your friend's phone numbers.
In the Permissions section you can read a list of some of the mostcommonly used permissions. The list explains how important they are,what they do, and notes some examples of apps that might legitimatelyneed the permission. This should help you get a basic understanding ofwhat to allow, and when to skip, an app.
Check the developer's website
Make sure the developer has a website and not just some blog. This isoften a good indication of quality as well as safety. If the developercares about their app they will likely have a relatively nice lookingwebsite (or, if they are open source, a site on Google Code or somethingsimilar). Note: sites on Google code are NOT verified or approved byGoogle. However, open source is usually (but not always) morelikely to indicate a safe application.
NOTE: This is not a definitive indicator if a developer is good or bad,just one more piece of information you can use. There are a lot ofexceptions to this particular rule, as a lot of good developers mightnot have anything more than a blog, and a lot of bad developers couldjust point to a nice looking site they have no affiliation with.However, the developer's website can be helpful just as an extra pieceof information you can use in making your decision about the developeror app.
Updating applications is the same as installing them fresh
Each time you update an application on your phone, you should use thesame diligence as if you were installing it for the first time. Rereadthe permissions to see that it is only asking for what it needs and nomore. Reread the comments to see if anything has changed in the opinionsof the users and to see if it still works for your phone. If you seethat an application says Update (manual) next to it, that means thedeveloper has changed the permissions that they are requesting. This isnot necessarily a bad thing -- but it should indicate that you shouldpay a bit closer attention to the permissions and re-evaluate them asneeded.
Privacy
Wi-Fi
One of the things to remember when trying to keep yourself safe is to be very careful with public Wi-Fi. Whenever you connect to the internet through a public Wi-Fi, you should never use any website that requires a password to sign into. The danger here is because you have no idea who is connecting you to the website. A good analogy would be like trying to mail a letter to your friend by giving it to a stranger in the street. For more info read: Man-in-the-middle attack(Wikipedia). There is also a risk that applications may be transmitting data in the background over that Wi-Fi connection about you without encrypting it. This is also true of any applications over any internet connection however. And while there are some good ways to secure your phone, I personally don't use any public Wi-Fi at all. This may be seen as extreme in some circles, but I believe it to be safest route (although somewhat limiting).
SD Cards
There isn't much to say about SD cards except that all users should remember that they are not a safe place to store personal information. This can be something as simple as a backup/export of your contacts.
The reason the SD card is not safe is that nearly all applications can read any file they want from the SD card. Most personal info such as contacts is stored internally in protected databases however, so this shouldn't be a huge concern for most people, but it's helpful to keep in mind.
GPS and Network Location
There is a lot of information online and in various books about why letting yourself be tracked has potential consequences. However, there are a lot of useful features that apps can provide with location tracking information. You should treat location tracking with care and be sure to give it only to parties your trust. Google Maps would be a great example of this.
Advertising and location tracking
There is a trade-off that some people will consider making with regards to location tracking. Some advertisers would like to have location information on you in order to show you local advertisements and coupons. In exchange, you get free use of an app such as a game. This is a decision you will need to make for yourself. I personally would not make this trade off, but some people very knowledgeable about security are very comfortable making it.
permissions
When you install an application the Market will tell you all of the permissions it needs to function. These are important to read as it can give you an idea if the application is asking for permission to do more than it needs. While some legitimate apps often ask for more permission than they need, it should at least raise an eyebrow when deciding if an application is safe and of good quality.
Continued On Page 8
Page:5 Laymens Terms Guides Continued...
Continued From Page 4...
Page 5 Of 10
Android 4.0 (Ice Cream Sandwich):The Ultimate Guide Continued...
Android 4.0 search and voice control
Google is famous for search, so not surprisingly, search is a core part of the Android 4.0 experience. The basic search functionality in ICS is the same as in past Android releases, but there's a new, more convenient way to access it: via a persistent Google search bar at the top of every home screen panel. (Some manufacturer-modified versions of ICS may put the bar in a different location or make it an optional element you can choose to include.)
To search for anything -- whether on your phone or on the Web -- touch your finger to the Google search bar. This will pull up a box that you can type any term into; your phone will start displaying relevant results for items on your phone and on the Web as you type, much like Google does with its Google Instant search feature online.
By default, the Android search function will look through a lot of different types of content, including apps you have installed, contacts you have stored, bookmarks and recently visited Web pages, and music files in your personal collection. You can customize exactly what types of content are and aren't included by tapping the Menu icon at the top-right of the search screen and selecting Settings and then "Searchable items."
In addition to standard search, Android includes a robust voice search system. Simply tap the microphone icon in the Google search bar and begin to speak; your phone will transcribe and then search for whatever words you say. Like regular search, the voice search will include items both on your phone and on the Web.
The microphone icon also gives you access to Google's Voice Actions technology. Voice Actions lets you complete numerous functions on your phone just by speaking (yes, kind of like Apple's Siri -- only this has been around since 2010). Try pressing the microphone and saying some of these commands:
send text to [contact] [message]
call [business name and city]
call [contact]
send email to [contact] [message]
go to [website]
note to self [note]
navigate to [location/business name]
directions to [location/business name]
map of [location]
listen to [artist/song/album]
Android 4.0 text input
Android 4.0 has a virtual keyboard that pops up anytime you're able to enter text. The 4.0-level keyboard is dramatically improved over the one in past Android releases; even when you type sloppily and miss a lot of characters, it can usually figure out what you're trying to say. The keyboard also has built-in word suggestion and spell-check capabilities.
In addition to the regular tap-style input, you can use Android's voice recognition technology to enter text anywhere in the system. Just tap the microphone icon on the keyboard and begin to speak; the system will transcribe text on the fly and show your words on-screen as you talk.
One nice thing about Android compared to other mobile platforms is that you aren't limited to using only the default system keyboard; you can opt to replace or supplement it with a third-party alternative if you'd like. Several popular third-party options exist, including SwiftKey -- which is known for its impressive text-predicting technology -- and Swype, which lets you type by sliding your finger from key to key without ever lifting it up.
Android devices can support a wide range of USB input devices, too, including mice, keyboards and game controllers; you can also wirelessly connect a Bluetooth keyboard to your phone if you really want to get down to business.
Android 4.0 file management and sharing
Unlike other mobile platforms, Android gives you complete control over the files stored on your phone. You can browse your Android device like a computer, moving and copying files or opening and sharing documents at will.
Android 4.0 has a built-in Downloads app that lets you access files you've downloaded from the Web, but the key to truly unlocking your phone's file management potential is installing a good file management app. I like Astro File Manager, which is available for free in the Google Play Store. (The free version of the app has ads; a $3.99 "pro" key will give you an ad-free experience.)
When you open Astro -- or any other comparable file management utility -- you'll see a list of folders and files in your phone's storage. You can navigate through the folders just like you would on your PC's hard drive; pressing and holding any item will give you a list of options like copying, moving, renaming or deleting. It'll also give you an option to send the file to any other compatible application -- if you want to share a document with someone via email, for example, or send it to your Dropbox or Google Drive account.
Android devices can interface with PCs just like portable hard drives, too: Connect your phone to an open USB port on a Windows computer, and it'll automatically show up as a media device (using the MTP protocol). You can then open the device on your computer, click through folders, and copy or move data back and forth as needed.
Mac OS X doesn't natively support the MTP protocol that Android utilizes, so you'll need to install an Android File Transfer application before you can connect your phone to an Apple computer.
Android 4.0 includes full support for near-field communication (NFC), which opens the door for some interesting contact-free device-to-device file sharing. You can pass along a contact, Web page, YouTube video or application from one NFC-enabled Android 4.x device to another simply by touching the two phones together back-to-back; once the connection is established, the system will prompt you to "beam" whatever content is currently loaded on your screen.
With its Galaxy S III phone, Samsung expanded on Android's NFC beaming functionality to allow for contact-free sharing of images, video files and music files; that expanded functionality, however, works only between two Galaxy S III phones and is consequently rather limited in practicality.
Android 4.0 Cheat Sheet
Get up to speed fast with Android 4.0: The charts below show how to perform an array of tasks in ICS, from navigating the interface to locking down your device to managing your apps.
System navigation and home screens
Go back one step:Tap the Back button at the bottom of the screen.
Return to your home screen:Tap the Home button at the bottom of the screen.
Multitask (switch to another recently used app):Tap the Recent Apps button at the bottom of the screen (or long-press the Home button if your phone lacks a Recent Apps button).
Remove an app from the multitasking list:After tapping the Recent Apps button, swipe your finger left or right on the app's thumbnail.
Move among home screen panels:Swipe left or right to move forward or backward through the panels.
Search your phone or the Web:Touch the Google search bar at the top of your home screen.
Search by voice:Touch the microphone icon in the Google search bar at the top of your home screen and speak your search term.
Issue a voice command:Touch the microphone in the Google search bar at the top of your home screen and speak a Voice Actions command.
Browse through the apps on your phone:Tap the circular Apps button at the bottom-center of your home screen to open your app drawer, then swipe left or right to move through the apps.
Add an app shortcut to your home screen:Tap the Apps button, find the app you want, then press and hold its icon and drag it to any position you want on any home screen panel.
Add a widget to your home screen:Tap the Apps button, select the Widgets tab, then press and hold any widget and drag it to any position on any home screen panel.
Move an app or widget already on your own home screen:Press and hold the item you want to move, then drag it to its new location. To move an item from one home screen panel to another, simply drag it to the left- or rightmost edge of the current panel and wait for it to slide across.
Remove an app shortcut from your home screen:Press and hold the icon, then drag it to the Remove icon that appears at the top of the display.
Resize a widget:Press and hold a widget until a blue box appears around it. Then drag an edge of the box up, down, left or right to make the widget larger or smaller.(Note: Some widgets may not be resizable.)
Change the apps in your phone's Favorites tray:Press and hold an app in the tray, then drag it out of the tray. Then press, hold and drag any other app into the open space.
Create a folder on your home screen:Press, hold and drag an app on top of any other app on your home screen; repeat the process to add additional apps into the folder.
Name a home screen folder:Tap the folder to open it, then touch the "Unnamed Folder" text and type your own title in its place.
View notifications:Touch the bar at the top of your screen and pull it down with your finger, then tap any active notification to open it.
Dismiss notifications:Swipe your finger left or right on any notification in the list, or tap the "X" at the top-right to dismiss all notifications at once.
Browse and manipulate your phone's files:Download a file management app such as Astro File Manager, then open it to browse your phone as if it were a PC.
Browse your phone from a computer:Connect your phone to the computer's USB port. With Windows systems, the phone will automatically show up and be available to you as a media device; with Mac OS systems, you'll need to install an Android File Transfer application in order for the phone to be recognized.
Access your phone's bookmarks and open tabs from your computer's browser:Download Google's Chrome for Android beta application. On the new tab screen, tap the star icon to view any synced bookmarks. (You can also access your bookmarks via the browser's drop-down menu.) Tap the open tabs icon -- the box with two arrows -- to view tabs recently open on other Chrome-connected devices.
Overall device configuration Function
Access your device settings:Touch the bar at the top of your screen and pull down the notification panel, then touch the Settings icon next to the date.
Customize ringtones, notification sounds and volume levels:Go to your phone's settings as noted above, then tap Sound and select the appropriate option.
Add new ringtones to your phone:Connect your phone to a computer and move any compatible sound file into the Ringtones folder under Internal Storage. Then go into your phone's settings, tap Sound and select the file.
Add new notification sounds to your phone:Connect your phone to a computer and move any compatible sound file into the Notifications folder under Internal Storage. Then go into your phone's settings, tap Sound and select the file.
Set your phone to silent or vibrate-only:Press and hold the phone's power button, then select one of the volume options that appears on-screen.
Adjust your phone's brightness settings:Go to your phone's settings as noted above, then select Display --> Brightness. Use your finger to move the slider to your desired brightness level, or select "Auto brightness" to have your phone automatically adjust its brightness based on current lighting conditions.
Change how long it takes for your phone's screen to time out:Go to your phone's settings, then select Display --> Sleep and adjust the time. (Remember that the longer the screen stays on, the more battery power will be used.)
Change your phone's wallpaper:Long-press on a blank space on your home screen, then follow the prompts to select a wallpaper from the source you prefer. (Many additional wallpapers, including "live" animated wallpapers, can be found in the Google Play Store.)
View detailed info about storage use on your phone:Go to your phone's settings, then select Storage. You'll see a breakdown of storage use by content type; tapping on any individual type of content will provide you with a more specific breakdown.
View detailed info about your phone's battery usage:Go to your phone's settings, then select Battery. You'll see a chart showing precisely how much of your battery charge each app and process has consumed; tapping on any individual item will provide you with more specific details about that app's activity.
Change your system keyboard:Go to your phone's settings, then select "Language & input." Under "Keyboard & input methods," you'll see a list of keyboards installed on the device. Make sure the keyboard you want to use has a check next to it, then tap Default and select it from the list. (Many additional keyboards can be found in the Google Play Store.)
Perform a factory reset and erase all data on the phone:Go to your phone's settings, then select "Factory data reset" and follow the prompts. Note that this will permanently erase all data and account settings and restore your device to its factory condition.
Browse and activate accessibility options:Go to your phone's settings, then select Accessibility.
App management
Download a new application:Visit the Google Play Store by tapping the Play Store app on your phone or navigating to play.google.com from a computer-based Web browser.
Find additional options in an app:Inside the app, look for an icon with three vertical dots; touch it to view additional options (or press your phone's physical Menu button if you're using a phone that still has such a button).
Change or remove notifications for a specific app:Open the app (Gmail, Email, Messaging, Facebook, etc.) and find its Settings menu, which may be under the vertical dots icon shown just above. Look there for a Notifications option and adjust or disable it as desired. (If an app doesn't have such an option available, it likely doesn't utilize notifications.)
Share content from an app:Inside the app, look for the Share icon. Tap it to bring up a menu of programs that can be used for sharing -- things like Gmail, Facebook, Google Drive, Dropbox, Evernote and so forth.
Uninstall an app:Open your app drawer (via the All Apps button in the Favorites tray). Press and hold the app you wish to uninstall, then drag it to the Uninstall icon that appears on-screen.
Get detailed information about an app:Open your app drawer. Press and hold the app you want to know about, then drag it to the App Info icon that appears on-screen.
Disable a preinstalled system app:Open your app drawer. Press and hold the app you wish to disable, then drag it to the App Info icon that appears on-screen and select the Disable option. (Note that disabling a system app can have unintended consequences; if you aren't sure what something is, it's generally best to leave it alone.)
Android 4.1 (Jelly Bean):The Ultimate Guide
Jelly Bean keeps the basic look and feel established in Android 4.0 but fine-tunes a lot of details. The notification pulldown has a new look, with larger text and more gray and white in place of blue. (It also has some new functionality -- more on that in a bit.)
Lots of new effects and transitions are sprinkled throughout the system, too. When you move your finger over the lock screen, for example, a circle of tiny dots follows your touch. And when you open an app from your home screen, the app opens by zooming up from the space you touched. These types of subtle improvements all add up to make the Android interface more polished and impressive than it's ever been before.
Jelly Bean introduces a new system "share" menu, too, along with an improved "open with" box (you know, the dialog that appears when you tap on a link or file that more than one program could handle). The search box at the top of the home screen has a new frosted type of look. And the initial phone setup/sign-in process gets a major makeover; with Jelly Bean, the process is far more simple and user-friendly than what we've seen in the past.
What about performance? Is Jelly Bean really faster than ICS?
Google calls its Android 4.1 performance push "Project Butter" because it's meant to make everything run much more smoothly (either that or because it's salty and delicious -- but I'm assuming the former).
The difference in speed from Android 4.0 to 4.1 is immediately noticeable. With Jelly Bean, the phone rotates far more quickly than it did in past Android releases. Transitions, especially between the home screen and app drawer, are significantly faster. And the "recent apps" list loads instantly when you tap the button -- the slight delay present in ICS is a thing of the past. I tested two Galaxy Nexus phones side by side, one with Android 4.0 and the other with 4.1, and the improvements were obvious.
Google increased the speed of the Android OS by improving the system frame-rate and display refresh signal and also developing a new touch input system that anticipates where your fingers will land and then gives the CPU an extra shot of power when you touch the screen.
JB's Search And Voice Control
Android 4.1 gets a whole new search system, and boy, is it cool. Instead of simply showing you Web results for whatever term you enter, the Jelly Bean search setup gives you informational cards with detailed answers about what you really want to know. (You can still find standard search results beneath the quick info cards.)
Search is also now more thoroughly integrated into the Android system: In addition to the Google search bar at the top of the home screen, you can get to the Android search tool from the lock screen -- by swiping upward on the slide lock -- or from anywhere in the OS by swiping up from the virtual home button.
The most impressive new thing in Jelly Bean search, without a doubt, is the revamped voice search system. While Google's Voice Actions have allowed you to issue specific voice commands for years, the new 4.1-level setup allows for more natural types of queries as well.
Once in the search tool, you simply say "Google" to activate the new voice command system. Then, you can ask all sorts of questions and Google will show -- and tell -- you the answers.
If you ask "How tall is Scarlett Johansson," for example, the system returns a card with the actress's face (nothing wrong with that) and her height; it also speaks aloud and tells you the information. If you ask "How hot is it gonna be tomorrow" or "Is it supposed to rain this week?" -- or pretty much any other weather-related question -- Google delivers the answer in a similar graphic-plus-audio form.
The options go on and on. You can ask for good Chinese restaurants near you, tell Google to navigate you to a specific location by car or by foot, or ask for any type of Web-accessible information, ranging from when your favorite sports team plays next to when your friend's flight is scheduled to arrive. The existing command-style prompts still work, too, if you want to send yourself a note, compose and send a text, or start listening to a particular band or song.
Google Now
Google Now is another new part of the Android 4.1 search tool. In a nutshell, it uses a combination of your location, search history, calendar, and other habits to automatically deliver relevant information to you throughout the day.
(And if you're worried about privacy, yes, it's optional; Google Now works only if you choose to opt in.)
The concept seems very cool, though it'll take some time to see how useful it actually ends up being. So what kinds of things can Google Now do? Some examples: It can tell you the weather at the start of the day, show you how much traffic to expect as you head out the door to work, show you your favorite sports team's score when the game's underway, and show you when the next train is scheduled to arrive as you step onto the platform.
If you have an upcoming calendar appointment, Google Now can look at the appointment's address and at your current location, then estimate travel time based on current traffic conditions and let you know when you need to leave in order to arrive on time. If you're in a new area, Google Now can recommend nearby restaurants and other places of interest. Cards that are particularly timely appear as notifications on your phone; all other Google Now cards are always available in the Jelly Bean search tool.
4.1 Notifications
Everything! Jelly Bean notifications are a whole new game compared to past Android releases. Visual differences aside, notifications in Android 4.1 are both expandable and action-oriented.
What that means is that you can drag down on notifications, using two fingers, to expand them and get additional information and options. When you expand a missed call alert, for example, you get options to call the person back or text them right from your notifications panel. With new email, you can expand to see details about multiple new messages in your inbox. And with a captured screenshot, you can expand to get an option to share the image right then and there.
Homescreen Jelly Bean
Jelly Bean makes it much easier to add and arrange widgets and shortcuts on your home screen. When you slide in a new widget, the system automatically moves other items in the area to make room for it. If there still isn't enough space, it'll resize the widget for you to make it fit (as much as possible).
The same thing happens with regular app shortcuts: You can slide an icon next to another icon to bump it over and open the space.
Android 4.1 also has a handful of new integrated system widgets, including a bunch of Google Play-related items (to see your purchased/rented multimedia, recommendations for app or multimedia downloads, and so forth) as well as a new Sound Search widget that's basically the same thing as Shazam or SoundHound: You tap the widget while a song is playing, and after "listening" for a few seconds, it tells you the name of the song and the artist who performs it.
Heres a few other things you can find in Jelly Bean
An updated Camera app that lets you swipe on the viewfinder to jump directly into your Gallery of images for easy photo viewing and sharing.
An updated system keyboard with better dictionaries, improved text-to-speech functionality, offline text-to-speech support, and intelligent word prediction (a la SwiftKey).
Added support for contact-free NFC sharing of photos and videos.
"Smart app updates" that let you download only the changed portions of updated applications instead of having to download the entire app every time an update rolls in.
An improved face-unlock security mode that requires you to blink before your phone will unlock.
A slew of new gesture-based navigation commands for visually impaired users; also added support for Braille input and output devices.
CDMA vs GSM
Two basic technologies in mobile phones, CDMA and GSM represent a gap you can't cross. They're the reason you can't use AT&T phones on Verizon's network and vice versa.CDMA (Code Division Multiple Access) and GSM (Global System for Mobiles) are shorthand for the two major radio systems used in cell phones. Both acronyms tend to group together a bunch of technologies run by the same entities. In this story, I'll try to explain who uses which technology and what the real differences are.
Which Carries are CDMA? Which are GSM?
Five of the top seven carriers in the U.S. use CDMA: Verizon Wireless, Sprint, MetroPCS, Cricket, and U.S. Cellular. AT&T and T-Mobile use GSM.
That means we're mostly a CDMA country. It also means we're not part of the norm, because most of the world is GSM. The global spread of GSM came about because in 1987, Europe mandated the technology by law, and because GSM comes from an industry consortium. What we call CDMA, by and large, is owned by chipmaker Qualcomm. This made it less expensive for third parties to build GSM equipment.
There are several variants and options carriers can choose, like toppings on their technological ice cream. In this story we'll be talking about U.S. networks.
For call quality, the technology you use is much less important than the way your carrier has built its network. There are good and bad CDMA and GSM networks, but there are key differences between the technologies. Here's what you, as a consumer, need to know.
It's much easier to swap phones on GSM networks, because GSM carriers put customer information on a removable SIM card. Take the card out, put it in a different phone, and the new phone now has your number. What's more, to be considered GSM, a carrier must accept any GSM-compliant phone. So the GSM carriers don't have total control of the phone you're using.
That's not the case with CDMA. In the U.S., CDMA carriers use network-based white lists to verify their subscribers. That means you can only switch phones with your carrier's permission, and a carrier doesn't have to accept any particular phone onto its network. It could, but typically, U.S. carriers choose not to.
In other words, you can take an unlocked AT&T phone over to T-Mobile (although its 3G may not work well because the frequency bands are different). You can't take a Verizon phone over to Sprint, because Sprint's network rejects non-Sprint phones.
3G CDMA networks (known as "EV-DO" or "Evolution Data Optimized") also, generally, can't make voice calls and transmit data at the same time. Once more, that's an available option (known as "SV-DO" for "Simultaneous Voice and Data Optimization"), but one that U.S. carriers haven't adopted for their networks and phones.
On the other hand, all 3G GSM networks have simultaneous voice and data, because it's a required part of the spec. (3G GSM is also actually a type of CDMA. I'll explain that later.)
So why did so many U.S. carriers go with CDMA? Timing. When Verizon's predecessors and Sprint switched from analog to digital in 1995 and 1996, CDMA was the newest, hottest, fastest technology. It offered more capacity, better call quality and more potential than the GSM of the day. GSM caught up, but by then those carriers' paths were set.
It's possible to switch from CDMA to GSM. Two carriers in Canada have done it, to get access to the wider variety of off-the-shelf GSM phones. But Verizon and Sprint are big enough that they can get custom phones built for them, so they don't see the need to waste money switching 3G technologies when they could be building out their 4G networks.
Continued On Page 6...
Page:6 Android Terms,Slang & Definitions Continued...
Continued From page 5
Page 6 Of 10
Screen size:Actual physical size, measured as the screen's diagonal.
For simplicity, Android groups all actual screen sizes into four generalized sizes: small, normal, large, and extra large.
Screen density
The quantity of pixels within a physical area of the screen; usually referred to as dpi (dots per inch). For example, a "low" density screen has fewer pixels within a given physical area, compared to a "normal" or "high" density screen.
For simplicity, Android groups all actual screen densities into four generalized densities: low, medium, high, and extra high.
Orientation:The orientation of the screen from the user's point of view. This is either landscape or portrait, meaning that the screen's aspect ratio is either wide or tall, respectively. Be aware that not only do different devices operate in different orientations by default, but the orientation can change at runtime when the user rotates the device.
Pixel Density:is a measurement of the resolution of devices in various contexts: typically computer displays, image scanners, and digital camera image sensors.
Density-Independent Pixel (dp):A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in a density-independent way.
The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a "medium" density screen. At runtime, the system transparently handles any scaling of the dp units, as necessary, based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels. You should always use dp units when defining your application's UI, to ensure proper display of your UI on screens with different densities.
Android Resolution:Android runs on a variety of devices that offer different screen sizes and densities. For applications, the Android system provides a consistent development environment across devices and handles most of the work to adjust each application's user interface to the screen on which it is displayed. At the same time, the system provides APIs that allow you to control your application's UI for specific screen sizes and densities, in order to optimize your UI design for different screen configurations. For example, you might want a UI for tablets that's different from the UI for handsets.
LDPI:Resources for low-density (ldpi) screens (~120dpi).
MDPI:Resources for medium-density (mdpi) screens (~160dpi).
HDPI:Resources for high-density (hdpi) screens (~240dpi).
XHDPI:Resources for extra high-density (xhdpi) screens (~320dpi).
NODPI:Resources for all densities. These are density-independent resources. The system does not scale resources tagged with this qualifier, regardless of the current screen's density.
TVDPI:Resources for screens somewhere between mdpi and hdpi; approximately 213dpi. This is not considered a "primary" density group. It is mostly intended for televisions and most apps shouldn't need it—providing mdpi and hdpi resources is sufficient for most apps and the system will scale them as appropriate. If you find it necessary to provide tvdpi resources, you should size them at a factor of 1.33*mdpi. For example, a 100px x 100px image for mdpi screens should be 133px x 133px for tvdpi.
Dex:Dalvik Executable. Compiled Android application code file. Android programs are compiled into .dex files, which are in turn zipped into a single .apk file on the device. .dex files can be created by automatically translating compiled applications written in the Java programming language.
Action:An action is a description of something that an Intent sender wants done. An action is a string value assigned to an Intent. Action strings can be defined by Android or by a third-party developer. For example, android.intent.action.VIEW for a Web URL, or com.example.rumbler.SHAKE_PHONE for a custom application to vibrate the phone.
Activity:An activity is a single screen in an application, with supporting Java code, derived from the Activity class. Most commonly, an activity is visibly represented by a full screen window that can receive and handle UI events and perform complex tasks, because of the Window it uses to render its window. Though an Activity is typically full screen, it can also be floating or transparent.
AndroidManifest.xml:Every application must have an AndroidManifest.xml file (with precisely that name) in its root directory of the source tree. The manifest presents essential information about the application to the Android system, information the system must have before it can run any of the application’s code.
Application:From a component perspective, an Android application consists of one or more activities, services, listeners, and intent receivers. From a source file perspective, an Android application consists of code, resources, assets, and a single manifest. During compilation, these files are packaged in a single file called an application package file (.apk).
Broadcast Receiver:An application class that listens for Intents that are broadcast, rather than being sent to a single target application/activity. The system delivers a broadcast Intent to all interested broadcast receivers, which handle the Intent sequentially.
Canvas:A drawing surface that handles compositing of the actual bits against a Bitmap or Surface object. It has methods for standard computer drawing of bitmaps, lines, circles, rectangles, text, and so on, and is bound to a Bitmap or Surface. Canvas is the simplest, easiest way to draw 2D objects on the screen. However, it does not support hardware acceleration, as OpenGL ES does. The base class is Canvas.
Content Provider:A data-abstraction layer that you can use to safely expose your application’s data to other applications. A content provider is built on the ContentProvider class, which handles content query strings of a specific format to return data in a specific format.
Cachesd:Moves Dalvik cache files to the ext2/ext3/ext4 partition on your secure digital card. Creates Dalvik Cache to SD flag.
Cachesdreset:Performs the same function as cachesd, plus erases the contents of Dalvik-Cache, forcing a rebuild on reboot.
Cachepart:Moves Dalvik cache files to the /cache partition in your phone. Creates Dalvik Cache to Cache Partition flag.
Cachepartreset:Performs the same function as cachepart, plus erases the contents of Dalvik-Cache, forcing a rebuild on reboot.
Convert-ext3:Converts an EXT2 partition to an EXT3 partition.
Note: Boot process will take longer due to the conversion.
Convert-ext4:Converts an EXT3 partition to an EXT4 partition.
Note:You must execute a2sd convert-ext3 first if you are trying to convert from EXT2 to EXT4. Boot process will take longer due to the conversion.
Data:The data partition on the device contains the user-related data, such as installed applications and settings for those apps, as well as your SQLite database containing Android settings and messages. Normally, the directory /data/app is off-limits through the ‘adb shell’ command, as well as other terminal applications that can run on the device, since this directory contains the apk files for apps. On a rooted phone, using the ‘su’ command will allow full access to this partition. This partition can be flashed using Fastboot or Nandroid.
DDMS:Dalvik Debug Monitor Service, a GUI debugging application included with the SDK. It provides screen capture, log dump, and process examination capabilities. If you are developing in Eclipse using the ADT Plugin, DDMS is integrated into your development environment.
Dialog:A floating window that that acts as a lightweight form. A dialog can have button controls only and is intended to perform a simple action (such as button choice) and perhaps return a value. A dialog is not intended to persist in the history stack, contain complex layout, or perform complex actions. Android provides a default simple dialog for you with optional buttons, though you can define your own dialog layout. The base class for dialogs is Dialog.
Drawable:A compiled visual resource that can be used as a background, title, or other part of the screen. A drawable is typically loaded into another UI element, for example as a background image. A drawable is not able to receive events, but does assign various other properties such as “state” and scheduling, to enable subclasses such as animation objects or image libraries. Many drawable objects are loaded from drawable resource files — xml or bitmap files that describe the image. Drawable resources are compiled into subclasses of android.graphics.drawable.
Datasd:Moves /data/data to the SD card.
F2FS (Flash-Friendly File System) was created by Kim Jaegeuk at Samsung for the Linux operating system kernel. The motivation for it was to build a file system that from the start takes into account the characteristics of NAND flash memory-based storage devices, which have been widely used in computer systems ranging from mobile devices to servers. Samsung chose a log-structured file system approach, which it adapted to newer forms of storage. F2FS also remedies some known issues of the older log structured file systems, such as the snowball effect of wandering trees and high cleaning overhead. Because a NAND-based storage device shows different characteristics according to its internal geometry or flash memory management scheme (such as the Flash Translation Layer), Samsung also added various parameters not only for configuring on-disk layout, but also for selecting allocation and cleaning algorithms. Introduced in the second half of 2012 this new file system shows promise but is not yet generally available in any Kernels that I have seen. Samsung has submitted these patches for integration into the Linux kernel, which means it’s likely to appear on Android releases in the future.
Flash Memory:Flash memory, also known as NAND memory, is nonvolatile – keeping information even when the device is off. Flash memory in the device is equivalent to the hard drive in a computer. This is where the device’s operating system (sometimes called firmware) and applications are stored. Flash memory is slower than RAM, but is (almost always) faster than SD cards.
Fixapk:Fixes permissions on programs.
Forcecheck:Forces Darktremor Apps2SD to force check the EXT partition on the SD card when phone is rebooted.
Heapsizexx:Sets Dalvik Heap Size to xx, or heapsize0 resets heap size to default settings.
Logcat:While in adb (see ADB), type in “adb logcat > logcat.txt”. This will help you when resolving issues and bugs. There are also tools in the market you can use for this, one of which is called aLogcat. It can show different categories (severity of errors ect.) too, which is something adb logcat cannot do.
Playstore(Old:Market):The market on Android is a place where you can purchase or download applications for your phone. When you download through the market, the installation process is transparent (as in you don’t have to deal with the APK files yourself), and there is the facility to rate apps and post comments which are visible to other users. Frequently, the developers of apps actually take onboard the feedback in the comments (mainly the smaller apps with slightly less feedback to sift through).
When an app is installed from the market, it is copied to ‘/data/app/apkname.apk’, as the act of ‘installing’. An app can store its data in the folder ‘/data/data/apkname’. It is possible to clear the data stored by an application by using the Manage Applications feature in Settings | Applications | Manage Applications.
Intent:A message object that you can use to launch or communicate with other applications/activities asynchronously. An Intent object is an instance of Intent. It includes several criteria fields that you can supply, to determine what application/activity receives the Intent and what the receiver does when handling the Intent. Available criteria include the desired action, a category, a data string, the MIME type of the data, a handling class, and others. An application sends an Intent to the Android system, rather than sending it directly to another application/activity. The application can send the Intent to a single target application or it can send it as a broadcast, which can in turn be handled by multiple applications sequentially. The Android system is responsible for resolving the best-available receiver for each Intent, based on the criteria supplied in the Intent and the Intent Filters defined by other applications.
Intent Filter:A message object that you can use to launch or communicate with other applications/activities asynchronously. An Intent object is an instance of Intent. It includes several criteria fields that you can supply, to determine what application/activity receives the Intent and what the receiver does when handling the Intent. Available criteria include the desired action, a category, a data string, the MIME type of the data, a handling class, and others. An application sends an Intent to the Android system, rather than sending it directly to another application/activity. The application can send the Intent to a single target application or it can send it as a broadcast, which can in turn be handled by multiple applications sequentially. The Android system is responsible for resolving the best-available receiver for each Intent, based on the criteria supplied in the Intent and the Intent Filters defined by other applications.
Layout Resource:An XML file that describes the layout of an Activity screen.
Lowmem-Moderate:Sets the internal memory killer to the following
settings:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 3072 pages / 12 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 7680 pages / 30 MB
Content Provider: 8960 pages / 35 MB
Empty App: 10240 pages / 40 MB
Lowmem-Optimum:Sets the internal memory killer to the following
settings:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 2048 pages / 8 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 10240 pages / 40 MB
Content Provider: 12800 pages / 50 MB
Empty App: 15360 pages / 60 MB
Lowmem-Strict:Sets the internal memory killer to the following
settings:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 2048 pages / 8 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 15360 pages / 60 MB
Content Provider: 17920 pages / 70 MB
Empty App: 20480 pages / 80 MB
Lowmem-Aggressive:Sets the internal memory killer to the following
settings:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 3072 pages / 12 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 21000 pages / 82 MB
Content Provider: 23000 pages / 90 MB
Empty App: 25000 pages / 98 MB
Lowmem-Extreme: Sets the internal memory killer to the following
settings:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 3072 pages / 12 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 38400 pages / 150 MB
Content Provider: 40960 pages / 160 MB
Empty App: 43520 pages / 170 MB
Lowmem-Ultimate:Sets the internal memory killer to the following
settings:
Foreground Apps: 1536 pages / 6 MB
Visible Apps: 3072 pages / 12 MB
Secondary Server: 4096 pages / 16 MB
Hidden Apps: 51200 pages / 200 MB
Content Provider: 57600 pages / 225 MB
Empty App: 64000 pages / 250 MB
Lowmem-Default:Sets the internal memory killer back to phone default settings.
Manifest File:An XML file that each application must define, to describe the application’s package name, version, components (activities, intent filters, services), imported libraries, and describes the various activities, and so on.
Nocache:Moves Dalvik cache files to the internal phone storage. Removes all Dalvik Cache flags.
Nocachereset:Performs the same function as nocache, plus erases the contents of Dalvik-Cache, forcing a rebuild on reboot.
Nodata:Restores /data/data to the internal storage.
Noswap: Creates the No Swap flag. Prevents A2SD from activating the swap partition.
9-Patch:A resizeable bitmap resource that can be used for backgrounds or other images on the device.
Odex:Odex stands for “Optimized Dalvik Executable” file. The Android system, as identified above, utilizes compressed data stored in the .apk file at runtime. To speed up this process, the most critical elements of application will be placed uncompressed in an .odex file, thus enabling the Android OS to quickly interpret that important information before it continues to parse the rest of the application. Stock ROMs will come from the manufacturer as “odexed”, meaning that the application(s) will have a .apk file and an .odex file, i.e. Calendar.apk and Calendar.odex.
ROW Scheduler:The ROW scheduling algorithm will be used in mobile devices as default
+block layer IO scheduling algorithm. ROW stands for "READ Over WRITE"
+which is the main requests dispatch policy of this algorithm.
Resources:Nonprogrammatic application components that are external to the compiled application code, but which can be loaded from application code using a well-known reference format. Android supports a variety of resource types, but a typical application’s resources would consist of UI strings, UI layout components, graphics or other media files, and so on. An application uses resources to efficiently support localization and varied device profiles and states. For example, an application would include a separate set of resources for each supported local or device type, and it could include layout resources that are specific to the current screen orientation (landscape or portrait). The resources of an application are always stored in the res/* subfolders of the project.
Resetcache:Clears the dalvik cache and restarts phone.
Reswap: Removes the No Swap flag. Allows A2SD to activate the swap partition.This is used if you have already executed an a2sd noswap command. Otherwise, this part is automatically performed when Apps2SD is started.
Service:An object of class Service that runs in the background (without any UI presence) to perform various persistent actions, such as playing music or monitoring network activity.
SPL:The Secondary Program Loader is a piece of bootcode that initiates the startup of the phone, displaying the initial splash screen for the device, and loading the initial files from ROM.
It checks to see if a button combination is pressed on bootup (such as that to enter Recovery Mode or the bootloader), and loads the relevant system software. If no special instruction is given by holding keys, the bootloader loads the normal system software by initializing the boot process from the boot partition.
Flashing your SPL is risky, as the process failing will probably result in a broken, or bricked phone, since the SPL is executed very early on in the boot process, and any error here will prevent access to the recovery or bootloader features.
If you do flash the SPL though, it unlocks the Carrier-ID CID from the device, essentially allowing any RUU to be installed to the device, and allows flashing alternative or custom bootscreens.
Surface:An object of type Surface representing a block of memory that gets composited to the screen. A Surface holds a Canvas object for drawing, and provides various helper methods to draw layers and resize the surface. You should not use this class directly; use SurfaceView instead.
SurfaceView:A View object that wraps a Surface for drawing, and exposes methods to specify its size and format dynamically. A SurfaceView provides a way to draw independently of the UI thread for resource-intensive operations (such as games or camera previews), but it uses extra memory as a result. SurfaceView supports both Canvas and OpenGL ES graphics. The base class is SurfaceView.
System:The /system directory on your device is where the main operational software for the Android OS is stored. It has a number of sub-directories of which /system/apps (where application apk’s are stored) is probably the only one users would have need to access. The /system folder is read-only by default and needs remounted via ‘adb’ to allow write access.
Swappyxx:Sets swap partition swappiness value to xx.
Theme:A set of properties (text size, background color, and so on) bundled together to define various default display settings. Android provides a few standard themes, listed in R.style (starting with “Theme_”).
Update.zip:An update.zip (does not have to actually be called update.zip if you have a patched Recovery image) is a file containing some files which will be copied to the phone’s internal memory. Normally, a new system update or ROM is stored in the file, but update.zip files are commonly used to install modifications such as themes or applications that are installed on the System partition to prevent uninstallation.
To flash one of these files, which commonly would contain a custom ROM for your phone, you would boot your phone to a patched recovery image (whether using Fastboot, or the home+power method if you have a patched Recovery image flashed on your phone)
Update.zip files are cryptographically signed, and more information on how to sign your own files can be found online.
URI's:Android uses URI strings as the basis for requesting data in a content provider (such as to retrieve a list of contacts) and for requesting actions in an Intent (such as opening a Web page in a browser). The URI scheme and format is specialized according to the type of use, and an application can handle specific URI schemes and strings in any way it wants. Some URI schemes are reserved by system components. For example, requests for data from a content provider must use the content://. In an Intent, a URI using an http:// scheme will be handled by the browser.
View:An object that draws to a rectangular area on the screen and handles click, keystroke, and other interaction events. A View is a base class for most layout components of an Activity or Dialog screen (text boxes, windows, and so on). It receives calls from its parent object (see viewgroup, below)to draw itself, and informs its parent object about where and how big it would like to be (which may or may not be respected by the parent).
ViewGroup:A container object that groups a set of child Views. The viewgroup is responsible for deciding where child views are positioned and how large they can be, as well as for calling each to draw itself when appropriate. Some viewgroups are invisible and are for layout only, while others have an intrinsic UI (for instance, a scrolling list box). Viewgroups are all in the widget package, but extend ViewGroup.
Widget:One of a set of fully implemented View subclasses that render form elements and other UI components, such as a text box or popup menu. Because a widget is fully implemented, it handles measuring and drawing itself and responding to screen events. Widgets are all in the android.widget package.
Window:In an Android application, an object derived from the abstract class Window that specifies the elements of a generic window, such as the look and feel (title bar text, location and content of menus, and so on). Dialog and Activity use an implementation of this class to render a window. You do not need to implement this class or use windows in your application.
glibc: (GNU C Library)Any Unix-like operating system needs a C library: the library which defines the ``system calls'' and other basic facilities such as open, malloc, printf, exit...
The GNU C Library is used as the C library in the GNU systems and most systems with the Linux kernel.
Libhybris:a way to load Android libraries while overriding some Bionic symbols with those symbols from glibc.
Bloatware:Software or 'apps' that you don't need, but come preinstalled to a device's /system partition, meaning that you cannot remove them unless the device has been rooted. Usually, these are apps are sponsored by a company and included by a carrier for profit. For example, the Photobucket app included on the G2 by TMobile.
Compile:It translates (a android program)from a high-level language into another language, usually machine language.
Decompile:To convert executable (ready-to-run) program code (sometimes called object code ) into some form of higher-level programming language so that it can be read by a human.
Deodex:Deodexing is basically repackaging of these APKs in a certain way, such that they are reassembled into classes.dex files. By doing that, all pieces of an application package are put together back in one place, thus eliminating the worry of a modified APK conflicting with some separate odexed parts.
GNU:A recursive acronym for “GNU's Not Unix!”; it is pronounced g-noo, as one syllable with no vowel sound between the g and the n. The GNU Project was launched in 1984 to develop a complete Unix-like operating system which is free software: the GNU system. “Free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech”, not as in “free beer”.
API:An application programming interface (API) is a specification intended to be used as an interface by software components to communicate with each other. An API may include specifications for routines, data structures, object classes, and variables. An API specification can take many forms, including an International Standard such as POSIX, vendor documentation such as the Microsoft Windows API, the libraries of a programming language, e.g. Standard Template Library in C++ or Java API.
An API differs from an application binary interface (ABI) in that an API is source code based while an ABI is a binary interface. For instance POSIX is an API, while the Linux Standard Base is an ABI.
Odex:In Android file system, applications come in packages with the extension .apk. These application packages, or APKs contain certain .odex files whose supposed function is to save space. These ‘odex’ files are actually collections of parts of an application that are optimized before booting. Doing so speeds up the boot process, as it preloads part of an application. On the other hand, it also makes hacking those applications difficult because a part of the coding has already been extracted to another location before execution.
Open Source:Open-source refers to software with publicly available source code. In the context of Android, Open-source refers to the approach to the design, development, and distribution of software. This offers accessibility to a software's source code for modification, improvement, bug-fixing, and security-enhancement. CyanogenMod is based on this principle.
Port:To Take a rom or app from one phone and program it to work on a different one.
Swap:Swap is, in short, virtual RAM. With swap, a small portion of the hard drive is set aside and used like RAM. The computer will attempt to keep as much information as possible in RAM until the RAM is full. At that point, the computer will begin moving inactive blocks of memory (called pages) to the hard disk, freeing up RAM for active processes. If one of the pages on the hard disk needs to be accessed again, it will be moved back into RAM, and a different inactive page in RAM will be moved onto the hard disk ('swapped'). The trade off is disks and SD cards are considerably slower than physical RAM, so when something needs to be swapped, there is a noticeable performance hit.
Unlike traditional swap, Android's Memory Manager kills inactive processes to free up memory. Android signals to the process, then the process will usually write out a small bit of specific information about its state (for example, Google Maps may write out the map view coordinates; Browser might write the URL of the page being viewed) and then the process exits. When you next access that application, it is restarted: the application is loaded from storage, and retrieves the state information that it saved when it last closed. In some applications, this makes it seem as if the application never closed at all. This is not much different from traditional swap, except that Android apps are specially programed to write out very specific information, making Android's Memory Manager more efficient that swap.
Continued On Page 7...
Layman Terms Android Guides Continued...
Continued From Page 9
Page 10 Of 10
Trick Apps Into Thinking They Are Using Wifi,When Using 3G.
Some Android games and application require a Wi-Fi connection due to the large amount of data that they use. If you don't have Wi-Fi available, however, you won't be able to use the apps or play the games, even if you have a fast 3G connection. You can trick your phone into believing that the Wi-Fi is connected by saving a small text file to your SD card so the phone will play games and apps as if it's on Wi-Fi when it's only connected to 3G.
Things You'll Need
PC
Data cable
Text editing app
Instructions
1) Launch a text editing program on your computer and type "FALSE" in all caps. Save the file and give it the name "qaWifiOnlyMode.txt" exactly with all the lower-case and capital letters duplicated precisely, otherwise the Android operating system won't see the file. Close the text editing program.
2) Plug your Android device into your computer and drag your finger down from the top of the screen to open the notification area. Tap "USB Connected" and then confirm that you want to mount your SD card as a drive on the computer.
3) Find the qaWifiOnlyMode.txt file on your computer and click to select it. Press "Ctrl" and "C" to copy the file. Browse to the location of your Android device's SD card on your computer. In the base directory, not in any sub-folder, press "Ctrl" and "V" to paste the text file to the card.
4) Drag down the notification area on your Android device and tap the USB connection to disconnect the device from the computer. Unplug the USB cable. Your device will now play games and apps as if it's on Wi-Fi even if it's only on 3G.
How to boot your Android phone or tablet into safe mode for troubleshooting
Android is a relatively stable mobile operating system, but every now and then, performance issues arise. Safe mode is a great tool that you can use to troubleshoot these issues. Safe mode boots your phone running only the apps that came with the phone – that means no third-party apps. Therefore, if your phone runs without an issue when you’re in safe mode, it’s a pretty good bet that the problem isn’t system related, and instead a third party app you downloaded.
Click through the break to see how you can enable safe mode to test if it’s a system problem or a third-party problem.
Unfortunately, not all phones have the same method to enter safe mode. Most Jelly Bean devices use the first method below, but some devices with older versions of Android and some newer devices (like the Galaxy S 4 and HTC One) use the alternate method further down the page.
Method 1 (most Jelly Bean devices)
1) Hold down the physical power button on your device.
2) Long-press the “Power off” option that appears.
3) A dialog box asking you if you want to reboot to safe mode may pop up. Tap OK.
(Note: If the box doesn’t appear, go on to the alternate method.)
4) When the phone reboots, you should see a “Safe Mode” watermark at the botom left of the screen, to let you know that you are in fact in safe mode.
Method 2 (some older versions of Android and some Jelly Bean phones)
1) Turn off your phone.
2) Once your phone is off, turn it on by pressing the power button.
3) As your phone is booting, hold down both the volume up and volume down buttons (yes, both) and keep them held.
4) Once your phone has booted, you should see a “Safe Mode” watermark at the botom left of the screen, to let you know that you are in fact in safe mode.
Note: If the alternate method also doesn’t work, you can try holding down menu instead of volume up and down while booting.
In safe mode, while you can’t use third party apps, you can uninstall them. So if your phone is giving you problems as bad as freezing and not letting you uninstall apps, you can uninstall the problem app/apps in safe mode. In addition, if you need to, you can backup your data or factory reset your device in safe mode .
To exit safe mode, you just restart your device as you normally would.
How To Setup Eclipse and Netbeans For Developing Google Android Apps
The Google Android platform allows the user a simple and efficient means to create applications for the mobile device. Much of the information concerning Android architecture, libraries, and source codes can be found on the Google Android web page: http://code.google.com/intl/en/android/
To develop Android applications, the user can employ Netbeans or Eclipse for assistance. Each Integrated Development Environment (IDE) is free and easy to maneuver. However, Eclipse is an older application that Netbeans.
Netbeans
Netbeans is deemed more desirable for building web applications. To begin building a web application in Netbeans, it requires one step. This step involves downloading the Netbeans IDE 5.0 application. Its competitor’s process involves 6 steps in comparison.
Netbeans contains a JSP debugger and remote debugger, a Java Enterprise Edition verifier, a choice of JSP, JSF or Struts frameworks, a deployment description editor, a HTTP monitor, multiple database connections, XML editor and validation, debug and monitor SQL commands, and no manual creation or modification of deployment descriptors required.
To develop Google Android Applications for Netbeans, the user must implement the following steps.
1) Install the Integrated Development Environment (IDE). Download the application from the website and install it.
2) Install the Android plug in for Netbeans. The plug in is named nbandroid.
Within the Netbeans Update Center, the user will find the Netbeans plug in.
First go to the Menu bar, find the Tools menu. Within the tools menu, the user will find a list of Netbeans plug ins. Select the Netbeans plug in the user desires. In this particular case, select the Android Plug in. Within the Settings options, select Add. When prompted, enter this URL: http://kenai.com/downloads/nbandroid/updates.xml
The user can begin the installation process, when this step is completed. Once the Android plug is installed, then the user should add the Android Platform to Netbeans.
Within the Menu option, select the Tools option. Once this is completed, enter Java Platforms. Then select the Add Platform button. The Google Android Platform should be in this selection. The next window will prompt the user to enter a new platform name. Enter the user name. Follow the instructions until the process is complete.
Eclipse
In order to build a web application in Eclipse, the user must Download Eclipse IDE 3.1, Apache Tomcat, Eclipse Modeling Framework (EMF), Eclipse Graphical Editing Framework (GEF), Java EMF Model (JEM) from Visual Editor Project (VEP), and Web Tools Project (WTP).
After the Software Development Kit (SDK) installation, locate and install the Android plug in for the Eclipse. The installation process is as follows:
From the Menu, select the Help feature. Within the Help feature select Software Updates. A command window will appear. Select the window, for Add site. Enter the following URL when prompted: https://dl-ssl.google.com/android/eclipse/
Next select the Updates and Add On menu. The URL will appear. When the URL appears, click on the URL. Then select the Developer Tools option and begin the installation process. Follow the steps to install the plug in.
If the user needs the Europa version, the steps are as follows. Start the Eclipse application. Within the Menu, select the Help option. Then select the Software Updates and Find and Install. Select the New Remote Site. Choose and insert a name for the plug in . Enter the location of the plug in and proceed.
https://dl-ssl.google.com/android/eclipse/
When this step is complete, the site should appear in the Add On list. Select the Android Developer Tools and the Android Editor. Follow the instructions to install the plug in. Include this URL when prompted: https://dl-ssl.google.com/android/eclipse/.
Once the Eclipse plug in is installed, then restart the IDE. Indicate the location of the Software Development Kit (SDK) within the system.
Select the Menu. Then select Preferences under the Window option. Choose the Android. Select Browse to locate the Software Development Kit (SDK) directory in the computer.
The user may now create Android applications in the Eclipse IDE.
Source
Continued On Page 11...
Android Permissions & Security Explained Continued...
Continued From Page 7
Page 8 Of 10
Official Description
Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call being placed.
Details
This permission is of high importance. This could let an application call a 1-900 number and charge you money. However, this is not as common a way to cheat people in today's world as it used to be. Legitimate applications that use this include: Google Voice and Google Maps.
Another important point to note here is that any app can launch the phone screen and pre-fill a number for you. However, in order to make the call, you would need to press [Send] or [Call] yourself. The difference with this permission is that an app could make the entire process automatic and hidden.
Send SMS or MMS
Services that cost you money
[color=ery commonly used by legitimate applications. Applications that typically need this permission include (but are not limited to) camera applications, audio/video applications, document applications
[B]Official Description[/B]
Allows an application to read the user's contacts data.
Details
This permission is of high importance. Unless an app explicitly states a specific feature that it would use your contact list for, there isn't much of a reason to give an application this permission. Legitimate exceptions include typing or note taking applications, quick-dial type applications and possibly social networking apps. Some might require your contact information to help make suggestions to you as you type. Typical applications that require this permission include: social networking apps, typing/note taking apps, SMS replacement apps, contact management apps.
Write contact data
Development tools / Your personal info
URI: android.permission.WRITE_CONTACTS
Risk: MODERATE-HIGH
Protection level: DANGEROUS
Official Description
Allows an application to write (but not read) the user's contacts data.
Details
This permission is of high importance. Unless an app explicitly states a specific feature that it would use your contact list for, there isn't much of a reason to give an application this permission. Legitimate exceptions include typing or note taking applications, quick-dial type applications and possibly social networking apps. Some might require your contact information to help make suggestions to you as you type. Typical applications that require this permission include: social networking apps, typing/note taking apps, SMS replacement apps, contact management apps.
Read calendar data
Development tools / Your personal info
URI: android.permission.READ_CALENDAR
Risk: MEDIUM
Protection level: DANGEROUS
Official Description
Allows an application to read the user's calendar data.
Details
This permission is of moderate to high importance. While most people would consider their calendar information slightly less important than their list of contacts and friends, this permission should still be treated with care when allowing applications access. Additionally, it's good to keep in mind that calendar events can, and often do contain contact information.
Write calendar data
Development tools / Your personal info
URI: android.permission.WRITE_CALENDAR
Risk: MEDIUM
Protection level: DANGEROUS
Official Description
Allows an application to write (but not read) the user's calendar data.
Details
This permission is of moderate to high importance. While most people would consider their calendar information slightly less important than their list of contacts and friends, this permission should still be treated with care when allowing applications access. Additionally, it's good to keep in mind that calendar events can, and often do contain contact information.
Read browser history & bookmarks
Development tools / Your personal info
URI: com.android.browser.permission.READ_HISTORY_BOOKMA RKS
Risk: MEDIUM-HIGH
Protection level: DANGEROUS
Official Description
Allows an application to read (but not write) the user's browsing history and bookmarks.
Details
This permission is of medium-high importance. Browsing habits are often tracked through regular computers, but with this permission you'd be giving access to more than just browsing habits. There are also legitimate uses for this permission such as apps that sync or backup your data, and possibly certain social apps.
Write browser history & bookmarks
Development tools / Your personal info
URI: com.android.browser.permission.WRITE_HISTORY_BOOKM ARKS
Risk: MODERATE-HIGH
Protection level: DANGEROUS
Official Description
Allows an application to write (but not read) the user's browsing history and bookmarks.
Details
This permission is of medium-high importance. Browsing habits are often tracked through regular computers, but with this permission you'd be giving access to more than just browsing habits. There are also legitimate uses for this permission such as apps that sync or backup your data, and possibly certain social apps.
Read sensitive logs
Development tools / Your personal info
URI: android.permission.READ_LOGS
Risk: VERY-HIGH
Protection level: DEVELOPMENT
Official Description
Allows an application to read the low-level system log files.
Details
This permission is of high importance. This allows the application to read what any other applications have logged.
Modify global system settings
Hardware controls
URI: android.permission.WRITE_SETTINGS
Risk: MEDIUM
Protection level: DANGEROUS
Official Description
Allows an application to read or write the system settings
Details
This permission is pretty important but only has the possibility of moderate impact. Global settings are pretty much anything you would find under Android's main 'settings' window. However, a lot of these settings may be perfectly reasonable for an application to change. Typical applications that use this include: volume control widgets, notification widgets, settings widgets, Wi-Fi utilities, or GPS utilities. Most apps needing this permission will fall under the "widget" or "utility" categories/types.
Read sync settings
Hardware controls
URI: android.permission.READ_SYNC_SETTINGS
Risk: LOW-MODERATE
Protection level: UNKNOWN
Official Description
Allows applications to read the sync settings
Details
This permission is of low to medium importance. It mostly allows the application to know if you have background data sync (such as for Facebook or Gmail) turned on or off.
Automatically start at boot
Hardware controls
URI: android.permission.RECEIVE_BOOT_COMPLETED
Risk: MODERATE-HIGH
Protection level: UNKNOWN
Official Description
Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting.
Details
This permission is of low to moderate impact. It will allow an application to tell Android to run the application every time you start your phone. While not a danger in and of itself, it can point to an applications intent
Restart other applications
Hardware controls
URI: android.permission.RESTART_PACKAGES
Risk: HIGH
Protection level: UNKNOWN
Official Description
This constant is deprecated. The restartPackage(String) API is no longer supported.
Details
This permission is of low to moderate impact. It will allow an application to tell Android to 'kill' the process of another application. However, any app that is killed will likely get restarted by the Android OS itself.
Retrieve running applications
Hardware controls
URI: android.permission.GET_TASKS
Risk: MEDIUM-HIGH
Protection level: DANGEROUS
Official Description
Allows an application to get information about the currently or recently running tasks: a thumbnail representation of the tasks, what activities are running in it, etc.
Details
This permission is of moderate importance. It will allow an application to find out what other applications are running on your phone. While not a danger in and of itself, it would be a useful tool for someone trying to steal your data. Typical legitimate applications that require this permission include: task killers and battery history widgets. Other than that however, most apps should not need this permission.
Display system-level alerts
Hardware controls
URI: android.permission.SYSTEM_ALERT_WINDOW
Risk: HIGH
Protection level: DANGEROUS
Official Description
Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications.
Details
This permission is of high importance. This permission allows an app to show a "popup" window above all other apps, even if the app is not in the foreground. A malicious developer/advertiser could use it to show very obnoxious advertising. Almost no apps should require this permission unless they are part of the Android operating system. An example of a system alert would be the alert you are shown when your phone or tablet is out of battery and is about to shut down.
Control vibrator
Development tools
URI: android.permission.VIBRATE
Risk: LOW
Protection level: UNKNOWN
Official Description
Allows access to the vibrator
Details
This permission is of low importance. As it states, it lets an app control the vibrate function on your phone. This includes for incoming calls and other events.
Take pictures and videos
Development tools
URI: android.permission.CAMERA
Risk: MODERATE-HIGH
Protection level: DANGEROUS
Official Description
Required to be able to access the camera device.
Details
This permission is of moderate importance. As it states, it lets an app control the camera function on your phone. In theory this could be used maliciously to snap unsuspecting photos, but it would be unlikely and difficult to get a worthwhile picture or video. However, it is not impossible to make malicious use of cameras.
Access location extra commands
Network Communication
URI: android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
Risk: MEDIUM-HIGH
Protection level: UNKNOWN
Official Description
Allows an application to access extra location provider commands
Details
The specifics of the extra commands here are a bit unclear. However, the usage of this permission indicates that an app wants to know detailed information about your location, and respond accordingly. This is often used with advertising and location-based and social-network services like Four Square, Twitter, Facebook or Google Places/Google+. It is recommended that you treat this permission with the same caution as the GPS location permission and assume the same implications to privacy apply.
Access mock location
Network Communication
URI: android.permission.ACCESS_MOCK_LOCATION
Risk: MODERATE
Protection level: DANGEROUS
Official Description
Allows an application to create mock location providers for testing
Details
This is a permission used for development of apps that make use of location based services. By creating "mock" (fake) locations, apps can test if their code works correctly depending on your location.This permission has no known sercurity considerations; Nor much use in a app released to the public.
Battery stats
Hardware controls
URI: android.permission.BATTERY_STATS
Risk: LOW
Protection level: UNKNOWN
Official Description
Allows an application to collect battery statistics
Details
This permission is of little to no importance.
Bluetooth Admin
Your accounts
URI: android.permission.BLUETOOTH_ADMIN
Risk: MEDIUM
Protection level: DANGEROUS
Official Description
Allows applications to discover and pair bluetooth devices
Details
Bluetooth (Wikipedia: http://en.wikipedia.org/wiki/Bluetooth) is a technology that lets your phone communicate wirelessly over short distances. It is similar to Wi-Fi in many ways. It itself is not a danger to your phone, but it does enable a way for an application to send and receive data from other devices. Typical applications that would need bluetooth access include: sharing applications, file transfer apps, apps that connect to headset or wireless speakers.
Broadcast Sticky (Intents)
Hardware controls
URI: android.permission.BROADCAST_STICKY
Risk: LOW-MEDIUM
Protection level: UNKNOWN
Official Description
Allows an application to broadcast sticky intents. These are broadcasts whose data is held by the system after being finished, so that clients can quickly retrieve that data without having to wait for the next broadcast.
Details
The permission has to do with how applications "talk" to each other using a communication method called "Intents". While this permission is highly technical it is a relatively low importance. There are no know obvious malicious uses for this permission.
Change Configuration
Hardware controls
URI: android.permission.CHANGE_CONFIGURATION
Risk: MEDIUM-HIGH
Protection level: DANGEROUS
Official Description
Allows an application to modify the current configuration, such as locale.
Details
This is a permission that generally should not be granted to regular apps. Other than changing the locale (i.e. language), it is unclear what configuration changes this permission allows. As such, it should be treated with considerable caution.
Clear app cache
Hardware controls
URI: android.permission.CLEAR_APP_CACHE
Risk: LOW
Protection level: DANGEROUS
Official Description
Allows an application to clear the caches of all installed applications on the device.
Details
This permission is of low importance. It allows an app to clear the cache of apps on the phone or tablet. The cache is a place that an app stores recently used data for faster access. Clearing the cache can sometimes (very rarely) fix bugs related to those files. Clearing these files generally presents no risk other than to slow the performance of the phone or tablet (as apps will need to re-create the caches when used).
Disable Keyguard (lock screen)
(unknown category)
URI: android.permission.DISABLE_KEYGUARD
Risk: MEDIUM-HIGH
Protection level: DANGEROUS
Official Description
Allows applications to disable the keyguard
Details
This permission is of medium-high importance. It allows an app to disable the "lock screen" that most phones go into after going to sleep and been turned on again. This lockscreen can sometimes be a password screen, or a PIN screen, or just a "slide to unlock" screen.
Expand status bar
Hardware controls
URI: android.permission.EXPAND_STATUS_BAR
Risk: MEDIUM-HIGH
Protection level: UNKNOWN
Official Description
Allows an application to expand or collapse the status bar.
Details
This appears to be a system permission -- not for use by regular applications. If you come across this permission I would beware of any app requesting it that is not an Android system app.
Flashlight
Development tools
URI: android.permission.FLASHLIGHT
Risk: LOW
Protection level: UNKNOWN
Official Description
Allows access to the flashlight
Details
This allows apps to turn on or off the LED "flash" light used by the camera. This is a handy tool but usually of no risk itself.
Get package size
Hardware controls
URI: android.permission.GET_PACKAGE_SIZE
Risk: LOW-MODERATE
Protection level: UNKNOWN
Official Description
Allows an application to find out the space used by any package.
Details
This permission does not seem to have any risk associated with it.
Kill background processes
Hardware controls
URI: android.permission.KILL_BACKGROUND_PROCESSES
Risk: HIGH
Protection level: UNKNOWN
Official Description
Allows an application to call killBackgroundProcesses(String).
Details
This permission is a bit of a tricky one. Often this is used by what are called "task killers". These apps supposedly free system resources by closing apps running in the background. However the usefulness of such apps is minimal at best. They can help close an app that is misbehaving, however a user can already do that themselves through the Android settings under "Apps" or "Manage Applications". Conversely this permission has some potential to maliciously close anti-virus or other security related apps. As with anything I would treat this with caution. Few users should ever need an app with this permission. Rather, it could be an indicator of malicious intent (especially if not requested by a task killer or system performance tuning app).
Modify audio settings
Hardware controls
URI: android.permission.MODIFY_AUDIO_SETTINGS
Risk: LOW
Protection level: DANGEROUS
Official Description
Allows an application to modify global audio settings
Details
This permission is of low importance. Audio settings pose little to no risk to the device.
Format file systems
Your personal information
URI: android.permission.MOUNT_FORMAT_FILESYSTEMS
Risk: MEDIUM
Protection level: DANGEROUS
Official Description
Allows formatting file systems for removable storage.
Details
The primary danger with this permission is that it could be used to erase data from an SD card or other similar storage in your phone. This is also not a permission any normal app should need.
Mount / Unmount file systems
Your personal information
URI: android.permission.MOUNT_UNMOUNT_FILESYSTEMS
Risk: MODERATE
Protection level: DANGEROUS
Official Description
Allows mounting and unmounting file systems for removable storage.
Details
This permission just allows for connecting to SD cards for reading and writing. While not a risk itself, this is also not a permission any normal app should need.
NFC (Near Field Communication)
Your accounts
URI: android.permission.NFC
Risk: MEDIUM
Protection level: DANGEROUS
Continued On Page 9
Android Permissions & Security Explained Continued...
Continued From Page 8
Page 9 Of 10
Official Description
Allows applications to perform I/O operations over NFC
Details
NFC stands for Near Field Communication. This is a technology like Bluetooth that enables short range communication between two devices or the reading of NFC "tags". The distance which NFC is able to work is only a few centimeters so that devices (or a device and a tag) must effectively be touching each other to communicate. Due to the distance, this technology is not particularly dangerous. However it does present a small risk and it is something that should used with caution.
For more info: http://en.wikipedia.org/wiki/Near_field_communication
Process outgoing calls
Your location
URI: android.permission.PROCESS_OUTGOING_CALLS
Risk: VERY-HIGH
Protection level: DANGEROUS
Official Description
Allows an application to monitor, modify, or abort outgoing calls.
Details
This permission is of high importance. This would allow an app to see what numbers are called and other personal info. Generally this permission should only be seen on apps for VOIP (Voice Over Internet Protocol) like Google Voice or dialer replacement type apps.
Read sync stats
Hardware controls
URI: android.permission.READ_SYNC_STATS
Risk: MODERATE
Protection level: UNKNOWN
Official Description
Allows applications to read the sync stats
Details
This permission is related to "Read sync settings" but not particularly dangerous itself. There is a minor risk that some personal information could be gleaned from the sync stats, but the information is unlikely to be valuble. Sync in this case relates to syncing of contacts and other types of media on the phone.
Record audio
Development tools
URI: android.permission.RECORD_AUDIO
Risk: MODERATE-HIGH
Protection level: DANGEROUS
Official Description
Allows an application to record audio
Details
While this permission is not typically dangerous, it is a potential tool for eavesdropping. However recording audio has legitimate uses such as note taking apps or voice search apps. As a side note recording audio is typically a significant drain on the battery.
Set alarm
Hardware controls
URI: android.permission.SET_ALARM
Risk: LOW
Protection level: UNKNOWN
Official Description
Allows an application to broadcast an Intent to set an alarm for the user.
Details
This permission seems to be of low risk because it doesnt allow the setting of the alarm directly. Rather it allows the opening of the alarm app on the phone.
Set time zone
Hardware controls
URI: android.permission.SET_TIME_ZONE
Risk: LOW
Protection level: DANGEROUS
Official Description
Allows applications to set the system time zone
Details
This permission poses little, if any, risk
Set wallpaper
Hardware controls
URI: android.permission.SET_WALLPAPER
Risk: LOW
Protection level: UNKNOWN
Official Description
Allows applications to set the wallpaper
Details
This permission poses little, if any, risk
Subscribed feeds read
Development tools / Your personal info
URI: android.permission.SUBSCRIBED_FEEDS_READ
Risk: MEDIUM
Protection level: UNKNOWN
Official Description
Allows an application to allow access the subscribed feeds ContentProvider.
Details
This would give an app access to RSS feed that you have subscribed to. If you dont subscribe to any RSS feeds this permission is of little risk. If you do, this permission is akin to letting an app have access to your broser history. It could glean interests and preferences and other semi-personal information.
Subscribed feeds write
Development tools / Your personal info
URI: android.permission.SUBSCRIBED_FEEDS_WRITE
Risk: LOW-MEDIUM
Protection level: DANGEROUS
Official Description
(No developer documentation is available for this permission)
Details
This would give an app access to RSS feed that you have subscribed to. If you dont subscribe to any RSS feeds, this permission is of little risk. If you do, this permission is akin to letting an app have access to your broser history. It could glean interests and preferences and other semi-personal information.
Use SIP
Your accounts
URI: android.permission.USE_SIP
Risk: MEDIUM-HIGH
Protection level: DANGEROUS
Official Description
Allows an application to use SIP service
Details
SIP stands for Session Initiation Protocol. It is a technology mostly used for making video and voice calls over the Internet. While not a major security risk it should be treated with almost as much caution as the standard "make phone calls" permission.
Write secure settings
Hardware controls
URI: android.permission.WRITE_SECURE_SETTINGS
Risk: VERY-HIGH
Protection level: DEVELOPMENT
Official Description
Allows an application to read or write the secure system settings.
Details
This permission should only be seen on Android system apps (and possibly wireless carriers or hardware manufacturer pre-installed apps).
Write SMS
Services that cost you money
URI: android.permission.WRITE_SMS
Risk: HIGH
Protection level: DANGEROUS
Official Description
Allows an application to write SMS messages.
Details
This permission appears to be an offshoot from the "send SMS" permission. This should allow an app to write, but not send an SMS message. Users should still be cautious of this permission however. Many kinds of malware lure users into sending SMS to special for-pay numbers costing them money.
Write sync settings
Your messages
URI: android.permission.WRITE_SYNC_SETTINGS
Risk: MEDIUM
Protection level: DANGEROUS
Official Description
Allows applications to write the sync settings
Details
This permission relates to backup and sync of certain types of information like contacts. This allows an app to write settings for how that account and the data are sync and backed up. This is a common permission for social services or contact managers or any other type of app with an account associated with it. Alone, this permission doesn't allow an app access to contacts or other sensitive data. Rather, it just relates to how that data is backed up. Nevertheless, care should be taken as always.
Read profile
Development tools / Your personal info
URI: android.permission.READ_PROFILE
Risk: MEDIUM-HIGH
Protection level: DANGEROUS
Official Description
Allows an application to read the user's personal profile data.
Details
This a new permission that relates to a special new "Me" contact you can create in your phone or tablet as your own profile.
Install Shortcut (Android Launcher)
Hardware controls
URI: com.android.launcher.permission.INSTALL_SHORTCUT
Risk: MODERATE-HIGH
Protection level: UNKNOWN
Details
This is a custom permission for the default Android Laucher (the home screen). This permission would allow an app to put an icon or shortcut there. While not dangerous, this can sometimes be a sign of a potentially malicious or adware app. For more on adware, see the guides section of PocketPermissions.
Read external storage
Your personal information
URI: android.permission.READ_EXTERNAL_STORAGE
Risk: LOW
Protection level: UNKNOWN
Official Description
Allows an application to read from external storage.
Details
This permission is granted to all apps by default.
Read SMS
System tools
URI: android.permission.READ_SMS
Risk: MODERATE-HIGH
Protection level: DANGEROUS
Details
This permission is mostly a privacy concern. Any app that can read your SMS messages could gather a lot of information about you. However there are quite a few legitimate reasons an app may request this. Some apps are simply "SMS replacment" apps (such as Handcent) and would naturally need this permission to function. Other apps sometimes use this as a way of sending a special code to you device. This can be used by a paid app by sending a code to unlock the full version of an app. Or, this can be used by security apps to listen for a special shutdown codes in case your phone is stolen.
Write call log
Your location
URI: android.permission.WRITE_CALL_LOG
Risk: MEDIUM-HIGH
Protection level: DANGEROUS
Details
This permission is not much of a danger by itself, but rather could be used to hide other malicious behavoir. However it has a legitimate purpose for dialer replacements or voice over IP apps (like Google Voice).
Write profile
Development tools / Your personal info
URI: android.permission.WRITE_PROFILE
Risk: MODERATE-HIGH
Protection level: DANGEROUS
Details
This a new permission that relates to a special new "Me" contact you can create in your phone or tablet as your own profile.
Read social stream
Development tools / Your personal info
URI: android.permission.READ_SOCIAL_STREAM
Risk: HIGH
Protection level: DANGEROUS
Details
This permission is very important. It is a new permission introduced with Android 4.0 (Ice Cream Sandwhich). This permission would allow an app to read updates from social networking apps like Google+, Twitter, and Facebook. By granting this permission you are giving an app the ability to read not only your information, but any updates posted by people in your social circles.
Add voicemail
System tools
URI: com.android.voicemail.permission.ADD_VOICEMAIL
Risk: MEDIUM-HIGH
Protection level: DANGEROUS
Details
This seems to be a new permission related to Android's new centralized voicemail system. It would be an unusual means for an app to use this permission maliciously. However few apps should need it and, as always, it should be treated with caution.
Authenticate Accounts
Your messages
URI: android.permission.AUTHENTICATE_ACCOUNTS
Risk: VERY-HIGH
Protection level: DANGEROUS
Details
This permission is of high importance. It allows an app to authenticate credentials (such as passwords). Typical uses of this would be if an app had it's own type of account on your phone such as Google, Facebook, or Twitter.This permission is closely related to the Account Manager permission. Both are typically requested together.While this doesn't directly give an app access to your personal information or passwords, it does present a security risk for phishing (tricking the user into revealing their password). For more on phishing, see the Guides section of PocketPermissions)
Read email attachments
Development tools / Your personal info
URI: com.android.email.permission.READ_ATTACHMENT
Risk: HIGH
Protection level: DANGEROUS
Details
This is a custom permission for the default Android email app (i.e. not Gmail). This permission should be treated with great caution. Many email attachments contain highly sensitive and personal or financial information.
Read user dictionary
Development tools / Your personal info
URI: android.permission.READ_USER_DICTIONARY
Risk: LOW
Protection level: DANGEROUS
Official Description
Allows an application to read the user dictionary.
Details
This would allow an app to read words added to your custom dictionary. Oftentimes this is abbreviations like "brb" that you might add for typing text messages. Unless you save personal information in your dictionary, this permission is of almost no risk.
Write user dictionary
Hardware controls
URI: android.permission.WRITE_USER_DICTIONARY
Risk: LOW
Protection level: UNKNOWN
Official Description
Allows an application to write to the user dictionary.
Details
This alows an app to add custom words to your user dictionary. For example, the common acronym "brb" for "be right back".
Receive SMS
System tools
URI: android.permission.RECEIVE_SMS
Risk: HIGH
Protection level: DANGEROUS
Official Description
Allows an application to monitor incoming SMS messages, to record or perform processing on them.
Details
This permission is mostly a privacy concern. Any app that can read your SMS messages could gather a lot of information about you. However there are quite a few legitimate reasons an app may request this. Some apps are simply "SMS replacment" apps (such as Handcent) and would naturally need this permission to function. Other apps sometimes use this as a way of sending a special code to you device. This can be used by a paid app by sending a code to unlock the full version of an app. Or, this can be used by security apps to listen for a special shutdown codes in case your phone is stolen.
Receive MMS
System tools
URI: android.permission.RECEIVE_MMS
Risk: HIGH
Protection level: DANGEROUS
Official Description
Allows an application to monitor incoming MMS messages, to record or perform processing on them.
Details
This permission is mostly a privacy concern. Any app that can read your MMS messages could gather a lot of information about you. However there are quite a few legitimate reasons an app may request this. Some apps are simply "SMS/MMS replacment" apps (such as Handcent) and would naturally need this permission to function.
Install DRM
Hardware controls
URI: android.permission.INSTALL_DRM
Risk: MODERATE-HIGH
Protection level: UNKNOWN
Details
DRM stands for Digital rights management. Typically this permission is not particularly dangerous itself. However, it is a permission related to controlling access to medi such as books, audio video, and more. Due to its purpose to control access, I would be especially careful installing any app requesting it.More info: http://en.wikipedia.org/wiki/Digital_rights_management
Add system service
Hardware controls
URI: android.permission.ADD_SYSTEM_SERVICE
Risk: CRITICAL
Protection level: UNKNOWN
Details
This permission should only be given to Android System apps (and possibly to wireless carrier or hardware manufacturer pre-installed apps)
Access WiMax State
Your accounts
URI: android.permission.ACCESS_WIMAX_STATE
Risk: LOW-MODERATE
Protection level: UNKNOWN
Details
WiMax is a technology developed for "4G" data and internet speeds on mobile devices. This permission allows an app to see if it is currently connected to a wireless network that uses WiMax. There is no significant risk associated with this permission.
Change WiMax state
Your accounts
URI: android.permission.CHANGE_WIMAX_STATE
Risk: MODERATE
Protection level: DANGEROUS
Details
This permission allows an app to turn on or off the WiMax radio. WiMax is a type of "4G" wireless connection like LTE. This permission essensially allows an app to turn on or off 4G.
Read instant messages (IM)
Development tools / Your personal info
URI: com.android.providers.im.permission.READ_ONLY
Risk: HIGH
Protection level: UNKNOWN
Details
This is apermission realated to reading instant messages, such as those on GooleTalk.
RECEIVE
(unknown group)
URI: com.google.android.c2dm.permission.RECEIVE
Risk: LOW
Protection level: UNKNOWN
Details
C2D stands for Cloud to Device Messaging. This is a push notification technology that is being phased out for a similar technology called GCM. (Google Cloud Messaging). This permission is of little to no risk.
In-app billing
Services that cost you money
URI: com.android.vending.BILLING
Risk: CRITICAL
Protection level: UNKNOWN
Source
Continued On Page 10
Android,Terms,Slang and Definitions Continued...
Continued From Page 10...
Page 11 Of 11
Digitizer: Device for converting analogue signals into digital signals
YAFFS:Yaffs1 is the first version of this file system and works on NAND chips that have 512 byte pages + 16 byte spare (OOB;Out-Of-Band) areas.[clarification needed] These older chips also generally allow 2 or 3 write cycles per page,which YAFFS takes advantage of - i.e. dirty pages are marked by writing to a specific spare area byte.
Newer NAND flash chips have larger pages, 2048 bytes + 64 bytes spare areas, and stricter write requirements.Each page within an erase block (128 kilobytes) must be written to in sequential order, and each page must be written only once.YAFFS2 was designed to accommodate these newer chips.YAFFS2 is based on the YAFFS1 source code,with the major difference being that internal structures are not fixed to assume 512 byte sizing,and a block sequence number is placed on each written page. In this way older pages can be logically overwritten without violating the "write once" rule.[clarification needed]
YAFFS is a robust log-structured file system that holds data integrity as a high priority.A secondary YAFFS goal is high performance.YAFFS will typically outperform most alternatives.It is also designed to be portable and has been used on Linux, WinCE, pSOS, eCos,ThreadX and various special-purpose OSes.A variant 'YAFFS/Direct' is used in situations where there is no OS, embedded OSes and bootloaders: it has the same core filesystem but simpler interfacing to the OS and NAND flash hardware.
Zipalign: An archive alignment tool introduced first time with 1.6 Android SDK (software development kit). It optimizes the way an Android application package (APK) is packaged. Doing so enables the Android operating system to interact with the application more efficiently, and hence has the potential to make the application and overall the whole system much faster. Execution time is minimized for zipaligned applications, resulting is lesser amount of RAM consumption when running the APK.
.apk: The file extension of an Android application.
Apps2SD: An unique method of storing applications on the device's microSD partition(EXT.). An official method was included in Android 2.2, mostly making this moot.
Bloat(ware): Applications/widgets -- usually unwanted -- that are preloaded onto a device.
CDMA: Short for Code-Division Multiple Access, a digital cellular technology that uses spread-spectrum techniques.
DLNA: Dynamic Living Network Alliance. A method for wirelessly streaming photos and videos from your smartphone to your TV.
GPS: Stands for Global Positioning System. Uses a constellation of satellites in space to find your location on the ground.
GSM: (Global System for Mobile Communications, originally Groupe Spécial Mobile), is a standard set developed by the European Telecommunications Standards Institute (ETSI) to describe protocols for second generation (2G) digital cellular networks used by mobile phones.
IMEI: Stands for International Mobile Equipment Identity. Basically a unique identification number assigned to every phone.
Launcher: Collectively, the part of the Android user interface on home screens that lets you launch apps, make phone calls, etc.
LTE: Stands for "Long-Term Evolution." Is considered to be one of the "true" methods of 4G data (even if it technically isn't). First rolled out by Verizon in late 2010, and then by AT&T in late 2011, and Sprint will begin using it in mid-2012.
MTP: Stands for Media Transfer Protocol. Designed by Microsoft, and used by devices that have a single, unpartitioned storage structure to transfer files to and from a computer.
NFC: Near-field communication. Short-range communication between your phone and something else -- another phone, a cash register, etc. Used by some credit cards as a method of quick payment.
OEM: Stands for Original Equipment Manufacturer. Usually a company that produces a component or entire device for another company.
Open GL: An open source 3D graphics library used in many devices, including Android devices.
Open Source: Software which is liberally licensed to grant the right of users to study, change, and improve its design through the availability of its source code.
OTA: Stands for Over the Air. The act of moving data to your phone -- downloading, really -- without having to plug it in. Most Android system updates are OTA, as are application downloads.
Pixel: An individual dot on the display. Also a way to measure the resolution of a camera (usually in millions of pixels). Pixels usually are made up of sub-pixels. The arrangement of those sub-pixels affects the way you see images and text.
PPI: Pixels per inch. How we determine a display's "pixel density." The more pixels in a display, the better graphics and text look.
PRL: The Preferred Roaming List, basically a way of telling your phone which towers to connect to first.
Project Butter: Software enhancements introduced in Android 4.1 to improve the smoothness of on-screen transitions and animations. Project Butter uses software tricks like vertical sync (vsync) and triple-buffering to display a smooth, consistent frame rate throughout the UI.
SDK: Stands for Software Development Kit. Generally, a set of tools used to create software for a certain platform following guidelines provided in the kit. For Android, the SDK provides tools to create applications that run on Android devices.
Sideload: The act of installing an app outside of the Android Market.Installing 3rd party application,using your external sd card or a type of cloud storage.
Soft Reset: A "soft" reset is by far the most common type of reset any PDA user will come across, and is often useful in solving minor problems and strange behaviour. When you perform a soft reset of a PDA, you are essentially causing the device to stop everything it is running, and restart - much like rebooting a PC.
Hard Reset: Sometimes also referred to as a "factory reset", a hard reset is an extremely serious process, because performing a hard reset will always wipe all the data from your PDA and return it to the settings it originally had when purchased.
Tethering: The act of using your smartphone's data to provide Internet access to another device, such as a laptop. Can be done wirelessly, or via a USB cable.
USB: Stands for Universal Serial Bus. Is a method of connecting devices to a computer. Most smartphones now use microUSB cables to charge and sync.
UMS: Stands for USB Mass Storage. Devices with SD cards or partitioned internal storage mount that storage as UMS when connecting to a computer. Files can then be moved to and from the device.
Continued On Page 12...
Laiman Terms Android Guides Continued...
Continued From Page 11...
Page 12 Of 12
How to backup or transfer apps/photos/videos/music/etc from your Android phone to the cloud or desktop computer
Smartphones make for great point-and-shoot camera replacements, which means many people use their phones exclusively to take all of their photos and keep up with memories. The problem with that is that phones can easily get lost or stolen, SD cards can go bad or any number of things that can cause you to lose months or years of pictures unexpectedly. In this guide, we’re going to go over how to backup your pictures, just in case you run into some data loss down the road.
Connecting your Android device to your computer with a USB cable can be annoying and almost prehistoric. Most people have WiFi networks set up in their home and anyone using a smartphone is going to have a data connection, so why not use those to transfer files to and from your computer with your device? It’s easier and you’re not chained to a USB cable when you want to move some music around. There’s several different ways to get the job down, and this guide is going to go through some of those options.
Backup to your PC
The quickest way to backup your pictures is to connect your device to your computer and copy your photos, but it can be a little confusing to find exactly where your photos are at on your device. Many Android devices have internal storage and an SD card slot, so there can be two possible locations for it, and there’s tons of folders in both locations, especially if you have tons of apps. If you know what you’re looking for, it’s not too hard to navigate, and that’s where this guide comes in.
First things first, connect your phone to one of your computer’s USB ports with your USB cable. If you’re using Windows, you’ll see a new device show up in the left pane of Windows Explorer, around where your hard drive is listed. Some models require a driver or software to be installed in order to see the internal storage. If so, just follow the prompts to install it.
If you do have a device that has both internal storage and an SD card, you’re going to see two locations listed in your device. “Card” will be the SD card inserted in the phone, obviously, and “Phone” will be the phone’s internal storage. Most people tend to store photos on the SD card so it’s easier to move photos between devices, but either option works. Open up whichever storage you use to hold your pictures, and you’ll be able to see every file and folder that’s stored in it. For this example, we’re going to use the SD card because it’s less likely to be cluttered with folders from apps, but if you’re using your phone’s internal storage to hold your photos, it’s not uncommon to see dozens of folders here. You’re going to want to find the folder labeled DCIM. (Digital Camera IMages).
Opening your DCIM folder can show a few different folders, but you’re going to want the Camera folder. Open it to make sure all of your photos and videos are in it. Now we need move you stored pictures to your computer’s hard drive for backup. The easiest way to do this is to go back to the root of the DCIM folder (where you can see the Camera folder instead of the individual photos) and right-click and copy that entire Camera folder. Then, find a suitable place to backup your photos, which could be in your Photos library or just your desktop, and right-click and paste the folder. The copy process might take a few minutes depending on how many photos you have, but after it’s done you’ll have two copies of your photos in both places.
If you primarily take photos in other apps, such as Instagram, the photos may not be stored in the DCIM/Camera folder. Most apps will store photos in a Pictures folder, so for Instagram you would look for an Instagram folder inside the Pictures folder on your device storage. Aside from that, however, the copy/paste process is identical.
Cloud Backup
Connecting your phone to your computer to backup photos is an easy way to keep your memories safe, but it’s still a hassle to connect your device to your computer and manually move everything over. It also isn’t a feasible solution for someone that uses something like a Chromebook or tablet for their primary computer. Fortunately, you can use Dropbox’s fantastic app to automatically keep your photos backed up to the cloud, no cables involved.
If you already use Dropbox to frequently store files in their cloud, setting up Dropbox to automatically sync your photos is a piece of cake. If you don’t have a Dropbox account, you can get a free account and get 2 GB of space to store your photos, which, for most people, is way more than enough storage.
First things first, if you don’t already have the Dropbox application, you can grab it off of Google Play. It’s a free app, so no worries there. You can either sign into your current account or create one. During the initial setup, Dropbox will prompt you to setup your automatic photo backups. You can choose to either upload photos on your data connection and WiFi, or only WiFi. For most people with a data cap, sticking to WiFi uploads is the best option as Dropbox uploads photos immediately after taking them. If you snap a few dozen photos, you can burn through quite a bit of data in a short time without realizing it, and this is doubly true for videos. There’s also an option to go ahead and upload your current photos and videos on your device to Dropbox. Another cool aspect of the photo backup is that your first photo upload gets you an extra 500 MB of free storage space, so you’ll come in close to 2.5 GB total space.
If you already use Dropbox but don’t have the camera upload turned on, you can find the option to turn it on in the settings menu. It walks you through setup just like a first-time user, and you’ll still get your extra 500 MB for your first upload.
All of your uploaded pictures and videos are stored in a Camera Uploads folder in your Dropbox account, which can be accessed from the Dropbox app or any web browser from any device. You can even install the Dropbox desktop application and all your photos will be automatically copied to your desktop/notebook. You will find a Dropbox folder under your username folder (PCs) which always be in sync with the Dropbox website. Once you photos are copied to Dropbox, you can delete them from your phone if you wish. You can also move photos into Dropbox’s Public folder to easily share them with your friends and family, which is a great tool for those of you that are heavily dependent on social networking sites.
The downside to using Dropbox’s Camera Upload is obviously the data usage and battery usage. It’s not a huge battery drain, but naturally the more often your device has to wakeup to upload something, the more effect it’s going to have on your battery. If you don’t mind giving up a bit of battery for the extreme convenience Dropbox offers, though, it’s a great tool to use.
Obviously, Dropbox isn’t the only cloud storage solution for backing up your pictures, but in my opinion, it is easiest to access and effective way. Google offers photo backups through Google+, but they can’t be access in Google Drive the same way Dropbox allows you to from your desktop. Any other cloud service like Box or SkyDrive could also be theoretically used to backup your photos, but they won’t be as automatic as Dropbox.
As mentioned above,cloud storage is becoming the norm for keeping files stored, and Dropbox is at the front of that revolution. But in addition to keeping files stored and synced, you can also use it as a makeshift file transfer application, with or without WiFi. File transfers aren’t quite as fast as they would be with direct WiFi transfer, but it can be a little more flexible to work with.
The first step is moving whatever file you want to transfer to your Dropbox storage space. You can do this through a web browser or you can download the Dropbox application on a PC or Mac to have easy access to it. This is definitely the slowest part, as most people don’t have speedy upload speeds for their internet. Generally, though, for a few pictures or songs, it shouldn’t take more than a few minutes. After the files are moved onto Dropbox, you can access them through the Dropbox app on your Android phone. Download speeds vary here, and if you’re using 3G or 4G, it’ll eat a bit into your data cap, but this works extremely well if you’re at a friend’s house without your USB cable and you need to save a few files off of their computer. You can also favorite any files on your Android device that you want to store for offline access, including pictures, music, and documents. It’s also great for keeping folders synced between your phone and computer.
WiFi File Transfer
There are also options for simply moving files around your WiFi network for photo backups, too. For simplicity, though, Dropbox and the direct PC connection are your two best options.
WiFi File Transfer is a popular app that works very well for moving files around your home network. It’s not flashy, but it gets the job done. The app starts up a service and produces a URL that you can type into your computer’s web browser, and as long as that service is running, you can see your device’s internal memory and SD card. From here, you can download any files to your computer, or upload files onto the phone: music, pictures, movies, word documents, etc. The transfers are very quick, and depending on your router, are even faster than a USB connection.
The free version of WiFi File Transfer is fully functional but can only upload files less than 4 MB in size. That definitely rules out any movies, and most music, too. The Pro version removes this limit, and for only $1.40, it’s worth the convenience of never needing a USB cable for file transfers again.
Samba
Samba servers are a little more complex than what we’ve covered, but they’re also more convenient, with just one caveat; if you’re running Windows on your computer, your Android device is probably going to need root. If you’ve got a rooted device, this is easily the best option to use to get your files transferred. Essentially, installing a Samba server app on your device turns it into a network drive that you can see just like a regular USB stick on your computer as long as they’re connected to the same WiFi network. From here, you can drag and drop files to and from the phone, just like you would if it was connected to your computer via USB cable.
If you’ve got your device rooted, you’re already past the first step. If not, you can check out our guide to get you started. Next, you’ll just need a Samba server app, and in this case I’d recommend this simple Samba Filesharing application just because it’s straightforward to use. In the app, it’ll ask you to set a password before you can enable the server, and you can optionally change the name of your device on the network. After that’s out of the way, you simply enable the server and check for your device on your computer’s network, and you’ll have access to your files after you put in the password you set up. Just enable the server whenever you’re on WiFi to get to your files, and turn the server off when you’re done.
As always, there’s a few different ways you can move files around on your home network. These three just happen to be the most convenient and painless.
How to boot your Android phone or tablet into safe mode for troubleshooting
Android is a relatively stable mobile operating system, but every now and then, performance issues arise. Safe mode is a great tool that you can use to troubleshoot these issues. Safe mode boots your phone running only the apps that came with the phone – that means no third-party apps. Therefore, if your phone runs without an issue when you’re in safe mode, it’s a pretty good bet that the problem isn’t system related, and instead a third party app you downloaded.
Click through the break to see how you can enable safe mode to test if it’s a system problem or a third-party problem.
Unfortunately, not all phones have the same method to enter safe mode. Most Jelly Bean devices use the first method below, but some devices with older versions of Android and some newer devices (like the Galaxy S 4 and HTC One) use the alternate method further down the page.
Method 1 (most Jelly Bean devices)
1. Hold down the physical power button on your device.
2. Long-press the “Power off” option that appears.
3. A dialog box asking you if you want to reboot to safe mode may pop up. Tap OK.
(Note: If the box doesn’t appear, go on to the alternate method.)
4. When the phone reboots, you should see a “Safe Mode” watermark at the botom left of the screen, to let you know that you are in fact in safe mode.
Alternate Method (some older versions of Android and some Jelly Bean phones)
1. Turn off your phone.
2. Once your phone is off, turn it on by pressing the power button.
3. As your phone is booting, hold down both the volume up and volume down buttons (yes, both) and keep them held.
4. Once your phone has booted, you should see a “Safe Mode” watermark at the botom left of the screen, to let you know that you are in fact in safe mode.
Note: If the alternate method also doesn’t work, you can try holding down menu instead of volume up and down while booting.
In safe mode, while you can’t use third party apps, you can uninstall them. So if your phone is giving you problems as bad as freezing and not letting you uninstall apps, you can uninstall the problem app/apps in safe mode. In addition, if you need to, you can backup your data or factory reset your device in safe mode .
To exit safe mode, you just restart your device as you normally would.
Happy troubleshooting!
How to add password protection to your Google Play Store account to prevent unintentional purchases
If you’ve ever let a child play with your smartphone, then you know how worrisome that can be. A wrong tap here, another wrong tap there and your credit card might be charged for money that you’d rather keep in your account. Fortunately, Google has a hidden setting to enable password protection and prevent accidental purchases from the Google Play Store. All you need to do is follow the steps after the break and you’re golden.
1)Open the Google Play Store app.
2)Tap your menu button, and then tap settings.
3)Under “User Controls,” you’ll see an option and checkbox for “Password.” If that’s not checked, tap that option.
4)You will be asked to confirm your password. Type in your Google account’s password, and then tap OK.
And there you go! You will now be required to type in your Google password each and every time you make a purchase through the Play Store – and that includes in-app purchases. One thing to keep in mind is that once you enter your password to purchase an app, you won’t be required to re-enter your password for the next 30 minutes. After 30 minutes or more, you will be required to enter your password again to make any purchases.
Source
Laiman Terms Android Guides Continued...
Continued From Page 12...
Page 13
Android SDK Installation Guide
First you’ll need to download the Android SDK source files: Android SDK
System Requirements
In order to first use the Android SDK code and tools for development you will of course need a suitable environment develop from.
Currently the following operating systems are supported:
Windows XP or Vista
Mac OS X 10.4.8 or later (x86 only)
Linux (tested on Linux Ubuntu Dapper Drake)
You will also need to install a suitable development environment such as Eclipse: Eclipse 4.3
Android Development Tools plugin (optional)
Other development environments or IDEs
JDK
Apache Ant 1.6.5
Installing The Android SDK
First you will need to download the Android SDK pack .zip archive, once downloaded find a suitable installation location on your machine and extract the zipped files.
Please note: This installation location will be referred to as $SDK_ROOT from now on through this tutorial
Alternatively you can add /tools to your root path which will prevent the need to specify the full path to the tools directory along with enabling you to run Android Debug Bridge (adb) along with other command line tools.
To add /tools:
1)Linux
Edit the ~/.bash_profile or ~/.bashrc files looking for a line that sets the PATH variable.
Add the full path location to your $SDK_ROOT/tools location for the PATH variable.
If no PATH line exists you can add the line by typing the following:
export PATH=${PATH}:<path to your $SDK_ROOT/tools>
2)Mac OS X
In the home directory locate the .bash_profile and locating the PATH variable add the location to your $SDK_ROOT/tools folder.
3)Windows XP / Vista
Right click on the My Computer icon and select the properties tab.
Select the Advanced tab and click the Environment Variables button.
In the new dialog box dowble-click on Path (located under System Variables) and type in the full path location to the tools directory.
The Android SDK also requires a suitable development environment to work in, here’s the installation guides for each of the supported environments.
Android Eclipse Plugin (ADT)
If you choose to use the Eclipse IDE as your Android development environment you will have the opportunity to install and run a plug-in called Android Development Tools. ADT comes with a variety of powerful tools and extensions that will make creating, running and debugging your Android applications much easier and faster.
In order to download and install ADT you will first need to configure an Eclipse remote update, this can achieved via the following steps:
1)Start Eclipse, then select Help > Software Updates > Find and Install….
2)In the dialog that appears, select Search for new features to install and press Next.
3)Press New Remote Site.
4)In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL: https://dl-ssl.google.com/android/eclipse/.
5)Press OK.
6)You should now see the new site added to the search list (and checked).
7)Press Finish.
8)In the subsequent Search Results dialog box, select the checkbox for Android Plugin > Eclipse Integration > Android Development Tools and press Next.
9)Read the license agreement and then select Accept terms of the license agreement, if appropriate.
10)Press Next.
11)Press Finish.
12)The ADT plugin is not signed; you can accept the installation anyway by pressing Install All.
13)Restart Eclipse.
14)After restart, update your Eclipse preferences to point to the SDK root directory ($SDK_ROOT):
Select Window > Preferences… to open the Preferences panel. (Mac OS X: Eclipse > Preferences)
Select Android from the left panel.
For the SDK Location in the main panel, press Browse... and find the SDK root directory.
15)Press Apply, then OK
Updating the ADT Plugin
To update the ADT plugin to the latest version, follow these steps:
1)Select Help > Software Updates > Find and Install….
2)Select Search for updates of the currently installed features and press Finish.
3)If any update for ADT is available, select and install.
Alternatively:
1)Select Help > Software Updates > Manage Configuration.
2)Navigate down the tree and select Android Development Tools <version>
3)Select Scan for Updates under Available Tasks.
Coming Soon! How-To Use Eclipse To Develop Android Applications
Source
Reserved
Reserved
Reserved
Reserved
Reserved
taat3 said:
This is gold my friend.Thank you for the time and effort .
Click to expand...
Click to collapse
Yashu1019 said:
You have one big encyclopedia on android in ur head.....thanks dude... helped very much
Click to expand...
Click to collapse
lekroz said:
Thanks
Click to expand...
Click to collapse
Cpt Streamline said:
This is a great post. I am a Noob when it comes to rooting/flashing/developing for Android and I am trying to learn as much as possible. This post will definatly help.
Sent from my GT-P7510 using xda premium
Click to expand...
Click to collapse
Rucifel said:
Thanks for this very useful post. I'm still new to android, and this post will help me a lot.
Click to expand...
Click to collapse
obagiro said:
A Bible for noobies like my poor self... (you gotta start it someday)
Sent from my GT-I9000 using XDA App
Click to expand...
Click to collapse
You're welcome guys,i'm glad it helped you,thats what its here for.
nestorx said:
Eye opener for us first time users of Android... thnks
Click to expand...
Click to collapse
I'm glad its helping you guys,i don't want to contribute something noone can use.

Android terms and definitions

This isnt my work and this is the hardwork of Diablo67 and i thought that this would be useful in our forum. All thanks to Diablo67
I figured i would post this thread to help all of the new members and experienced understand the Android slang,there are actually a few i did'nt know the meaning of until i made this thread.I have compiled most of the terms,definitions and slang i could dig up,if theres anything i missed,let me know and i will add it to the thread,otherwise i will update this thread as new slang,terms and definitions are presented to me.
Apps2SD:A method of storing applications and cache on the device's microSD card.
ADB:Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It is a client-server program that includes three components:
•A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.
•A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.
•A daemon, which runs as a background process on each emulator or device instance.
Android:A Linux-based operating system for mobile devices such as HTC EVO.Versions are alphabetically codenamed after snacks: Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Donut.
AMOLED:Active Matrix Organic Light Emitting Diode. Basically, a very colorful, bright, display found in some smartphones.
APK:Android application package file. Each Android application is compiled and packaged in a single file that includes all of the application's code (.dex files), resources, assets, and manifest file. The application package file can have any name but must use the .apk extension. For example: myExampleAppname.apk. For convenience, an application package file is often referred to as an ".apk".
Alpha:The alpha phase of the release life cycle is the first phase to begin software testing (alpha is the first letter of the Greek alphabet, used as the number 1). In this phase, developers generally test the software using white box techniques. Additional validation is then performed using black box or gray box techniques, by another testing team. Moving to black box testing inside the organization is known as alpha release.[1]
Alpha software can be unstable and could cause crashes or data loss. The exception to this is when the alpha is available publicly (such as a pre-order bonus), in which developers normally push for stability so that their testers can test properly. External availability of alpha software is uncommon in proprietary software. However, open source software, in particular, often have publicly available alpha versions, often distributed as the raw source code of the software.
The alpha phase usually ends with a feature freeze, indicating that no more features will be added to the software. At this time, the software is said to be a feature complete.
Boot Animation:Boot animation is a term for a graphical representation of the boot process of the operating system.
Boot animation can be a simple visualisation of the scrolling boot messages in the console, but it can also present graphics or some combinations of both.
Unlike splash screens, boot screen or boot animation is not necessarily designed for marketing purposes, but can be to enhance the experience of the user as eye candy, or provide the user with messages (with an added advantage of color coding facility) to diagnose the state of the system.
Bootloader:This small program's only job is to load other data and programs which are then executed from RAM.Often, multiple-stage boot loaders are used, during which several programs of increasing complexity load one after the other in a process of chain loading.
Bootloop:When your system recycles over and over without entering the main OS.
Beta: is the software development phase following alpha. It generally begins when the software is feature complete. Software in the beta phase will generally have many more bugs in it than completed software, as well as speed/performance issues. The focus of beta testing is reducing impacts to users, often incorporating usability testing. The process of delivering a beta version to the users is called beta release and this is typically the first time that the software is available outside of the organization that developed it.
The users of a beta version are called beta testers. They are usually customers or prospective customers of the organization that develops the software, willing to test the software without charge, often receiving the final software free of charge or for a reduced price.
Beta version software is often useful for demonstrations and previews within an organization and to prospective customers. Some developers refer to this stage as a preview, prototype, technical preview (TP), or early access.
Some software is kept in perpetual beta—where new features and functionality is continually added to the software without establishing a firm "final" release.
CPU:It stands for Central Processing Unit and handles all the complex mathematical formulas necessary to do everyday things like surfing the Internet.
Custom:Independent developers who like to customize their devices beyond the standard options provided often tend to release the fruits of their labor for the rest to enjoy, in form of custom ROMs.
Cache:A component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere. If requested data is contained in the cache (cache hit), this request can be served by simply reading the cache, which is comparatively faster. Otherwise (cache miss), the data has to be recomputed or fetched from its original storage location, which is comparatively slower. Hence, the greater the number of requests that can be served from the cache, the faster the overall system performance becomes.
CDMA:Mobile phone standards called cdmaOne, CDMA2000 (the 3G evolution of cdmaOne) and WCDMA (the 3G standard used by GSM carriers), which are often referred to as simply CDMA, and use CDMA as an underlying channel access method.
CIQ:Carrier IQ. A piece of preinstalled software that runs with elevated access in the background of portable devices by default and records everything. Potentially can be exploited to steal information.
Dual Core:A dual core processor is a central processing unit (CPU) that has two separate cores on the same die, each with its own cache. It essentially is two microprocessors in one. This type of CPU is widely available from many manufacturers. Other types of multi-core processors also have been developed, including quad-core processors with four cores each, hexa-core processors with six, octa-core processors with eight and many-core processors with an even larger number of cores.
Dalvik:The Android platform's virtual machine. The Dalvik VM is an interpreter-only virtual machine that executes files in the Dalvik Executable (.dex) format, a format that is optimized for efficient storage and memory-mappable execution.
Dalvik Cache:Writable cache that contains the optimized bytecode of all apk files (apps) on your Android device. Having the information in it's own cache makes applications load faster and perform better.
EXT2:The ext2 or second extended filesystem is a file system for the Linux kernel. It was initially designed by Rémy Card as a replacement for the extended file system (ext).
ext2 was the default filesystem in several Linux distributions, including Debian and Red Hat Linux, until supplanted more recently by ext3, which is almost completely compatible with ext2 and is a journaling file system. ext2 is still the filesystem of choice for flash-based storage media (such as SD cards, and USB flash drives) since its lack of a journal minimizes the number of writes and flash devices have only a limited number of write cycles. Recent kernels, however, support a journal-less mode of ext4, which would offer the same benefit along with a number of ext4-specific benefits.
EXT3:Third extended filesystem, is a journaled file system that is commonly used by the Linux kernel. It is the default file system for many popular Linux distributions, including Debian. Stephen Tweedie first revealed that he was working on extending ext2 in Journaling the Linux ext2fs Filesystem in a 1998 paper and later in a February 1999 kernel mailing list posting, and the filesystem was merged with the mainline Linux kernel in November 2001 from 2.4.15 onward.Its main advantage over ext2 is journaling, which improves reliability and eliminates the need to check the file system after an unclean shutdown. Its successor is ext4.
EXT4:It was born as a series of backward compatible extensions to ext3, many of them originally developed by Cluster File Systems for the Lustre file system between 2003 and 2006, meant to extend storage limits and add other performance improvements.However, other Linux kernel developers opposed accepting extensions to ext3 for stability reasons,and proposed to fork the source code of ext3, rename it as ext4, and do all the development there, without affecting the current ext3 users. This proposal was accepted, and on 28 June 2006, Theodore Ts'o, the ext3 maintainer, announced the new plan of development for ext4.
FC/FC's:Short for "force close," meaning an app that has crashed.
Fastboot:A diagnostic protocol used primarily to modify the flash filesystem in Android smartphones from another computer over a USB connection. It is part of the Android Debug Bridge library.
Utilizing the Fastboot protocol requires that the device be started in a boot loader or Second Program Loader mode in which only the most basic hardware initialization is performed. After enabling the protocol on the device itself it will accept any command sent to it over USB via a command line. Some of most commonly used fastboot commands include:
•flash - Overwrites a partition in flash with a binary image stored on the host computer.
•erase - Erases a partition in flash.
•reboot - Reboots the device into the either the main operating system or the system recovery partition.
•devices - Displays a list of all devices (with Serial #) connected to the host computer.
Flashing:The ROM memory used in smartphones and tablets etc. is often same as flash memory found in SD cards and USB flash drives, simply optimized for better speed and performance while running the operating system.
Hotspot:A spot that offers Internet access over a wireless local area network through the use of a router connected to a link to an Internet service provider. Hotspots typically use Wi-Fi technology.You can connect wifi campatible devices to it.
HDMI:High-Definition Multimedia Interface) is a compact audio/video interface for transmitting encrypted uncompressed digital data.It is a digital alternative to consumer analog standards, such as radio frequency (RF) coaxial cable, composite video, S-Video, SCART, component video, D-Terminal, or VGA (also called D-sub or DE-15F). HDMI connects digital audio/video sources (such as set-top boxes, DVD players, HD DVD players, Blu-ray Disc players, AVCHD camcorders, personal computers (PCs), video game consoles (such as the PlayStation 3 and Xbox 360), AV receivers, tablet computers, and mobile phones) to compatible digital audio devices, computer monitors, video projectors, and digital televisions.
Hboot:It’s mainly responsible for checking and initializing the hardware and starting the phone’s software. It can also be used for flashing official software releases, as well as a few other things. HBoot can be compared to the BIOS on a computer.
HAVS:a control system that dynamically adjusts the voltage based on CPU load. This has proven to be a battery saver, but it can actually have the opposite effect when multiple control systems are operating (like setCPU).
JIT:The Just-in-Time Compiler. Released with Android 2.2, it's a method of greatly speeding up apps in Android on the software side.
Kang:Someone writes a code,someone else modifies the code to make their own release,its concidered a kang release.
Kernel:A kernel is a layer of code that allows the OS and applications to interface with your phone's hardware. The degree in which you can access your phone's hardware features depends on the quality of code in the kernel. The homebrew (rooting) community for HTC has made several kernel code improvements that give us additional features from our hardware that the stock kernel does not. When you flash a custom ROM, you automatically get a kernel. But you can also flash a standalone kernel ROM on top of the existing one, effectively overwriting it. These days, the difference in custom kernels is less about new features and more about alternate configurations. Choosing a custom kernel is basically choosing one that works best with your ROM.
Launcher:Collectively, the part of the Android user interface on home screens that lets you launch apps, make phone calls, etc. Is built in to Android, or can be purchased in the Android Market.
LCD Densityixel density is a measurement of the resolution of devices in various contexts; typically computer displays, image scanners, and digital camera image sensors.
First of all you need to understand that the Android User Interface uses something called a "display independent pixel" or a "dip" (yes, it's confusing because the density settings are in "dots per inch" or "dpi" which are considered the same as "ppi" or "pixels per inch" as well).
The default LCD Density setting on Android is 160 dpi. As far as the operating system is concerned 1 dip @ 160 dpi = 1 screen pixel. It doesn't mean that's actually true, but you've gotta start somewhere. In my opinion it would have been a lot nicer if they'd chosen 100 dpi because then it would be an easy percentage thing, but they didn't so we're stuck with this formula.
Mod:The act of modifying a piece of hardware or software or anything else for that matter, to perform a function not originally conceived or intended by the designer.
Nandroid:To backup the current running rom.
Nightly:A build that is performed at the end of each day of development. If you use a continuous integration server, it will generally be configured to build the code and run the unit tests on every check in. At the end of each day you may want to run more extensive tests, regression test and integration tests for example, which take too long to run on each check in and these would be triggered after the nightly build. If you have a full continuously delivery pipeline the nightly build may also be used to deploy the built code to environments for user testing.
Open GL:An open source 3D graphics library used in many devices, including Android devices.
Open & Closed Betaevelopers release either a closed beta or an open beta; closed beta versions are released to a select group of individuals for a user test and are invitation only, while open betas are from a larger group to the general public and anyone interested. The testers report any bugs that they find, and sometimes suggest additional features they think should be available in the final version.
Overclock:To increase the speed of your CPU.
Partition:The phone's internal memory (not the SD card) is solid-state (flash) memory, AKA NAND. It can be partitioned much like a normal hard drive can be partitioned. The bootloader exists in its own partition. Recovery is another partition; radio, system, cache, etc are all partitions.
Here are the standard partitions on an Android phone:
/misc - not sure what this is for.
/boot - bootloader, kernel
/recovery - holds the recovery program (either clockworkmod or RA recovery for a rooted Evo)
/system - operating system goes here: Android, Sense, boot animation, Sprint crapware, busybox, etc
/cache - cached data from OS usage
/data - user applications, data, settings, etc.
The below partitions are not android-specific. They are tied to the hardware of the phone, but the kernel may have code allowing Android to interact with said hardware.
/radio - the phone's radio firmware, controls cellular, data, GPS, bluetooth.
/wimax - firmware for Sprint's flavor of 4G, WiMax.
PRL:The Preferred Roaming List, basically a way of telling your phone which towers to connect to first.
RUU:a complete software package released by HTC, it can contain many things they are trying to update. Radio, ROM, bootloader, etc... Installing an ruu is like installing an image on a hard drive it wipes the phone and installs the image. It will wipe everything data and all so if you install one be prepared.
Recovery Mode:A small separate operating mode you can boot your device into, used for device administration. Two popular custom recovery modes are Amon Ra and Clockwork.
Rom/Firmware:Read-Only Memory and technically speaking, it refers to the internal storage of a device, which is supposed to contain the operating system instructions that needn’t be modified at all during the device’s normal operation.
Radios:On the HTC side of things,the radios persist of:
•WiFi, which operates at 2.4-5ghz depending on what channel it's running
•Cellular/3G, which carries voice and data
•4G/WiMAX, which only carries data
•GPS, which is receive-only
•Bluetooth, which talks to WiiMotes and headsets
Flashing a radio means updating the code that controls the phones way of sending and recieving a signal.
RamRandom Access Memory) A group of memory chips, typically of the dynamic RAM (DRAM) type, which function as the computer's primary workspace. When personal computers first came on the market in the late 1970s, 64KB (64 kilobytes) of RAM was the upper limit. Today, 64MB (64 megabytes) of SDRAM is entry level for a desktop computer, a thousand times as much (see SDRAM).
The "random" in RAM means that the contents of each byte of storage in the chip can be directly accessed without regard to the bytes before or after it. This is also true of other types of memory chips, including ROMs and PROMs. However, unlike ROMs and PROMs, RAM chips require power to maintain their content, which is why you must save your data onto disk before you turn the computer off. To learn about the types of RAM chips and how to upgrade your memory, see memory module. To learn how memory is used to process data, see computer or memory. See also dynamic RAM and static RAM.
Recovery:RecoverySystem contains methods for interacting with the Android recovery system (the separate partition that can be used to install system updates,wipe user data,etc).
Root:The first level of a folder.
Rooting:A process allowing users of mobile phones, tablet PCs, and other devices running the Android operating system to attain privileged control (known as "root access") within Android's subsystem. Rooting is often performed with the goal of overcoming limitations that carriers and hardware manufacturers put on some devices, resulting in the ability to alter or replace system applications and settings, run specialized apps that require administrator-level permissions, or perform other operations that are otherwise inaccessible to a normal Android user. Rooting is analogous to jailbreaking devices running the Apple iOS operating system or the Sony PlayStation 3. On Android, rooting can also facilitate the complete removal and replacement of the device's operating system.
SBCthe ability to charge your battery beyond the default safe limit). The concept is similar to overclocking a processor: you're overriding the safety limits established to achieve additional performance. The benefit here is that you may gain more use of your battery per charge. The drawback is that you can damage the battery and significantly reduce its longevity. Some kernels claim they are using a safe technique to prevent battery damage. Just be aware of the potential risks.
Sideloading:It means installing applications without using the official Android Market.
Splash Screen:A splash screen is an image that appears while android is loading.Splash screens cover the entire screen or simply a rectangle near the center of the screen. The splash screens of operating systems and some applications that expect to be run full-screen usually cover the entire screen.
Superuser/SU:On many computer operating systems, the superuser is a special user account used for system administration. Depending on the operating system, the actual name of this account might be: root, administrator or supervisor.
Normal work on such a system is done using ordinary user accounts, and because these do not have the ability to make system-wide changes any viruses and other malware - or simple user errors - do not have the ability to adversly affect a whole system. In organizations, administrative privileges are often reserved for authorized experienced individuals.
Script:The Scripting Layer for Android (abridged as SL4A, and previously named Android Scripting Environment or ASE) is a library that allows the creation and running of scripts written in various scripting languages directly on Android devices. SL4A is designed for developers and is still alpha quality software.
These scripts have access to many of the APIs available to normal Java Android applications, but with a simplified interface. Scripts can be run interactively in a terminal, in the background, or via Locale.
SDKSDK or "devkit") is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.
Stock:This is the operating system in its default form, without any modifications made to it except for any device-specific support required to run it on the particular device.
S-On:Security on,means no acces to the phones operating system.
S-Off:Security was exploited,now have access to the operating system.
Tethering:Means sharing the Internet connection of an Internet-capable mobile phone with other devices. This sharing can be offered over a wireless LAN (Wi-Fi), Bluetooth, or by physical connection using a cable. In the case of tethering over wireless LAN, the feature may be branded as a mobile hotspot.The Internet-connected mobile phone acts as a portable router when providing tethering services to others.
Userspace(Governor):This governor, exceptionally rare for the world of mobile devices, allows any program executed by the user to set the CPU's operating frequency. This governor is more common amongst servers or desktop PCs where an application (like a power profile app) needs privileges to set the CPU clockspeed.
Underclock:To reduce the speed of your CPU.
Undervolt:Undervolting means taking some of the voltage from the CPU which in return gives a longer battery life and lower temperature during intensive use of the CPU.
USB:Stands for Universal Serial Bus. Is a method of connecting devices to a computer. Most smartphones now use microUSB cables to charge and sync.
Updater Script:When Android devices install updates via 'update.zip' files using recovery mode they have to perform a wide range of functions on files and permissions. Instead of using a minimal shell such as {b,d,c}sh the Android designers decided to create a small functional language that can be extended by device manufacturers if necessary. Since the Android "Donut" release (v1.6) the scripting language is called Edify and is defined primarily in the bootable/recovery/{edify,edifyscripting,updater} directories of the Android source-code tree.
Wireless N:Wireless N technology increases wireless internet connection. Wireless 'N' routers also work with Wireless 'G' and 'B' wireless adapters.
WiiMaxWorldwide Interoperability for Microwave Access) is a communication technology for wirelessly delivering high-speed Internet service to large geographical areas.
YAFFS:Yaffs1 is the first version of this file system and works on NAND chips that have 512 byte pages + 16 byte spare (OOB;Out-Of-Band) areas.[clarification needed] These older chips also generally allow 2 or 3 write cycles per page,which YAFFS takes advantage of - i.e. dirty pages are marked by writing to a specific spare area byte.
Newer NAND flash chips have larger pages, 2048 bytes + 64 bytes spare areas, and stricter write requirements.Each page within an erase block (128 kilobytes) must be written to in sequential order, and each page must be written only once.YAFFS2 was designed to accommodate these newer chips.YAFFS2 is based on the YAFFS1 source code,with the major difference being that internal structures are not fixed to assume 512 byte sizing,and a block sequence number is placed on each written page. In this way older pages can be logically overwritten without violating the "write once" rule.[clarification needed]
YAFFS is a robust log-structured file system that holds data integrity as a high priority.A secondary YAFFS goal is high performance.YAFFS will typically outperform most alternatives.It is also designed to be portable and has been used on Linux, WinCE, pSOS, eCos,ThreadX and various special-purpose OSes.A variant 'YAFFS/Direct' is used in situations where there is no OS, embedded OSes and bootloaders: it has the same core filesystem but simpler interfacing to the OS and NAND flash hardware.
Zipalign: An archive alignment tool introduced first time with 1.6 Android SDK (software development kit). It optimizes the way an Android application package (APK) is packaged. Doing so enables the Android operating system to interact with the application more efficiently, and hence has the potential to make the application and overall the whole system much faster. Execution time is minimized for zipaligned applications, resulting is lesser amount of RAM consumption when running the APK.
original thread - http://forum.xda-developers.com/showthread.php?t=1466228
http://forum.xda-developers.com/showthread.php?t=1510729

new open source library ogles_gpgpu: GPGPU for Android and iOS using OpenGL ES 2.0

(please note: I would like to post this to the developer forum, but since I just registered, I'm not allowed to do so. furthermore, I'm not allowed to post direct links (see below))
I would like to announce a new library for GPU-based processing on mobile systems – ogles_gpgpu.
As many of you know, it is often beneficial in terms of performance and energy efficiency to execute certain processing tasks on the GPU instead of the CPU. This is especially the case for image processing tasks. ogles_gpgpu enables fast and portable, GPU-powered processing by using OpenGL ES 2.0 shaders.
Since transferring data to and from the GPU is often a bottleneck for GPU processing, platform-specific fast texture access is also implemented. The library is written in well documented, clear C++ code. An interface for Android systems via JNI is provided. Example applications show how to use this library. All code is LGPL licensed.
There are several scenarios on how to use this library: You can for example pass image data (or arbitrary byte data) to ogles_gpgpu, which creates an OpenGL texture from it. You can then process it on the GPU by applying a series of filters (OpenGL shaders) on it. This kind of rendering happens off-screen. Afterwards, you can lock the result data and obtain a pointer to it. You can then copy this data for future processing or directly analyze or modify it. Another possible scenario is to directly pass an OpenGL texture ID as input for ogles_gpgpu. This is for example beneficial if you can obtain camera frames as OpenGL texture from the camera API of your target platform (both Android and iOS allow this and example projects or provided for this). Now ogles_gpgpu can directly run the filters on this camera frame texture. This can happen off-screen or optionally on-screen, which means that the result image is also displayed to a render surface. After processing on the GPU side, you can access the result data again as described in the first scenario. By this, you can do further CPU-based processing of the result data. This is for example necessary, if certain algorithms can not (efficiently) be implemented as OpenGL shaders.
At current development stage, there are not so many image processing filters implemented, yet, but this is about to change in the future. The most important thing is that a portable architecture for GPU-based processing is available, which allows fast texture access by using platform-specific optimizations.
You can check out the project on github: github.com/internaut/ogles_gpgpu
More information can be found on my personal website: mkonrad.net/projects/ogles_gpgpu.html
Thank you.

Categories

Resources