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 Bean.
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.
ClockwordMod: Also called as CWM is a popular custom recovery for Android phones and tablets developed by Koushik Dutta (Koush), a well*known name in the Android dev community. ClockworkMod recovery allows you to perform several advanced recovery, restoration, installation and maintenance operations on your Android device. It allows user to install custom ROMs, kernels, themes, mods and more however, installing custom kernel from CWM is not yet available to Xperia family.
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 time. 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.
*1reboot - Reboots the device into the either the main operating system or the system recovery partition.
*1devices - 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:Its mainly responsible for checking and initializing the hardware and starting the phones 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.
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 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 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.
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.
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.
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.
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.
All credit of this information goes to Diablo67
CONTINUED FROM PAGE 2
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.
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.
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.
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”.
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."
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.
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). (This is the baseline density.)
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.
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.
XDA-Developers was founded in 2003 as a small forum for users of original Windows Mobile PDAs, who wanted to try to improve or otherwise modify them. This led to a gradually growing community forming that worked to upgrade their devices beyond the last version given officially by the manufacturer of their device.
In 2008, XDA-Developers introduced Android-based phones to the site for the first time, with the T-Mobile G1.From that point onwards, XDA started to grow much more rapidly, as Android gained marketshare and momentum.
With a relatively open platform like Android, there will always be some people who want to do more! XDA and sites like it serve as a platform for those who want to improve their phones even further, enabling them to do so and to share their improvements.
With Android being open source, thescope for updating and tweaking your phone or tablet is much greater than ever possible with any other major mobile platform.Some people come to XDA-Developers to learn how toroottheir phone. Rooting your phone grants you the ability to access and change the files that control how your device operates. For example, you could remove pre-installedapplications with root access. You could also possibly improve the battery life of a device by tweaking or optimising the system, or installing a new Linux kernel.Others come to XDA-Developers to change how their device looks. Perhaps they dislike the user interfacethemeused by their OEM, or perhaps they simply prefer different colors to the default colours used.Perhaps, most commonly, people come to XDA-Developers to upgrade their phone to the latest version of Android, after their manufacturer or mobile carrierhas abandoned them on an older version, with no official way to reach the latest version of Android. This has led to a variety of “aftermarket” firmware distributions (often called “ROMs”), which aim to provide updates for devices no longer supported by their OEMs.
There are now over 4.6 million registered users on XDA (and many more reading the site)
CONTINUED FROM 3
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: 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: 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: 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: 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: 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: 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: 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.
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 From page 4
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.
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.
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.
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.
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.
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.
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.
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.
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.
Credits
Diablo67 for great information
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.
correct that...jellybean
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
time
and in these following lines....you forgot to put a space b/w : and (...so they turned into smily ...correct that part too
WiiMaxWorldwide Interoperability for Microwave Access)
RamRandom Access Memory)
SBCthe ability to charge your battery bey
Superuser/SUn many computer operating systems,
DKSDK or "devkit") is typically a set of software development tools
Radiosn the HTC side of things,the radios persist of:
i look a glance at it..seems great info....will read the whole guide properly when i get some free time.. :good::good::good:
ask for sticky to this thread
awesome thread:laugh:
it should be sticky
i wrote material for a similar guide some time ago.. but never made the thread.. so sharing some additional info you can add..
Bootloader: The bootloader is code that is executed before any Operating System starts to run. Bootloaders basically package the instructions to boot operating system kernel and most of them also have their own debugging or modification environment.As the bootloader starts before any piece of software on your device, it makes it extremely processor specific and so there is a wide range of ROMs available because of presence of different hardwares. Every manufacturer has their own version of bootloader.
Kernel: The kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. Kernels have different types but for android users we talk only about monolithic kernels or simply modified linux kernels. Monolithic kernels execute all the operating system code in the same address space to increase the performance of the system.
ClockwordMod: Also called as CWM is a popular custom recovery for Android phones and tablets developed by Koushik Dutta (Koush), a well*known name in the Android dev community. ClockworkMod recovery allows you to perform several advanced recovery, restoration, installation and maintenance operations on your Android device. It allows user to install custom ROMs, kernels, themes, mods and more however, installing custom kernel from CWM is not yet available to Xperia family.
if need more info on any topic drop me a PM...
Thanks Cnc_Rocks for finding mistakes
Bootoader & kernel info is written already will add clockworkmod info only
Sent from my SONY WALKMAN using JellySony Rom
A summary of important terms regarding our phone, xperia x8, would be better. This is x8 general forum, anyone interested in general android knowledge should go to android general forum...
As mentioned in this thread, here is original post by Diablo67, the only thing I see here is Ctrl C + Ctrl V.
I just want to post because most off them are unaware & dint read that forum & I already gave credits to diablo67
Sent from my SONY WALKMAN using JellySony Rom
darkfrmr said:
A summary of important terms regarding our phone, xperia x8, would be better. This is x8 general forum, anyone interested in general android knowledge should go to android general forum...
As mentioned in this thread, here is original post by Diablo67, the only thing I see here is Ctrl C + Ctrl V.
Click to expand...
Click to collapse
well.. he gave proper credit to that guy.. and there is nothing wrong in copy paste.. it wasnt any development stuff.. and it is always better to have such a thread posted.. it benefits new comers and some lazy members :good:
Summary of important terms regarding our phone and any other phone is basically the same......because they all run android.. only differences are the cwm/kernel/flashtool and the unlocking method
CnC-ROCK said:
well.. he gave proper credit to that guy.. and there is nothing wrong in copy paste.. it wasnt any development stuff.. and it is always better to have such a thread posted.. it benefits new comers and some lazy members :good:
Summary of important terms regarding our phone and any other phone is basically the same......because they all run android.. only differences are the cwm/kernel/flashtool and the unlocking method
Click to expand...
Click to collapse
Xactly what i mean
:thumbup:Cnc_Rock
Sent from my SONY WALKMAN using JellySony Rom
here is idea...if you want it to be more readable
use this code for titles (Apps2SD,ADB,Android....) just replace "put title here" with title
HTML:
[B][SIZE="3"][COLOR="SeaGreen"][U]put title here[/U][/COLOR][/SIZE][/B]
Thanks taj..
Great thread here....
sent from my phone using hands and brain...
---------- Post added at 12:51 PM ---------- Previous post was at 12:48 PM ----------
Hey taj.
Correct your op, some words look like. " "
sent from my phone using hands and brain...
it's f___ing awesome! Very good!
very nice
minimum edition
Thread updated with xda info
Sent from my SONY WALKMAN using JellySony Rom
You forgot Android 1.6 - Donut.
Sent from my iPhone using Tapatalk
Royal Eagle said:
You forgot Android 1.6 - Donut.
Sent from my iPhone using Tapatalk
Click to expand...
Click to collapse
Its already there dude
Watchout carefully
Sent from my SONY WALKMAN using JellySony Rom
THREAD UPDATED WITH MOST INFO ON 4th POST
HAVE A LOOK
ENJOY
~>TAJ<~
Version Alpha 0.6.0 is now available
I'm back! Not dead yet, I promise. This is actually a relatively small update in terms of user-facing features, with only one really big new thing - support for file uploading - but that's a lot bigger than it might sound. It's the first write support I've implemented in the server, and it also required some fairly massive updates to the HttpServer component (support for binary requests, for POST parameters, for MIME multipart parsing). These will be built upon in forthcoming versions to add support for things like registry editing, in-browser file viewing (possibly editing), and so on. There are also a large number of small fixes and improvements that I've made over the last two-weeks-shy-of-a-year, which should make the server faster, more robust, better able to support concurrent connections, and lighter on device resources. Finally, while the app still targets WP8.0 and should run on 8.0, it now is designed for 8.1 compatibility (especially the AllCapabilities version).
Previous update (0.5.6): This version is mostly bug fixes and UI changes. The biggest changes are: clearer display of weird registry data types, the server now consumes fewer threads (it used to spawn them with wild abandon) and does faster string compares, the app version is now shown on the phone, error pages are now better, if you launch the app without a WiFi IP address it'll offer to take you to the WiFi settings page, connections are no longer closed as soon as the app starts sending a response, and the server now defaults to using the Connection: keep-alive header, with a two-minute timeout. The last change, combined with the second-to-last, should hopefully both do away with the tendency to have the app fail to display a page. However, I shouldn't have *needed* to switch it to "keep-alive" - using "close" should have worked - but it still veeeery occasionally would kill the connection early. Agh. Anyhow, this is better in the meantime.
DevDB offers me a support / Q&A thread. Please use that thread to ask questions; don't PM me unless it needs to be kept private for some reason!
ISSUES ON WP8.1:
It *should* work to deploy the app with "Application Deployment", but if you have a problem try deploying with "Windows Phone Application Deployment 8.1" instead.
Problems have been reported in the past when the app is installed to the SD card. It's small, though; putting it on internal storage shouldn't be a problem.
RESOLVED The AllCapabilities version included a few capabilities that were present in 8.0 but removed in 8.1. Those capabilities have been removed; the AllCapabilities version now deploys and runs on capability-unlocked WP8.1 phones.
IN CASE OF OTHER ISSUES: Please provide a *detailed* error report - what phone and OS version you have, what hacks you've installed, what Webserver version you're running, what you do to get the error to occur, and exactly *what* occurs - and I'll fix it as soon as I can! There's a DevDB section for posting bug reports, and you can also use CodePlex if you want.
I finally implemented file upload! I'll work on getting more stuff like that (file delete, possibly file rename/move/copy, various registry edits), hopefully soon! I also hope to add support for different areas, like an "Applications" path, a "Processes" path, a "Services" path... eventually. Many of those are really hard without good privileges. I'm also looking at moving the server to a background process and making the app just a control UI for it, adding support for authentication and/or HTTPS, adding some stylesheets to the web UI, adding caching, and much more. I did finally implement Connection header support.
Once again, the XAP is published twice. One is a fairly standard XAP that any phone can sideload, and the second has many exotic capabilities to enable viewing of (and writing to) slightly more of the file system and registry. The standard XAP has had its list of capabilities expanded to pretty much all of them that can be used without interop-unlock. The high-capability variant requires not just interop-unlock, but the additional capability-unlock hack available in the interop-unlock thread. The AllCapabilities version now works with WP8.1; sorry for the long delay on that!
An item of note: the AllCapabilities version (or either version, on WP8.1) can open other drives in the file system. On phones with an SD card, it is mounted at D: and you can browse it as normal. Credit to @hjc4869 for this discovery!
DESCRIPTION: This is a simple webserver app which can enumerate those files that are in folders readable from the sandbox, can download and upload (access permitting) files, can browse the registry, and can display the contents of registry values of any type. It runs on WP8.x (not yet tested on W10M). It is a spiritual successor to the Functional Webserver / WebServer (Mango) projects from WP7. This version is still missing a lot of functionality as I decided to implement it from scratch, but it is advancing swiftly. Note that there's no access controls implemented; use it on a public network only at your own risk!
Instructions are simple: sideload the XAP, connect to WiFi (required), run the app (called "WebServer Native Access"), point a web browser (on a PC or phone that is also on that local network) to the URL that the app displays. You should get a basic index page. Click on a Filesystem or Registry link to begin browsing the phone. There's a textbox near the top of all filesystem pages, type in a path there (for example, "C:windows" with no quotes) and hit Enter or click Get Files. You'll see a list of the contents of that folder. Click on a file to download it or a directory to open it. There's also a box for uploading files, one at a time, to the current directory. Navigating the registry is similar, except you'll need to specify the registry hive and then the path from that hive (or no path, to access the root of the hive).
As of v0.6.0, uploading files is finally supported! Other modifications (editing files, creating, deleting, or changing registry keys or values) are currently not supported. They will be "soon" although my personal testing suggests that basically the whole registry, and most of the file system, is off-limits for writing unless you use restricted capabilities.
You might see an error code (error 5 is "ACCESS_DENIED", you'll see it a lot; I should replace it with an appropriate 403 or whatever). Or you might see a status 500 message because of an exception in the server. Or the server may just crash (hopefully not so often anymore...). I'm making it more resilient, but there are still bugs. Please report any previously-unreported issues you find, including how to reproduce them, and I'll fix them if possible.
Also feel free to request features or changes; I'll implement them if reasonably possible. The app is a mixture of C++ and C# code; I could probably have done it all in one or the other but wanted to have a C++ component in case I ran into something that wasn't available in C#, and although it probably would have saved some time, I decided that hacking up a web server in C++ was maybe not the best idea.
The source code is on Codeplex, at the following projects: https://wp8webserver.codeplex.com/ for the server and the app (C#) and https://wp8nativeaccess.codeplex.com/ for the native access wrappers (C++). You may have to fix up the reference paths to get the C# component to see the C++ component correctly. The code is reasonably well documented, but let me know if you have any questions. Permission to re-use the code or components is granted under the MS-PL (Microsoft Permissive License) as posted on Codeplex.
Go forth and find cool stuff!
Version history (see the git commit logs for more detail:
07 July 2013 - 0.2.0: Initial release, FS only, 920 downloads (source: 652 downloads)
14 July 2013 - 0.3.2: initial registry, HTTP server and web app encapsulation, source on Codeplex, 225 downloads
0.3.3: bugfixes, 454 downloads
0.4.2: basic registry values display, 86 downloads
0.4.3: bugfixes, 326 downloads
0.4.6: multistring registry values, bugfixes, updated libraries, first AllCapabilities version (950 downloads), 453 downloads
25 Oct 2013 - 0.4.8: binary and long registry values, formatting and bugfixes, 451 downloads AllCaps, 201 normal
22 Dec 2013 - 0.4.9: all registry value types, better threading, proper resume, remembers port, 97 downloads AllCaps, 53 normal
24 Dec 2013 - 0.5.0: background operation using Location APIs. Downloads: 1011 AllCaps, 963 Normal
20 Jul 2014 - 0.5.1: More capabilities, better navigation. Downloads: 358 AllCaps, 352 normal
07 Aug 2014 - 0.5.3: .REG export, better traversal, bugfixes. Downloads as of 0.5.5 release: 260 AllCaps, 164 normal
10 Oct 2014 - 0.5.5: Bugfixes and back-end work. Downloads as of 0.6.0 release: 140 AllCaps, 113 normal
25 Oct 2014 - 0.5.6: Bugfixes and UI tweaks. Downloads as of 0.6.0 release: 1720 AllCaps, 1334 normal
12 Oct 2015 - 0.6.0: Binary requests, file uploads, bugfixes.
XDA:DevDB Information
WebServer Native Access, Tool/Utility for the Windows Phone 8 General
Contributors
GoodDayToDie
Source Code: https://wp8webserver.codeplex.com/
Version Information
Status: Alpha
Created 2014-10-17
Last Updated 2015-10-12
I'm going to use this space to mention something that's pretty cool:
J. Arturo of http://www.komodosoft.net is using a modified version of the HTTP server that powers this app in the ShareFolder app (http://www.windowsphone.com/s?appid=e2b9c82e-eaa1-4a3b-9d4a-8a2933a8bdb4) to support opening video files directly from Windows network shares! This was done to work around a limitation of the WP8 media control: it can only source from an isolated storage file or a HTTP URL. By running a server in the background and streaming the video file through it, and pointing the video player control at the localhost URL, it becomes possible to play the file on the phone without first copying it to the app's isolated storage. A very cool way to solve the problem! Also, reviewing the changes that were made to the network code of the server pointed me toward those threading fixes I made that have hopefully much improved version 0.4.9.
Please note that the updated version of ShareFolder with this feature may not yet be available, although it should be soon. It is a commercial (paid) app, but the author sought and received permission to use my code (although the license does not require such permission be received).
What exactly is the problem with sockets? I am battling myself with sockets atm too, maybe we can share knowledge?
Strictly speaking, the problem was with the phone's limited subset of the Sockets API forcing me to access it through functions I wouldn't normally use (asynchronous everything, SocketAsyncEventArgs and lambdas and AutoResetEvents and so on everywhere...) but I've got a pretty good handle on it now, at least for the System.Net.Sockets.Socket and its friends. The new .NET 4.x ones (using the async keyword and all) are in a different namespace; I didn't mess with them. They are more abstracted from the Bekeley sockets interface that I'm used to from C, but they are also (supposedly) more user-friendly, especially if you don't feel like writing all your own thread management code (and in fairness, I should re-write the webserver's threading to use threadpools; they're better for this type of work).
If you want to ask questions about the topic, I suggest starting a new thread (possibly in the Q&A subforum, although it's also dev related...) and I'll answer if I can.
GoodDayToDie, just an idea: how about sharing your source code via CodePlex or GitHub?
Oh man, this is pretty nice! GoodDayToDie does it again!
So far, I can read \Windows, the current install folder which you access just by typing "." with no quotes and the current application folder by typing ".." I can access the .dlls, .winmd and AppManifest.xml from the current install, but from everywhere else, it goes boom. This is a great step towards something awesome though!
EDIT:
I was wrong. For some reason, when you click on a folder it's trying to "download" it, rather than chdir. I can get pretty far into the Windows directory.
THAT's what you meant by "Click on a file (note: there's no current way to tell the difference between files and folders) to download it.
You might see an error code (error 5 is "ACCESS_DENIED", you'll see it a lot). Or you might see a status 500 message because of an exception in the server. It's getting a lot more resilient but there are surely still some bugs. ".
If you see a folder, just type the full path to it instead of clicking on it and you will be able to read the contents.
ANOTHER EDIT:
I just found a file inside of the \Windows\System32 directory named [guid].devicemetadata-ms (It's easier to just search for "devicemetadata-ms"). It's a cab file with some metadata about WP8 with a sign.cat and packagesign.cat file in the archive. I don't know what these files could potentially be useful for.
New version in a day or two (busy tonight). Features I plan to implement (not necessarily in the next version or at any particular time):
File upload (IsoStore and, of all crazy things, install directory are writable. I think I'll put a flag on each FS page that says whether the current dir is writable...).
File deletion (where possible, of course).
File and Directory distinction in the listing (clicking a dir should open it, not error out).
Filesystem index page with links to folders that can be accessed successfully (since the root isn't readable).
Some more file info (size, probably attributes, possibly permissions).
Possibly an option to preview a file (as plain text) without downloading it.
Some kind of background mode (the server uses minimal resources when not actively servicing a request, so I'll see if I can get it to work in the background, perhaps by abusing the music transfer agent...)
Some kind of offline mode (at least basic file browsing within the app, as an alternative to using the web interface, though I might just make a second app for that).
Source code changes: separate the server code from the webapp / phone app code (move it into its own project).
Source code changes: move to a hosted version control service, probably CodePlex (good suggestion sensboston).
Maybe add an icon and such...
Any other suggestions?
I also want to try experimenting with various non-standard capabilities and see if I can get access to more of the system . I've already added the ability to access removable storage, but I've also found a bunch of really weird and frequently undocumented capabilities in the OS's policy configuration files, and I need to look into those... The interesting (and possibly the uninteresting) ones are probably blocked for unsigned sideloaded apps, but it's worth checking on anyhow.
Yeah sorry, I should have been more explicit about clicking on dirs. not working in 0.2.0. Also, it's "unofficial" but if you check the URL bar you'll see a URL parameter called something like "pattern" (by default, it's *) and if you change that, you can filter the results. For example, "foo*.exe" (note: no quotes!) will search for EXE files whose names start with "foo". Among other uses, this makes it a lot faster to load large dirs like System32. This will be added to the UI at some point. Also note that URL decoding is applied correctly to querystring parameters (Probably already noticed with the path sometimes written using %5C for \) so you can add special characters that way if needed, though currently any of them but \ will probably just cause an exception.
...
Actually, does this filesystem support Alternate Data Streams? If so, you should be able to download them by appending a : and the ADS name to the filename in the download URL...
OK, so that was a new version in five days. Sorry, stuff takes time.
The source code is now on Codeplex. The native access portion is at https://wp8nativeaccess.codeplex.com/, and the web server portion is at https://wp8webserver.codeplex.com/. Both are licensed MS-PL and use Git for version control. The full XAP is also available for download from the Webserver project on Codeplex.
GoodDayToDie said:
OK, so that was a new version in five days. Sorry, stuff takes time.
The source code is now on Codeplex. The native access portion is at https://wp8nativeaccess.codeplex.com/, and the web server portion is at https://wp8webserver.codeplex.com/. Both are licensed MS-PL and use Git for version control. The full XAP is also available for download from the Webserver project on Codeplex.
Click to expand...
Click to collapse
You are a god. I'll be sure to post my findings .
Hmm. When I first load up WebServer File Access then access from my laptop, I get the main page then the program crashes on my phone. It seems to hold a lock on to the socket as i can no longer access port 9999 from any other device when re-opening the app. I can access it again when I reboot, but the same thing happens.
EDIT: I think it may be due to the WiFi at work... it's junky. I'll try again when I get home. I was just able to browse some directories.
Wow, that's completely unexpected... I can beef up the error chacking and handling around the listener port though. That part of the code is really straightforward, so I actually haven't hardened it very much. I can also put in a Finally block to close the socket and/or mark the socket as re-usable so that other apps (or the same one again) can listen on it in the future.
I also plan to add support for setting your own port, but that doesn't solve the underlying problem. I'll put in more error reporting as well, to enable better debugging. Thanks for the report! Always good to have users report problems so I know where to prioritize fixes.
GoodDayToDie said:
Wow, that's completely unexpected... I can beef up the error chacking and handling around the listener port though. That part of the code is really straightforward, so I actually haven't hardened it very much. I can also put in a Finally block to close the socket and/or mark the socket as re-usable so that other apps (or the same one again) can listen on it in the future.
I also plan to add support for setting your own port, but that doesn't solve the underlying problem. I'll put in more error reporting as well, to enable better debugging. Thanks for the report! Always good to have users report problems so I know where to prioritize fixes.
Click to expand...
Click to collapse
I tried the app at home and it DOES crash on the first hit of the home page, but I'm able to open it up again and it works fine.
The new version 0.3.3 should be more rebust; try it and let me know if you still have issues. If you do, let me know what the exception message is (and any other info you can provide) and I'll try to track it down.
Downloading really big files should also work now. The app will read and push files in smaller chunks (the code to do this existed in the NativeAccess library before, but wasn't used).
a simple SDK?
Dear Sir
Will it be possible for you to make some sort of SDK from this so other developers can integrate this into their apps and enable browsing isolatedstorage?
Sorry if it is a stupid question.
Bruce_X_Lee said:
Dear Sir
Will it be possible for you to make some sort of SDK from this so other developers can integrate this into their apps and enable browsing isolatedstorage?
Sorry if it is a stupid question.
Click to expand...
Click to collapse
With the restrictions in permissions, this app only allows browsing of the app's isolatedstorage locally. You are able to use the IsolatedStorage API within your app to browse files and directories already.
snickler said:
With the restrictions in permissions, this app only allows browsing of the app's isolatedstorage locally. You are able to use the IsolatedStorage API within your app to browse files and directories already.
Click to expand...
Click to collapse
That's right. What I want is to allow the end user to be able to browse the isolatedstorage. Imagine I have a video download app, I want the user to be able to transfer those downloaded videos from the app's isolated storage to, say, a PC.
One can do this by integrating the webserver code into the said app.
Bruce_X_Lee said:
That's right. What I want is to allow the end user to be able to browse the isolatedstorage. Imagine I have a video download app, I want the user to be able to transfer those downloaded videos from the app's isolated storage to, say, a PC.
One can do this by integrating the webserver code into the said app.
Click to expand...
Click to collapse
Ahh I see what you mean now. That sounds like a pretty nice idea. I think more research needs to be done to see whether it would even be allowed in the marketplace.
The webserver portion is stand-alone (builds to its own .NET DLL with no dependencies on the other parts) and has a pretty clean interface. You'd need to implement the web application portion of it yourself - the thing that generates the response pages for a given request - but the HttpResponse class in the server does a lot of the work of that for you; you basically just specify the content you want to send (as a String or byte array) and it sends it.
Below are the entries for the Tablet Z Development Contest (in random order). The subsequent posts in this thread have more details of each project including the developer's most recent information on the project. Before casting your vote, read through each of the projects in full - you can't change your vote after you've made it!
lilstevie - Open Source LK (LittleKernel) Bootloader + Recovery
Apache14 - Open Source Infrared Receiver & Transmitter Library
zacthespack - LinuxOnAndroid Project (Standard/ROM/Native)
sailnw - App for Sailors and Cruisers Using Waterproof Tablet (no link)
rayman - Tablet Multiboot Manager
anthonycr - Lightning Browser (Open Source Web browser)
bluefa1con - PAC All-In-One ROM
mamenyaka - Ubuntu Touch Porting
rydo88 - Tablet Z Smart House System
lilstevie - Open Source LK (LittleKernel) Bootloader + Recovery
What is LittleKernel?
LittleKernel is an opensource bootloader for qualcomm devices available from codeaurora.
Why LK?
TL;DR Version
LK allows running separate boot and recovery that are fully independant of eachother.
Sony use a special method of booting into recovery for their updates, this is not available when you are unlocked, and there is no button combination to enter this mode. As a result the common method to get recovery on Xperia devices has been to use an initrd that has a script to load either normal boot or recovery boot based on a button press. This is a far from ideal solution as when you update your kernel it also updates your recovery. If something goes wrong you are stuck needing a computer to reflash the kernel partition.
With the recent addition of TWRP support for the latest devices there have been advances made in this technique making recovery updatable it still requires the flashed boot image to support that method. This is less than ideal still as it reduces choice in what you want on your device, giving the decision to the dev of the rom you have flashed. This also leaves you in the position of needing your computer if a kernel update fails for any reason.
LK solves these problems by separating out boot and recovery to their own kernels with their own ramdisks like every other device, if you flash the boot kernel, recovery isn't touched and will be there for you as a failsafe in case anything goes wrong. This removes the need to have a computer near by in case of breakage occuring.
What progress has been made?
LK is operational, small bugs still need work and driver porting for lcd and notification led are underway.
Click here for the project thread
Apache14 - Open Source Infrared Receiver & Transmitter Library
I have been working on the open source library for allowing the use of the IR transmitter and receiver on the Tablet Z, At the beginning of this project I believe there was no other project looking into IR functionality in community driven roms (so this project was started from scratch).
As this project was started from almost no information about the IR device / protocol ect. there have been many stages of the development, this was split into 3 very distinct stages, please see below a lost of these stages and the progress made.
Stage 1 (Analysing communications)
This stage was mainly finding how the information was sent to the IR device and in what form. It was found that the IR device was connected to a tty serial port on the qcom main processor (ttyHSL2 in user space), from this I was able to "sniff" out the data sent and received by the application on the sony stock rom. This data was analysed and all possible commands where extracted (Get raw data, Send raw data, send specific key, get version).
Stage 2 (Create native library)
After the commands where known a library was created (in C) to enable the use of the IR blaster chip, this was a lot of trial and error as it was very timing specific (sleeps / poll ftw ). This part was surprisingly easy and i was able to get a working library that enabled learn and send command within a few days
Stage 3 (Create a application for everyone to use)
Once the library was completed to a point where it was usable, an application was created making use of the library as a JNI library. As I have little android java experience this is probably the weakest aspect of the project to date. This app went through a number of revisions and started off as 2/3 buttons for testing (this is illustrated below in the picture / video section. The xda member isimobile took one of the revisions and made improvements to the UI as well as using an SQL database to store the keys.
One aspect of the original plan that has not been explored is the robotics aspect, however this is mainly due to the amount of work required being much more than i first planned on.
Please find the links to source code (for library and app) as well as some videos and pictures to illustrate the projects timeline.
Library Src
APP Src
Early Application
{
"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"
}
Current Application
Initial Test Video (day 1)
Initial App Test
I would like to finish by extending thanks to all at XDA and Sony who have made this competition happen and giving me this opportunity to develop a fun project.
Click here for the project thread
zacthespack - LinuxOnAndroid Project (Standard/ROM/Native)
As it stands below is the current placement with the three parts of the project:
Standard LoA - I have completed testing of all current images and everything works as it should, when running stock you must make the system partition r/w but this has all be added to my thread. In fact, this is the best device so far in terms of smoothness and actually usability over VNC.
However I have also made good progress with getting rid of VNC and using the Android frame buffer for graphics out put, so it takes more to switch between Android and Linux BUT you get a much better linux experience. I hope to release this in the coming few days once a few graphics glitch with Unity have been fixed.
LoA ROM - I have also started work on the ROM, getting my read around the ROM git structure has been the first port of call and actually getting my mods integrated into a repo so others could build is what I am working on at the moment. As it stands I have pretty much finished integrating the required code to launch and boot the images within the ROM so no need for a stand along app, just pull down the status bar and hit boot linux. Also added the settings for it all into the ROMs settings menu to make it all feel nice and one. I have plans then to integrate Linux and Android more, with the final result being a free version of everything Ubuntu edge can do but on hardware that you can actually buy
Native Linux - Only just started on this now as personal I prefer the other two parts of the project as I like to still have android at my finger tips when needed
So in all while I may have not completed as much as other projects I do think my project has a lot more to do and is certainly not something I will be stopping any time soon. Users already have access the standard LoA and I have started to see more Tablet Z popping up as installing the app, we also hope to push a 'alpha' of the ROM to the tablet Z very soon once the git is all sorted so people could integrate LoA into other base ROMs if they so please.
Click here for the project thread
sailnw - App for Sailors and Cruisers Using Waterproof Tablet
As I mentioned in the contest entry, the app I am working on is for active sailors and cruisers which would utilize Xperia Z's waterproof features and excellent form factor for use in salt water environments under way. At this stage I am collecting input from active sailors and cruisers regarding features and design of the app. Planning to have app flow and some screen designs in September. Also actively looking for project participants on the development side.
No forum thread is available for this entry.
rayman - Tablet Multiboot Manager
Goal: Create a multiboot solution for the Tablet Z.
The goal consists of two parts:
1) Ability to dynamically boot images without flashing them
2) A solution for picking the boot image to run.
Step 1 was completed within the first week after receiving the tablet,
and sources are available on my github.
Step 2 was much more complex. I first evaluated the solutions
currently available, primarily kexecboot(.org), MultiRom (TWRP-based
for N7) and petitboot. Common to all those solutions is that they are
overcomplicated. Some automatically scan for things that looks like
roms and some requires special made update.zip's. On top of that most
solutions are less than good looking.
With that in mind, I set out to create something extremely simplistic - the result is Hydra.
There are some minor features missing before it's ready for release, but the GUI and boot setup works.
Features:
* Auto-aligning grid of large, good looking icons for selecting image - currently a maximum of 10 images.
* Flashy buttons automatically created based on a target-specific image
* Optimized graphics display to ensure smooth rendering
* Automatically append required commandline arguments
* Read boot configuration from a simple boot.ini format - supports boot.img's and raw kernel + ramdisk + cmdline setup.
* Auto-boot a default image after a configurable timeout
Planned Features:
* Per-boot.img runtime settings - planned but that's for version 2.0
* Scrollable grid - allowing for more than 10 images.
* Automatically locate boot.ini's in a boot subdir on all storage units that are mountable. This means autodetecting available images on microsd or usb harddisk.
Some Images:
Click here for the project thread
anthonycr - Lightning Browser (Open Source Web browser)
I've kept the source code updated on github (https://github.com/anthonycr/Lightning-Browser). A direct download to the latest beta is here (https://github.com/anthonycr/Lightni...s.apk?raw=true), and a description can be found on the main project page.
What I've accomplished:
- added a History page
- added better bookmark layout (fixed bug in full-screen mode)
- better full screen URL handling
- added some more animations
- incognito mode (does not record URLs visited or searched, and runs without cookies for extra protection)
- notify user of SSL certificate errors
- popup tabs now work
- fixed bug where certain sites wouldn't display until touched
- better full-screen video (flash is still partially broken… it’s Adobe's problem)
- memory management
- HTTP authentication
- multiple search engines
- ability to change download location
- text re-flow
- ability to import bookmarks from either the stock browser or Chrome if you are signed in
- text size
Current Screenshots
I haven't had much feedback in the Tablet Z forum, so I've mostly been working off the feedback I've been receiving in my main thread in the application forum. It's a lot more lively there.
Thanks! I've had wonderful time developing with the Xperia Tablet Z.
Click here for the project thread
bluefa1con - PAC All-In-One ROM
Information about this project is available in this PDF document: https://dl.dropboxusercontent.com/u/20579840/PAC/PACmanTabletZ.pdf
Click here for the project thread
mamenyaka - Ubuntu Touch Porting
I am mamenyaka from XDA. My project is about porting Ubuntu Touch to the Tablet Z.
My thread is located here, and you can also check out the Ubuntu wiki page of the device.
Ubuntu Touch is running in a separated container on top of an Android kernel, so it is made out of two images: the device image and the ubuntu image.
The ubuntu image is provided by ubuntu in the form of a .zip file.
The device image is built by me, and it is based on CM.
To install Ubuntu Touch, you just need to flash the two .zips in recovery.
The journey
The first step was to build the device image and remove unnecessary Android components. Some hacks were needed, because some components relied on external parts of CM that were excluded from Ubuntu Touch and some proprietary blobs were missing too. And there were some modifications needed by Ubuntu Touch, documented in their porting guide.
After successfully building the image, it turned out that WiFi and the Camera didn't work.
The WiFi needed some extra binaries and the kernel module itself needed to be loaded manually at init (insmod). But the WiFi is now working, and that is the most important part. Without it no development can be done with the Ubuntu SDK, because it downloads and installs a lot of packages on the device that are necessary to deploy your QT/QML apps.
The camera was fixed partially by acquiring the right blobs, but the Camera app itself is buggy, I think. Maybe it will be fixed in future releases.
All my work can be found and reproduced by using my github repos (the ones for Sony) and by following the porting guide.
The future
As Ubuntu Touch is making the switch from being "just another Android shell":
Instead of booting into android and firing up the Ubuntu system after
android has booted, the new images now boot into Ubuntu and initialize
android inside an LXC container during boot.
the development will continue. Sadly, from 07-12 until now there has been no new porting guide, so the ports do not work with the new image (yet) and the development of the old format has stopped. Until then I am releasing updated images and experimenting with dual boot. In the xda thread I wrote a little tutorial on how to do dual booting with Ubuntu Touch and CM based Android ROMs, but it's not the real thing, but it works without the need of a PC (no need to flash boot.img via fastboot).
Click here for the project thread
Click here to make your vote in the contest - the password is 'xdasonycontest852'
rydo88 - Tablet Z Smart House System
No response received asking for project update. Information below taken from project thread:
As for the hint, I’m going to start with two of them, as I didn’t add one last week. This project originally began as part of this prescient home and then I decided I could adapt part of it to be more fun than practical.
1. A great place to set down one’s drink.
2. Tabletop gaming.
What I’m calling the proof of concept project was put together while moving. It starts with a secret… I’m a bathroom reader. Okay, so maybe that’s not a huge secret (books and magazines strewn around the bathroom is a bit of a giveaway), but it’s not exactly a polite conversation topic. It was conceived while describing the project to a friend who pointed out that he doesn’t cook, but there was an alternate use he found noteworthy (i.e. reading the royal reports on the porcelain throne). Henceforth this will just be described as the book preparation device (or BPD to save some typing). The materials needed are superglue, a sharp knife (preferably something like an Exacto), an NFC tag, and a magazine that you don’t want to read anymore. Use the superglue to laminate a block of pages together, either the whole magazine or just a section large enough to house the NFC tag. The one I did was about a 3 inch square through the whole magazine, excluding the cover. This also left the edges loose, providing a more authentic magazine look, rather than a big mess of superglue. Once this is set and dried, outline the NFC tag on the block for the pattern to cut. Cut and remove layers until you’ve made a cavity large enough for the tag to fit. Snugness is a personal preference, I left mine so that the tag was removable, but a tight fit and some glue could make this more permanent. Sony’s native Smarttag software works well for this application. Just customize the options so that the tag (blue in this case) triggers the tablet to open Play Books. A nice feature of Sony’s application is that there are ‘end’ actions, so a second contact with the tag causes a second set of actions to occur. I set this option to return to the home screen and read the time aloud (so that I know how late I am to wherever I’m headed). Once this is set up, leave the magazine near your reading chair. Place the tablet on the BPD as you sit down and presto! Your book is opened, as if by magic. When you’re done reading, set the tablet down again, stand, stretch, and poof! Your tablet has closed the book, told you how long you were lost in it, and is ready to travel to the next project.
I’ll add some pictures and a video here before too long. Maybe even a witty/catchy acronym to rename the project.
Concept:
To utilize NFC and other features of the Tablet Z in order to produce a system which causes the tablet to perform actions in a semi-predictive matter.
Methodology:
I intend to modify items to produce convenient and unobtrusive ways of integrating NFC tags. This will provide the infrastructure for the system. On the device, software will be used to carry out instructions specific to the tag and other variables.
To put my sciencey talk into a more tangible example, take for instance the kitchen. What function would be handy for a tablet to perform by itself? The most obvious answer to me, is for it to open up a recipe. In order to accomplish this, I intend to create a stand with an integrated NFC tag, which would trigger the tablet to open a recipe app. Depending on the software side (which I plan on mostly using existing apps, as I'm not much of a coder), I would ideally have the system cross reference a menu that's been planned out (i.e. that you had planned for meatloaf on Monday night, the tablet would open directly to a meatloaf recipe). As a starting point, it will likely open to a random recipe. For anyone following along at home, the action should be easily modified on the software side. Perhaps some people prefer to catch up with HBO or listen to some Sinatra while cooking. The idea is in the same vein as the whole home-of-the-future concept.
This concept will be extrapolated to several rooms.Other planned functionality would be to automatically turn on the TV in the living room, play music in the den, set alarms in the bedroom, and perhaps a few other tricks along the way.
Before I wrap this post up, I'd like to say thanks to XDA and Sony for holding this competition and giving me the opportunity to create this project. I'd also like to say thanks to everyone who takes the time to follow the projects in this contest and hope that everyone has a bit of fun.
Click here for the project thread