Hey Everyone,
First of all sorry if this isn't the correct place to post this question, let me know if I have to move the topic.
I am a Software Trainer wanting to transition in to a Technical Trainer role. I consider myself 'tech-savy' and I have dabbed in to web-dev before but never android development and this is all new to me. I was wondering if someone can point me in the right direction on a few topics.
I was tasked to do a presentation/training on the following subject as part of a portfolio for a company I'm applying to:
'Android versions and their respective architectures.'
The presentation should be centered around the changes that were implemented from one version to the following versions through the lifecycle and the major breakthrough. I am not concerned with the changes on the application layer level..things like picture in picture for video was introduced with version 8 is not useful but things like 'Project Treble' are for example.
On this point I'm having trouble finding resources that would outline all these changes, wikipedia has some: https://en.wikipedia.org/wiki/Android_version_history but not all and it's hard to distinguish sometimes if it's an application feature or not. Any help with resources or advise on these points and the major highlights in versions on the architecture level are greatly appreciated.
Given the topic, the training should have a storytelling component to it, ie. should be compelling and not only convey the necessary information but keep the trainee engaged as always.
For this task I would like to ask you for some fun facts or interesting information. Other than the main idea of the talk I'm planning on creating an introduction to the android ecosystem, brief history why it was developed and why they went open source with it (resources on that would be helpful!) and a high level overview of the different layers for a non-technical person.. what is a kernel why they chose linux etc...
I'm looking to include fun facts like that the different versions are named based upon different desserts (up till a point) and so on, any fun facts you can share are appreciated!
Thank you for the help everyone!
Android OS is nothing else than another derivative of widespread Linux OS. It depends on the Linux kernel (
what is the core of any Android OS version, which directly interacts with the hardware; it manages all the system resources like “Memory”, “CPU”, "GPU", “Processes” and Attached peripheral devices to the system ) - what Android OS is based on - which features are supported. One must know that it's on manufacturer's decision what Linux kernel is used.
So architecture of Android OS is equivalent to this
{
"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"
}
My resume: You can't say this or that Android OS version supports this or that feature: this in the overall view depends on manufacturer of an Android powered device, always depends on underlaying hardware used.
I know this but we're talking about stock android supported from Google that is open source that comes with a specific Kernel by default.
That kernel comes with a set of features/architecture manufacturers can adapt /modify / add features or remove features from but that would be considered a fork and I'm not interested in all the various forks manufacturers make but the stock experience. In any case I believe most manufacturers mostly make changes on other layers and not the kernel itself anyway but that's another topic.. I'm not an expert but hopefully it makes sense where I'm coming from.
The relevant things I could find regarding this topic mostly come from the official dev documentation, release notes and the android blog.
So for example when I'm referring to a fundamental change in the android architecture with an update, it might be something like project treble:
Faster Adoption with Project Treble
We announced that the following devices, in addition to Pixel and Pixel 2, now support Android P Beta: Sony Xperia XZ2, Xiaomi Mi Mix 2S, Nokia 7 Plus, Oppo R15 Pro, Vivo X21, OnePlus 6 and Essential PH‑1. Android P Beta provides an opportunity for developers and early adopters around the world...
android-developers.googleblog.com
Here comes Treble: A modular base for Android
News and insights on the Android platform, developer tools, and events.
android-developers.googleblog.com
Which fundamentally changes one of the layers in the android stack to work in a different manner.,
Another such example I could find for example is the change in the runtime environment from the Dalvik Virtual Machine to Android runtime (ART)
Android 8.0 ART improvements | Android Open Source Project
source.android.com
Although these resources are great and help me out, it's pretty hard to find every specific major change between android versions like the ones mentioned above if you don't know what you're exactly looking for.
For example if you look at the release notes for android oreo (8.0):
https://developer.android.com/about/versions/oreo/android-8.0
There's absolutely nothing mentioning project treble or the fundamental change of the architecture so looking at the different release notes might give you a clue here and there about such changes but not actually list them which is very frustrating if you're trying to create a list of all the major such changes throughout the years.
For this reason I'm asking here if someone knows more about such changes because even specific key words would help me in my search not to mention resources that are actually structured where I could see per version exactly how the architecture changes not only bits and pieces.
IMHO a Stock Android doesn't exist: it exists AOSP, Google's Android ( based on AOSP ) what is only suitable to Google devices, and for all other mobile devices it exists a Manufacturer's Android ( based on AOSP ). AOSP only contains a minimalistic Linux kernel tailored to be used with mobile / embedded devices, a Google's Android only contains a Linux kernel what is necessary to run this Android on supported Google devices.
All the Android OS variants you know ( and love ) are based on AOSP.
But I may err, as always ...
So what I'm looking for is information on the architectural changes of ASOP throughout the different releases of ASOP similar to the examples I gave earlier but again.. struggling to find all of them.
My POV:
The only real change of AOSP's architecture since it was 1st released took place in 2017 / 2018 ( keyword: Project Treble ).
Project Treble is targeted to separate AOSP code from vendor code so that each can be compiled and updated independently.
It's the most major change in the architecture for sure but I'd definitely count things like ART pretty substantial worth mentioning changes in architecture as well, i.e:
Android 4.4 "KitKat" brought a technology preview of ART, including it as an alternative runtime environment and keeping Dalvik as the default virtual machine.[7][8] In the subsequent major Android release, Android 5.0 "Lollipop", Dalvik was entirely replaced by ART.
Also:
Android 7.0 "Nougat" switched its Java Runtime Environment from the discontinued Apache Harmony to OpenJDK, introducing a JIT compiler with code profiling to ART, which lets it constantly improve the performance of Android apps as they run.[9] The JIT compiler complements ART's current ahead-of-time compiler and helps improve runtime performance, and save storage space by only compiling some parts of the apps.[8][10]
Are some other changes that are of interest I could find but I'm sure there are more.
I did a lot of research on this topic and here are the major changes of the android architecture in a nutshell throughout the years:
Android 2.2
JIT bought to Dalvik
Android 4.1
SELinux added to android kernel
Android 4.4
ART runtime introduced
Android 5.0
ART replaces Dalvik
Android 7.0
Switches Java Run Time enviornment in Runtime from Apache Harmony to OpenJDK
Android 8.0
Completely re-works the Hardware Abstraction Layer via the Project Treble initiative.
Android 10
Project Mainline - some reworks on how coreOS components are updated (so that they dont require a system reboot)
Related
Open source projects follow a pretty standard pattern in my experience. If the project becomes popular, it grows at a breakneck pace. New features, bug fixes, and more are suggested and submitted daily. Eventually, you have to say no to a couple of things. Once enough things are said no to, those who come up with those ideas move on to the next logical thing, which is to take your ideals and your creativity and make your own version of that project. Soon, you’ve got a hundred flavors of Linux and a few hundred thousand people with their own opinions as to why theirs is better than yours.
It turns out, Android isn’t all that different at its core from this description. One such example of this is the Android Open Source Project based distribution of CyanogenMod. The CyanogenMod team is a group of developers, hackers, themers, and more who have all come together to adjust Android to their ideals. This week marks the next version of their distribution, CyanogenMod 7.1.
CyanogenMod is currently the only distribution of Android that supports nearly 70 devices with the same version of Android. Many devices that have been abandoned by the manufacturers, or have been waiting far too long for an update to the next version, are supported equally by the CyanogenMod developer team. New Android phones are typically supported fully within a month or two of the release of the phone.
What’s the cost for CyanogenMod 7 over what is on your phone when it comes out of the box? It varies. For some, it could cost you your warranty. For others, it might just cost a little bit of time to figure out how to install the OS on their phone. One things is certain, if you are even remotely interested in tinkering with your phone and getting the best experience Android can offer, you might want to consider CyanogenMod 7.1.
Customization
From the beginning, the CyanogenMod distribution has been all about customization: Make your phone your own, using the tools that have been in Android the whole time, but were redacted or omitted at the cost of user friendliness.
While it’s cool to be able to set a custom wallpaper for your phone, or custom ringtone and notification tones, that level of customization seems slightly empty when you can’t control how your lockscreen looks, or the incoming call screen. Maybe you’d prefer your lockscreen to offer you more features, such as the ability to launch an app right from the lockscreen. Visually, nearly every element on the screen is completely customize-able. In fact, there’s a theme engine built into CyanogenMod that is filled with themes you can apply to change the color, effect, and style of buttons, battery, icons, and anything else you can find on your phone.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The customization doesn’t stop at visual elements, either. You can kill the shutter sound on the camera app, allow a friend to browse the web on your phone in a Chrome style “Incognito Mode”, or set your phone to stop ringing after a preset time. The experience is the same across all of the devices they support, including things like tapping the screen to focus the camera or being able to connect a Bluetooth mouse to the device.
Settings allow you to revoke permissions from an app you have installed from the market, meaning you can disable any app’s ability to access your location, access to your contacts, or anything else you’d like. Many of these features you see scattered across the existing Android devices, but there’s only one place you find all of these features together.
New Lockscreen
CyanogenMod offers several different kinds of lockscreens for you to choose from, most of which are enhanced versions of screens that have been found on other devices. CyanogenMod 7.1, however, offers a new lockscreen that allows you to set apps to your lockscreen to launch when you drag the bottom ring to the app. This is similar to what has been seen in the recent lockscreen found in HTC’s custom distribution of Android. Unlike HTC’s attempt, however, this version allows for more apps and a higher level of customization. Additionally, this lockscreen is available on all CyanogenMod 7.1 devices, where the HTC lockscreen is only available on select devices running Android 2.3.4.
Final Thoughts
This is not for everyone. There’s a pretty steep learning curve between stock Android and CyanogenMod, and an even steeper learning curve between one of the heavily themed versions and CM7.1.
CyanogenMod is not a small project anymore. With support from Sony Ericsson, recognition from many Googlers currently working on Android, and devices in the UK like the GeeksPhone line of devices shipping with the ability to easily put CM7.1 on it, the once small collaboration of like minded geeks has grown into a complete distribution of Android with a team of over a hundred different contributors to the project.
Recently, several pivotal members of the CyanogenMod team spoke at a developer panel during the 2011 Big Android BBQ about the project and its future.
Source:
http://www.geek.com/articles/mobile/cyanogenmod-7-1-now-available-for-ultimate-android-customization-20111012/
{
"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"
}
Look Here: http://www.linaro.org/
The project Linaro perhaps you've already heard. Emerged a few days ago and shown in the demo, is a version of Android 4.0.4 stock, so no customization, whose code has been modified and optimized so very special. The result is amazing because with the same hardware and same software version, Android Linaro is up to 100% more powerful and faster than the version developed by Google Android. The video in recent days has made a little 'round the web, although not show anything significant for the less experienced.
Example Video:
http://www.youtube.com/watch?feature...&v=mrQRYmYip6Q
About Linaro
Home About Linaro
The paragraphs below and the links on the left should give you access to all you need to know about Linaro. Alternatively, take a look at our latest introductory presentation. If you have any questions that remain unanswered, please contact Steve Taylor at [email protected].
WHAT DOES LINARO DO?
Linaro is a not-for-profit engineering organization with over 120 engineers working on consolidating and optimizing open source software for the ARM architecture, including the GCC toolchain, the Linux kernel, ARM power management, graphics and multimedia interfaces.
To ensure commecial quality software, Linaro's work includes comprehensive test and validation on member hardware platforms. The full scope of Linaro's engineering work is open to all online. Open engineering has been practised from the start at Linaro with plans, specifications and progress available for inspection on the developer Wiki. Linaro is distribution neutral: it wants to provide the best software foundations to everyone, and to reduce non-differentiating and costly low level fragmentation.
THE VALUE OF LINARO
Linaro's key value is in working on generic ARM technology that is common to all ARM SoC vendors. In this way engineering costs are shared, rather than each vendor having to implement core software technology themselves, which has resulted in fragmentation and overhead in maintaining code that cannot be upstreamed to the mainline Linux kernel and other open source projects. Linaro's output is used by its members, and by distributions including Android, Ubuntu and OEM/ODM customized versions of Linux. In addition to sharing development costs, Linaro reduces the cost of maintenance for members with its focus on upstreaming into key open source projects including GCC and Kernel.org, and the implementation of standards, such as DeviceTree, which reduce the amount of work involved in bringing up multiple platforms.
LINARO AND ITS MEMBERS
Linaro was established in June 2010 by founding members ARM, Freescale, IBM, Samsung, ST-Ericsson and Texas instruments (TI). Members provide engineering resources and funding. Linaro's goals are to deliver value to its members through enabling their engineering teams to focus on differentiation and product delivery, and to reduce time to market for OEM/ODMs delivering open source based products using ARM technology.
THE LINARO ORGANIZATION
The direction of Linaro is determined by its board of directors, formed from representatives of member companies and the CEO of Linaro. Execution of long-term objectives and delivery of nearer term development roadmaps is assigned to the Linaro management team and Technical Steering Committee (TSC). The TSC includes senior engineers from each of the Linaro member companies plus Linaro's CTO and VP of engineering. Under the management team and TSC, Linaro's engineering team is split in to working groups, platform engineering and landing teams. The Meet the Team page introduces the members of all the teams and the structure of the working groups, platform engineering and landing teams is introduced on the Engineering pages.
HOW LINARO DIFFERS FROM ANDROID, UBUNTU, THE LINUX FOUNDATION AND OTHERS
Linaro is not a Linux distribution. The organization provides great software and tools for distributions to pull from (including OEMs who want to develop an in-house Linux). Linaro's aim is to provide a common software and tools foundation for the industry to use - making it easier and quicker to develop Linux-based products. Linaro's software focus is on areas that interact directly with the silicon such as multimedia, graphics, power management, kernel and boot. Distributions such as Android, Debian, Fedora, OpenSUSE, Tizen and Ubuntu provide the full user experience whereas Linaro enhances the upstream projects directly and provides useful components to any downstream distributions that wish to leverage the work done by Linaro.
Linaro supports organizations like the Linux Foundation, which aim to promote, protect and enhance the use of Linux across a broad range of platforms, but it is focused on solving engineering challenges and making it easier to use Linux on devices based on the ARM architecture and, in particular, on ARM Cortex processors.
HOW TO GET INVOLVED
There are many ways for organizations and individuals to contribute to Linaro's work. For ARM licensees, SoC providers, commercial distributions and leading commercial Linux organizations, membership allows companies to sponsor and direct Linaro's activities. For other organizations involved in Linux development, including OEMs, ODMs, technology providers, software integrators and providers, and carriers and service providers, the Linaro Partner program provides a means to contribute engineering resource and work closely with the Linaro engineering team. For individuals, Linaro is a vibrant community with many ways to contribute, there is an overview of these under Engineering: Getting Started.
The core code has already been submitted to cyanogenmods gerrit. After review and if everything is good it will be merged.
I am not sure how this is offering anything to development, while it sounds cool.... This is more of a information thread and not development IMO.
Read about it on android police, here. If you have a galaxy nexus you can give it a test.
You can see some benchmarks here aswell as grabbing a build for your Verizon galaxy nexus. While faster in some its also slower in others... Make your own call I guess.
Is there any way of adding some of this code to sense 4 ROMs?
dmcb123 said:
Is there any way of adding some of this code to sense 4 ROMs?
Click to expand...
Click to collapse
No.
This can only be applied to source code built rom's.
Maybe next year HTC May use it in a new phone, but don't expect to see anything soon if ever.
This is great. I got plans to build to mini PC and the Linaro Image would be perfect. Does anyone tried this in a mini desktop pc? Like with a Pandaboard or so?
Vorbeth said:
No.
This can only be applied to source code built rom's.
Maybe next year HTC May use it in a new phone, but don't expect to see anything soon if ever.
Click to expand...
Click to collapse
that's what I thought...by the way, I'd like to know your opinion about this project @Vorbeth...
memnoc said:
that's what I thought...by the way, I'd like to know your opinion about this project @Vorbeth...
Click to expand...
Click to collapse
Most if not all has already been merged into cyanogen
Sent from my HTC Sensation using XDA
Vorbeth said:
Most if not all has already been merged into cyanogen
Sent from my HTC Sensation using XDA
Click to expand...
Click to collapse
in other words, no revolution uh?
Linaro is not HTC Specific
1. Wrong section
2. And no, we are yet to merge the code in CM, only a few bits which won't affect the current builds are in.
Sent from my GT-P1000 using XDA
cdesai said:
1. Wrong section
2. And no, we are yet to merge the code in CM, only a few bits which won't affect the current builds are in.
Sent from my GT-P1000 using XDA
Click to expand...
Click to collapse
Agreed, although a lot is in pending gerrit submissions
romskii said:
This is great. I got plans to build to mini PC and the Linaro Image would be perfect. Does anyone tried this in a mini desktop pc? Like with a Pandaboard or so?
Click to expand...
Click to collapse
Ha I meant to respond to this yesterday, but yes if you check out the video on Youtube you will see he is using Pandaboards.
Nobody can really tell us what this mean for us?
xtcislove said:
Nobody can really tell us what this mean for us?
Click to expand...
Click to collapse
I read that some parts of code have been merged into AOKP and performance has increased as a result - though I dont know if the code has yet been built into the pyramid builds of AOKP
pretty sure no code was merged to aokp. the linaro optimizations are mainly optimizations done during the build process that may marginally improve performance. yes roman built nexus builds that include the linaro optimizations however it's been mixed reviews mostly. google it and figure out what they do if you really must know. just please please please don't post questions about it in the dev section.
this is not a big deal, i used linaro for build aokp for the HTC glacirer, and used the normal tools provided by aokp git code and there is no much diferense
Sent from my HTC Sensation using Tapatalk 2
aokp team is testing it to make sure that the changes on the code by linaro will not break nothing...now on b39 there isn't linaro code
SOURCE : Kickedface
{
"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"
}
WARNING: This post contains rumors and speculation from Android Insiders. If you do not want to know about Android 4.2 then do not read this story and unplug from the Internets. You have been warned – the goods are after the jump. Thanks to androidandme for digging this up!
There is so much to cover in this rumor report that we are going to use a slightly different format. We will list each rumored feature individually and then break it down before moving on to the next.
NEW NEXUS PROGRAM
Rumor: As previously reported, any manufacturer can produce a Nexus device or a Nexus version of an existing device. They work closely with Google on the hardware and driver details (there is a more efficient solution for this in 5.0), but Google is responsible for the updates (don’t know how the carriers factor in). The phones don’t necessarily have to have “Nexus” as part of their name, it works more like a certificate like “HD Ready”.
The devices have to fulfill some basic requirements. The phone has to ship with a stock version of Android, it needs to have the hardware power to run all “Nexus Games”, and they have to support Google Wallet, aka have NFC.
There are two carrots on a stick that probably make the Nexus brand a huge selling point. Google Play gets expanded with a media streaming service component and there will be games that only work on Nexus devices. The streaming service uses the secure memory, making it harder to pirate the content. No word of the type or source of the media, but it seems to be a big deal.
Speculation: This info is all over the map, but it lines up with previous reports. It sounds like Google is going to encourage manufacturers to join their Nexus program, but it will be optional. If manufacturers meet a list of requirements, then they can become Nexus certified and gain access to new services and features.
It almost sounds like the list of requirements that Google currently places on OEMs in order for them to gain access to Google services like the Play store. This will now create a second tier certification program that manufactures have the choice of participating in. OEMs can offer a device that meets the basic requirements and gain access to the Google Play store, and if they include additional elements they get access to the Nexus certification
NEW CUSTOMIZATION CENTER
Rumor: There is a new Customization Center, where you can change ringtones, language packs, background, launchers, and so on. There is nothing too sophisticated (for now). The center is mainly a convenient way to enable the average customer to do some basic customizations. The range of options can be expanded via Google Play of course. However, there are two new features: templates that change the appearance of all (newly introduced) dynamic icons at once, and post filters that change the appearance of the whole UI – think of Instagram.
The manufacturers may provide their custom UI through the Customization Center, but they don’t have to. When Google upgrades Android and a manufacturer fails to provide a compatible version of their custom UI the device reverts simply to the stock UI (or the user waits with the upgrade until the manufacturer catches up).
Speculation: This sounds like a dream come true. Google may have finally provided a solution to the manufactures that allows consumers to update the base Android operating system, without having to wait on the OEMs to update their skins.
NEW PROJECT ROADRUNNER
Rumor: There is major effort to improve the battery life called Project Roadrunner.
Speculation: Details are pretty light on this one, but it sounds like Project Roadrunner will enhance battery life the same way that Project Butter enhanced the overall responsiveness in Android 4.1.
UPDATED GOOGLE PLAY
Rumor: Google Play is enhanced with new features like personalized search, optional promotional campaigns with notification center integration, more billing options, and easier in-app micro-transactions.
Speculation: We don’t have much to add, but we like anything that will help developers generate more revenue.
UPDATED GOOGLE NOW
Rumor: Google Now provides help for basic OS functions, aka “Where can I activate bluetooth?” or “How can I tone down the brightness?”, to make it easy for newbies to settle in.
Speculation: No surprise here. Google said they would be updating Google Now and we expected to be able to control system level functions.
UPDATED VIDEO PLAYER
Rumor: The stock video player app gets a major revamp and provides new APIs for other video services to tie in.
Speculation: Again there is not much to add, but androidandme believe this is part of a bigger media streaming service that Google will soon offer.
DRIVE-BY CONCLUSIONS
Please keep in mind that all of this should only be considered a rumor, but this source has been on the money with previous information. Some of the details are so specific that I have a hard time believing they are just making this up as they go along. The source also shared quite a bit of information about Android 5.0 that we left out so we could focus on the next release.
Hello users with Android 4.2.
By now we are certain that Google has handed out new Nexus devices to their employees who are currently testing Android 4.2. Androidandme have monitored quite a few visits to their site over the last month, but the number of hits from Android 4.2 really started to pick up this week.
I’m not sure if I believe every detail that is included with this report, but all the signs are pointing to some major changes to the Nexus program and the core Android OS. Some of these changes are so big that we wonder if they will even be included with Android 4.2 or be held for Android 5.0.
We previously speculated that a lot of the things in Android 4.2 would be geared towards laying the groundwork for Android 5.0. It is possible that a lot of these new features will only be visible on Nexus devices, while standard devices would be left without them.
The whole concept of a Nexus certification program sounds like Google is putting their foot down and taking more control of the Android experience. Even though the program might optional, hopefully the consumers will realize the benefits of a “Nexus ready” device versus something that is just Android-based.
This sounds neat
Sent from my PG86100 using Tapatalk 2
Here is a video about it:
https://www.youtube.com/watch?v=-6QnTdY5vUI&feature=youtube_gdata_player
Sent from my SGH-T989 using xda premium
uhmm!
Sound nice!
Thanks for the info
{
"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"
}
These tools require varying levels of experience and if you've never touched code before, you might want to check out guides about java(needed for android development) here. First However if you're ready to move from theory and syntax to actual development, here's what you'll need.
The Android Software Development Kit (or SDK)
The Android Software Development Kit (SDK) is actually a collection of tools that will help you make Android apps. There's more outside the SDK that we'll discuss, but here are some of the most helpful tools in the SDK:
Eclipse/Android Studio
There are two primary integrated development environments (IDE) for Android. An IDE is the main program where you'll write code and put your app together. It can help you organize and edit the various files in your app, manage the packages and supporting libraries you app will need, and test it out on real devices or emulators.
The default IDE for Android is Eclipse. Eclipse allows you to modify Java and XML files and organize the various pieces of your application, among many other tasks. The version you get from Google also includes a package manager that allows you to update to the latest version of Android tools as soon as Google releases them.
The main alternative is Android Studio, which is currently being made directly by Google. Like many Google projects, Android Studio is part of a prolonged beta. The long-term intention is for Android Studio to replace Eclipse as the primary IDE for Android development. That doesn't necessarily mean it's for everyone. For example, if you need to make use of the Native Development Kit for apps like games (hint: if you need it, you probably already know you need it), Eclipse is mandatory. However, Android Studio is a good option if you want to get a jump start on the future, and you're willing to tolerate some possible bugs.
No matter which IDE you choose, using it is a bit like Photoshop: it can do a ton of cool things, but you'll probably only learn the individual tools as you need them. However, this is also a good place to get started on some of the basics of Android development. Here are some great tutorials and resources to get you started:
Udacity - Developing Android Apps: This 8-week online class has a good amount of free elements, taught directly by Google engineers. The course won't just copy-paste code, but it will help you learn some of the core concepts and features you'll need.
Android Developer Training: Part of Google's documentation includes training tutorials on how to use its tools. These documents will walk you through basic features of the IDE. If you don't have much experience developing applications, this might not turn you into a master dev, but it will help you learn the tools.
Vogella: It's worth mentioning Vogella tutorials in just about every section here. This massive set of tutorials covers just about everything you could cover. If you have a basic question not covered above, check Vogella.
ADB
ADB, this tool's primary purpose is actually to aid in development. As such, it's included in the Android SDK. You can use this to load software or make changes to your devices when it's plugged into your computer. Here are some of the basic tools you can use with ADB, but if you want to learn more as a developer, check these out:
[LIST=1]
[*]ADB Documentation: This is the primary resource from Google on what ADB is and how it works. You can find most of what ADB is capable of here.
[*]Vogella - Using the Android Debug Bridge: Another Vogella tutorial, this one covers the basics of how ADB works and some of the common things you can do with it. If you don't want to dig through Google's documentation for the one command you need, this might be a good place to start.[/LIST]
Android Developer Guidelines
We've already linked to a couple of resources from the official Android Developer Guidelines so far, which only proves how useful they are. Google maintains a vast, extensive collection of documentation and resources for how to program your apps that you can reference or search through.
If you're brand new to Android development, it can't hurt to browse through some of the tutorials and guides here. They're laid out in such a way that one lends into another (see the Android Developer Training above). Here are some sections that are worth brushing up on if you're getting started:
Google Services : Google offers a wide variety of features that you might otherwise have to build out yourself like map and location features, cloud backups, sign-in services and more. You can check them all out here.
API Guides: Google services are set apart from the regular APIs, which you can also read about here. These range from code to create basic animations, to reading sensors and connecting to the internet. There's tons of info here to add functionality to your app.
Sample Code: Sometimes it helps to see how someone else did it before you. This section shows you samples of code for various functions. This can help you see how something works, or just use it in your app so you don't have to reinvent the wheel.
Android Design Guidelines
The counterpart to the developer guidelines is the Design Guidelines. Google is focusing increasingly on teaching its developers how to make apps that not only work well but look good. As such, that means a lot of the work has been done for you to cover the basics like buttons, simple animations, and whatnot.
The place to go to get more info on this is the Android Design Guidelines, which are a second major subsection of Google's official documentation. Keep in mind that these are here for people who may not have a great grasp on visual design as it relates to creating application interfaces. In other words, if you already know what your app is going to look like, you might not need this. If you already know what you're app looks like but you're not good at making apps look good, check this out.
Here are a list of some the helpful areas to start:
Devices: Android targets more than just phones. This section will help you learn how phones, tablets, TVs, and watches all relate and how you can design an interface that adapts to all of them.
Patterns: Android is built on structured interfaces. This section teaches the building blocks of how apps work so you can design the framework that you'll be building your design on top of.
Material Design Documentation: This is technically a separate section for now, but Google's newest version of Android will introduce a new type of design language called Material Design. Here you can peruse what that means and how to think about designing apps that fit these guidelines. It's also helpful if you're not experienced with thinking about how users interact with apps, even if you don't follow the specific recommendations.
GitHub/BitBucket
While you're developing an app, there are a lot of files to manage and you'll need a way to track changes. Git is one of the most commonly used protocols to manage new versions or changes to existing software. Necessarily, it's a little more complicated than a basic backup tool. It's flexible enough to allow you to manage multiple different branches of your app as well as pull from older versions if something goes wrong.
Two of the most common services for managing projects with Git are Github and Bitbucket. Both use the same underlying protocol and can be integrated directly into either Eclipse or Android Studio. BitBucket allows you to have some private repositories (read: storage for projects) without paying money, while GitHub's free offerings require them to be publicly listed unless you pay a little extra. Here are some resources that can help you get started with Git:
BitBucket Tutorials: Atlassian, the maker of BitBucket, have a series of guides on how to get started with BitBucket and import your projects here. In my personal experience setting up both BitBucket and GitHub, this service and these guides were much easier for the uninitiated to get started with.
GitHub Guides: GitHub similarly has some tutorials on how to set up its service that you can find here. Some of the guides refer to older versions of the software in some cases, but generally you should be able to get up and running with these.
Vogella Git Tutoriall: Vogella has yet another great tutorial here explaining what Git itself is and how it can help you manage your entire project. While version management is Git's primary function, there's a lot more here that Vogella can walk you through.
Developing for Android is far more than just putting Java in a text editor. If you have a little bit of experience with writing code but haven't dived head first into actual app development yet, there's a lot you may not be aware you need to know just yet. The good news is, you're not the first person to go down this road. These are just some of the tools you need and hopefully these guides will put you on the right path.
If I Helped You,Press Thnx Insted Of Commenting...
and what about NDK?
fast toggles said:
and what about NDK?
Click to expand...
Click to collapse
Thnx for rply
I thought that it was for new peoples,once they will familiar with basic,will go to such level.
But you can provide me some links to add them here.
fast toggles said:
and what about NDK?
Click to expand...
Click to collapse
What is the point of using NDK?? I think it is important only if you want make games with c++ on Android??
Otherwise is there any point of using it ??
Thanks in advance
I think you might also added some links to learn Java programming first because who want to learn android must learn java first and have a good background with it as android is written by Java.
I think this free series on youtube will be useful for beginners to learn java:
https://www.youtube.com/playlist?list=PLFE2CE09D83EE3E28
Why does my Android 12 Xperia 5III have an Android 11 vendor image? A question I never thought I'd have to ask, to be honest...... In fact, something that I didn't really think was possible, although I have never really thought about it because I don't really see anything advantageous about it.
All in all, I dig my 5III. In my opinion, Sony hit the mark with the 5III when it comes to the pocket-friendliness/screen-siziness ratio.
But I have noticed a few things, here and there.... all very little things, yet big enough to be noticeable - a certain delay controlling bluetooth from the car stereo, things like that. I eventually got curious enough to poke around, and I found some interesting stuff and things. Here's a few noteworthy items:
1) Logcat shows a ton of odd missing permissions issues:
Code:
08-18 01:40:36.973 2498 2498 E PackageManager: Missing permissions state for com.sonymobile.xperiasystemserver and user 0
There's a bunch of these, and each one has to do with priv-app apk's on the system_ext partition. I've looked around but can't find anything that explains the "user 0" thing in a way I actually understand. I'm assuming it has something to do with apk's running in 'containers,' with their own user id, but all of these errors in logcat refer to user 0 (oh and each of these DO have a permissions file in system_ext/etc/permissions)
2) Logcat shows a ton of odd issues with overlays
Code:
08-18 01:40:36.591 2498 2498 W PackageManager: System overlay com.android.settings.product.res.overlay.orange_vowifi_non_static targets an SDK below the required SDK level of system overlays (31). This will become an install error in a future release
There's one of these for every [I think] apk found in product/overlay. When I saw this, I got to thinking.... Android 12 is SDK 31, so what's it talking about that it's targeting an SDK below 31?
3) getprop tells me different partitions are different SDK levels, or different versions of Android.
ro.system.build.version.sdk=31 ----------> Android 12, system image
ro.product.build.version.sdk=31 ---------> Android 12, product image
ro.system_ext.build.version.sdk=31 ---> Android 12, system_ext image
ro.vendor.build.version.sdk=30 -----------> Android 11, vendor image
Android 12 introduced some significant changes to the vendor image. One of which, which is a big deal for me and my use-cases, is the upgrade to the v7.0 audio HAL. As it turns out, the system image has the v7 libs, but the vendor image only has up to v6. And the audio_policy_configuration.xml isn't upgraded to the new v7 format. This is just one example, I'm sure there are more.
So I ask again, why does my Android 12 Xperia 5III have an Android 11 vendor image? What it seems like is Sony went with a pretty standard build of the CAF vendor image for lahaina (SDM888 or SM8350) SoC (CAF repo's still don't have Android 12 builds for LAHAINA) , and tossed in just enough proprietary jars and libs and binaries to discourage any real community development. Having camera issues, anyone? Well it would probably help if the system and vendor images were working from the same HAL. Instead, the system image dispatches commands on the newest HAL framework, only to bounce back and have to fallback to the older versions, which work. The vendor and system manifests even have different versions of a ton of different HALs.
So my question is simple, and it's in the title. Why is Sony using Android 11 vendor images for it's Android 12 flagships?
Email Sony then you know
Pandemic said:
Email Sony then you know
Click to expand...
Click to collapse
Yeah to be honest that was more of a pointless rant than anything else, but to be even more honest that's an option I hadn't even thought of.
You're a senior member, so you probably understand this stuff better than I do.... What sort of issues could that cause? If any, I guess -- a lot of what I see as problematic feels highly speculative because I'm still learning and self-doubt and I are very well acquainted
lunalsmojo said:
Yeah to be honest that was more of a pointless rant than anything else, but to be even more honest that's an option I hadn't even thought of.
You're a senior member, so you probably understand this stuff better than I do.... What sort of issues could that cause? If any, I guess -- a lot of what I see as problematic feels highly speculative because I'm still learning and self-doubt and I are very well acquainted
Click to expand...
Click to collapse
Well, SONY is lazy defacto. Kernels, Recoveries, Vendors... It's all stuck and outdated. Besides the Point that we are lacking a lot of Features Like Theming, AI Assist, Simple UI Mode for older People, own Sony Apps, Basic Pixel Features that other OEMs also include...
Compare Sony to Like ASUS and You will See that Xperia Hardware is great but the Software sucks as hard as You can Imagine. Non working Telephone Apps on a multi-thousand Dollar Walkman without SIM support included.
All they would need is a single Developer WHO fixes all of this issues. Someone with knowledge about Android and Sony... I would but don't think Sony is really investigated in fixing anything Out of My View
Miustone said:
Well, SONY is lazy defacto. Kernels, Recoveries, Vendors... It's all stuck and outdated. Besides the Point that we are lacking a lot of Features Like Theming, AI Assist, Simple UI Mode for older People, own Sony Apps, Basic Pixel Features that other OEMs also include...
Compare Sony to Like ASUS and You will See that Xperia Hardware is great but the Software sucks as hard as You can Imagine. Non working Telephone Apps on a multi-thousand Dollar Walkman without SIM support included.
All they would need is a single Developer WHO fixes all of this issues. Someone with knowledge about Android and Sony... I would but don't think Sony is really investigated in fixing anything Out of My View
Click to expand...
Click to collapse
Latest A12 - 21 12 22.
{
"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"
}