Overview
Push is a communication mechanism between content providers and content customizations on the internet, using programs at the server end to continuously push data sources to the client, greatly improving the interaction between the client and the server。
Data interactions on the traditional internet generally take place in both the poll and push formats. Poll is typically used by browsing web pages, by the user offering to access data from the server; push, on the contrary, sends data directly to the client via the server, and the user receives the message passively, similar to a more timely text message. Push uses two features: time uncertainty, timeliness, e. G. Sending group purchase messages, e-consumer bills, etc。
A consistent, stable and reliable information delivery service for third-party applications was provided, leading to the proactive delivery of service-to-client messages. Third-party applications can result in a single target address being sent or a mass message being sent, and can also be directed to groups by designating tag. In addition to providing basic transparent transmissions to third parties, some information presentations have been provided to enable customer alerts, bullet-box operations, etc., to help clients quickly achieve a more customized information delivery service。
Now push the supportAndroidIos phone platform。

First, let's look at the elements that make up a delivery system
Push sdk:
It appears in jar form, integrates third-party clients, interprets third-party downline data and passes the results to third-party clients; it can also go up to third-party custom client information。
Push server:
The one side is responsible for maintaining long-term connections with thousands of push-sdks and the other side is connected to third-party servers, pushing custom-made third-party data down to push-sdk。
Third-party server:

The sponsor of the data transfer sends the data to a third-party client by docking a push server。
Third-party client:
A third party integrates a client who pushes the sdk, sending the data to the actual recipient and the exhibitor。
These are four different players in the push-out system that appear abstract and can be enhanced by the following images:
Note:
Appid: application of id, third party registration of account numbers in a push system and creation of the only resulting application identifier。
Clintid: used to identify clients, to be retrieved by third-party clients and saved to third-party services。

Uid: usually a user identifier in the third-party system account system. Third-party service providers are generally required to preserve the mapping of uid and clitid, and when the message is sent, the corresponding clitid is found through uid。
Let us describe the system in a more graphic way: treasure shopping is an example of what many people have experienced。
Treasure hunter-third-party server
Purchasing buyer — third-party client
A delivery company (e. G. Windfall) - a push server
The collection of home addresses, couriers, package tests, etc. - push sdk。
Assuming that the buyer of the treasures has a bill, it must first fill out the address of the mail (assuming that there is no default), which is equivalent to a push-up of the sdk to establish a channel based on the client's information (the express delivery address)。

When payment is successful, the seller needs to deliver the goods (the third-party service needs to send the data), of course by having the express delivery company pick-up (send the data to a push server), by sending the parcel (data) to the buyer (the third-party customer's identity information, referred to above as clentid), after the buyer has received the goods, by checking whether the goods are damaged (the data are customised), by obtaining the contents of the package (the data obtained from the service end) and by signing a receipt (the sdk feedback data was sent successfully)。
In contrast to the examples above, we would like to recapitulate the technical processes of the entire process:
Third-party client integration into sdk. When the third-party client starts, call the sdk interface, start the delivery service, run and maintain a long connection to the thrust end, and register and log in the sdk. A third-party service provider calls an interface of a push server, and the data to be sent is sent through a push server to the designated identity of the sdk. Sdk resolves custom data and sends the data through a third-party server to a third-party client who acts or displays the data from the server。
A trap
At first glance, achieving a delivery system is not particularly complex, and then, in fact, there are still considerable technical problems to overcome, especially for the android mobile terminals。
Power management
The android system has done a great deal of bottom-level work in power management to minimize cell phone usage and to extend on-call hours, using batteries to a finely calculated extent. However, these efforts by the android system in the area of power management can easily be depleted by irregular applications. As a procedure that requires long-term backstage steady operation, sdk services are available for power management and average daily consumption can be contained around 40 mah, with little impact on users ' daily mobile phone usage。
Network stability

Regional differences, time-frame differences and differences among operators are evident under the conditions of a network of mobile operators in the country, making it difficult to achieve stable connectivity on mobile phones. In order to achieve a stable balance between networking and traffic consumption under various network conditions, self-adaptation algorithms capable of adjusting the pace of heartbeats to network conditions have been developed to achieve the most stable quality of networking at minimal network cost. The current space traffic consumption of sdk is only 0. 8m-1. 2m per month, without loss to the user's purse。
Performance issues
In order to achieve millions of sdks that are connected to the service side while at the same time able to control the operating costs of the system, the delivery platform requires parallel scalable capabilities and high access server performance. The current push system, through technical means such as internal kernel optimization, code optimization, hierarchical architecture design, has achieved a 200-ww steady online presence, theoretically supports unlimited parallel expansion and stands the test of practice and is providing a steady delivery service to over millions of users online。
Summary
Delivery services are associated with the development of mobile internet, which is gradually showing commercialization claims. An increasing number of mobile applications, electricians and games are aware of the importance of delivering services for their own business, and then the current state of affairs in the country has led to a lack of stable and reliable delivery services on the android system. This paper provides an overview of the structure of the push system and the information flow process and explores the technical issues that must be addressed in practice. The commitment to achieving the most stable and reliable delivery service on the android system was achieved in terms of relevant technical parameters。




