Android Application Framework with borderless design intent, android with borderless design intent
The description of the feature space outside the Android Application Framework is clearly described in the SDK documentation, and the basic concepts and component lifecycles of Android applications are described in detail. In the feature space, Android provides the following concepts: Activity, Service, Broadcast receivers, Content Provider, Intent, and task. I will not discuss these concepts and definitions here, because the SDK documentation is detailed enough.
When I read the SDK documentation and studied the concept of Activity, I felt the intent of the Android free and borderless design in Android. Android applications are just virtual and have no actual entrance. Unlike the application concepts on the Windows platform, Android provides Components. Why is it necessary to virtualize the concept of an application? I think this virtualization is a direct manifestation of the free and borderless design intent. Highlight requests and services, highlight individual components, and weaken boundaries. various components of the system can communicate freely without boundaries. Service requestors directly send requests, no matter where the object is or who it belongs to, the component is a free and independent individual. An application can directly request the components of other applications. This is the core concept of the Android Application Framework Design, everything else serves this core idea.
Let programmers ignore the concept of application, or even abandon the concept of process. What programmers see is a component. application programmers use these components to construct a so-called application, so what do designers need to consider first? I think it should be an abstract application model under which concepts and interfaces are generated.
We know that MicroSoft has proposed the concept of Application, Windows, and Foreground Application (Foreground Application). In MicroSoft's Application model, user interaction is completely handed over to Window, the presentation of various interfaces belongs to this application. Each component object between applications cannot access each other. A maximum of one inter-process communication mechanism is provided, which is also at the application layer. Microsoft has also proposed components and distributed components, but these are not rooted in Windows systems, while Android is completely componentized, the initial application concept is Activity, Service, Broadcast receivers, Content Provider, Intent, and Task. These concepts reflect the nature of a human-machine interaction model:
- Interface Rendering
- Initiate a request and respond to the request
- Content Interaction
- Message Receiving and Processing
Activity is the core concept of Android applications. In short, Activity is the manager of user interaction and has a visual interface. The difference between Service and Activity is that it runs in the background without interface rendering. Intent indicates the Intent. In the concept space of Android, Intent indicates the message, which represents the request Intent.
Activity can exist everywhere, provide services, and eliminate space differences. Activity is an independent individual and can better express the essence of object-oriented. This individual needs to receive messages from another individual and can initiate requests to another individual at any time. Individuals are free. In Android, you can start an Activity, but you do not have the right to destroy an Activity. This is an embodiment of individual rights. The elimination of an individual is determined by the system, this is the humanistic meaning of Activity in Android.
What are common android design patterns or frameworks? I am talking about the most common SSH frameworks, such as those in j2ee.
There is no framework in android.
Just do it well by following the mvc layering principle. Some open-source libraries such as facebook also have a lot of open-source libraries. You can consider using it.
What is the five application development frameworks of android?
The android Application Development Framework consists of five parts: Linux Kernel, Android Runtime, Libraries, Application Framework, and Applications. The second part will detail these five parts. The bottom-up analysis layers are as follows.
Android Architecture
1. Linux Kernel
Android provides core system services based on Linux 2.6, such as security, memory management, process management, network stack, and driver model. Linux Kernel is also an abstraction layer between hardware and software. It hides specific hardware details and provides unified services for the upper layer. If you have learned computer networks and know OSI/RM, you will know that the benefit of layering is to use the services provided by the lower layer to provide unified services for the upper layer, shielding the differences between the current layer and the following layers, when the current layer and the following layers change, the upper layer is not affected. That is to say, each layer performs its own duties, and each layer provides a fixed SAP (Service Access Point). The professional points can be said to be high cohesion and low coupling. If you are only engaged in application development, you do not need to have a deep understanding of the Linux Kernel layer.
2. Android Runtime
Android contains a collection of core libraries, providing most of the functions available in the core library of Java programming language. Every Android application is an instance in the Dalvik Virtual Machine and runs in its own process. The Dalvik virtual machine is designed to efficiently run multiple virtual machines on one device. The Dalvik Virtual Machine executable file format is. dex. dex is a compression format designed for Dalvik, suitable for systems with limited memory and processor speed. Most virtual machines, including JVM, are stack-based, while Dalvik virtual machines are register-based. The two architectures have their own advantages and disadvantages. Generally, the stack-based machine requires more commands, while the register-based machine requires more commands. Dx is a set of tools that can convert Java. class to. dex format. A dex file usually has multiple. classes. Because dex sometimes has to be optimized, it will increase the file size by 1 to 4 times and end with ODEX. The Dalvik Virtual Machine relies on the Linux kernel to provide basic functions, such as thread and underlying memory management.
3. Libraries
Android contains a collection of C/C ++ libraries for various components of the Android system. These functions are exposed to developers through the Android application framework. The following lists some core libraries: system C library-the BSD derivative of the Standard C system library (libc), adjusted to the embedded Linux device media library-The PacketVideo-based OpenCORE. These libraries support playing and recording many popular audio and video formats, as well as static image files, including MPEG4 and H. 264. Manage MP3, AAC, AMR, JPG, and PNG interfaces-manage the access display subsystem and seamlessly combine the 2D and 3D graphics layers LibWebCore of multiple applications-a new Web browser engine, driver Android browser and Embedded web View SGL-Basic 2D graphics engine 3D library-Based on OpenGL ES 1.0 APIs implementation. Libraries use hardware 3D acceleration or include highly optimized 3D software grating FreeType -- bitmap and vector font rendering SQLite -- powerful and lightweight relational database engines available for all applications
4. Application Framework
By providing an open development platform, Android enables developers to develop extremely rich and novel applications. Developers can freely take advantage of the hardware advantages of devices, access location information, run background services, Set alarms, and add notifications to the status bar. Developers can fully use the APIs framework used by core applications. Architecture of the application ...... the remaining full text>