According to techrepublic, at the end of each year, there are always many reviewers and predicators who like to guess about the coming year. In order to keep this tradition, this article puts forward eight bold predictions for the Android Market in 2016.
Tutorial
MVP architecture in Android Development
More and more people are talking about architecture recently. This is also true for colleagues and engineers around me. Although I do not have a deep understanding of MVP and DDD, our new project is decided to be built through MVP. This article is summarized by studying and studying various articles and topic discussions. It includes the following points: Why are more and more people interested in architecture? First, what is MVP? Which architecture is the best? MVC, MVVM or MVP? Benefits and disadvantages of MVP
Performance problems caused by Android multidex-slowing app startup
In the android community, the limit of the number of 65k methods is a problem that has been mentioned many times. The current solution to this problem is to use multidex. Although multidex is a great method provided by Google, I have found that it has a serious impact on app startup performance, which has not yet been taken seriously by the community. This article is intended for developers who have not heard of this problem (but want to use multidexing) and those who use multidexing, but I want to observe what the solution in this article is written by partners who can win the performance.
Testing with Hacker thinking-Introduction to the Xposed framework
The Xposed framework is a framework service that can affect the running of Programs (modifying the system) without modifying the APK. Based on this framework, many powerful modules can be created, in addition, it operates simultaneously without conflicting functions. The Zygote process is the core of Android, and all application processes and system service processes are forwarded by the Zygote process. Xposed Framework goes deep into the Android core mechanism and implements some awesome functions by transforming Zygote.
Java Functional Reactive Programming
How can we transfer the traditional variable-type thread synchronous management to data-based Asynchronous streaming programming? Try Reactive Programming! This article includes the following topics: reactive extension, observers, and how RxJava works. Although it is not easy to get started, it is always fun to get started.
Build High-quality applications
Developers aim to create applications that users like. Users with better user experience will be willing to invest more money. apps with higher scores on the Google Play store will get more downloads. So how to measure the application quality? From one perspective, the application quality involves the following aspects: the application does solve the user's needs; the application is not only beautifully designed but also easy to use; stable and reliable applications, good performance, no traffic waste, no power consumption, etc. Applications are innovative and use the latest Android features;
What is Android MVVM? After reading it, you will understand
What is MVVM? Let's start with MVC step by step. As we all know about MVC, Model-View-controller. In order to separate all parts of the program to reduce coupling, we divide the code structure. Their communication methods are also shown in. That is, the View layer triggers operation notifications to the business layer to complete logical processing. After the business layer completes the business logic, it notifies the Model layer to update the data. After the data is updated, it notifies the View layer to display the data.
Debugging skills you don't know about Android Studio
There are inevitable bugs in code writing. The most direct debugging method except logs is debug. What stage does your debugging technology stay? Is it just the next breakpoint executed in one step? Or you know the Evaluate Expression and the condition breakpoint. Have you heard of the log breakpoint,Method Breakpoint
,Exception Breakpoint
What about it? There is also a Field on the tallWatchpoint
?
In-depth understanding of Android (II): Java Virtual Machine Dalvik
This is a big topic, but it is not a very ambitious pursuit from the very beginning. At the beginning, it was only due to curiosity about Xposed. Xposed is almost the technical architecture or method of customized ROM artifacts. How is it implemented? I wanted to understand the implementation principle of Xposed, but with the in-depth study of code, I found that if I didn't understand the implementation of virtual machines, I simply stuck on the calling process of Xposed, that's the greatest disrespect for Xposed.
Picasso Study Notes
Why do we use image libraries for Image Library Loading? Image libraries typically encapsulate and optimize the image loading logic, such as multi-level caching, asynchronous thread scheduling, and image compression conversion. With these features, developers no longer need to pay attention to issues such as memory usage, OOM, and network requests. They only need to pay attention to the logic of the business itself, which is of great help to improve production efficiency.
[Java development package learning 8] in-depth analysis of ConcurrentHashMap
In a multi-threaded environment, the use of Hashmap for put operations will lead to an endless loop, resulting in a CPU usage close to 100%, so HashMap cannot be used in the case of concurrency. Although there is already a thread-safe HashTable, The HashTable container uses synchronized (The implementation code of its get and put methods is as follows) to ensure thread security, hashTable is very inefficient when thread competition is fierce.
Android Silent Installation implementation solution, like 360 mobile assistant Second installation and smart Installation
Many of my friends have asked me how to implement Silent Installation in the Android system? The so-called Silent Installation means that you do not need to bring up the installation interface of the system and install the program without affecting your operations. Although this method does not seem to disturb users, there is a problem because the Android system will display the permissions declared by the program to users on the installation interface, the user evaluates these permissions and determines whether to install the program. However, if the silent installation method is used, there is no place for the user to view the permissions, which is equivalent to the user's passive acceptance of these permissions.
Optimal Hybrid development of Hybrid
Visual performance is impressive. Although the H5 package is offline isolated from the interference of the weak network on the second, the local I/O time of the device cannot be ignored, and the zip decompression is considered as follows, only the local I/O of the device contains an HTML file that contains the resource file. It also takes several seconds. on iPhone 5, there will be about 0.5 seconds of white screen time.
Twitter like animation for Android
Not long ago, Twitter presented a modern heart-shaped animation-a replacement for the star icon. Although heart-shaped logos are more common and expensive, today we try to copy new animations and use old star icons. Although the simplest way to implement this Animation is to use Frame Animation, we try to implement it in a more flexible way-manually draw and use Attribute Animation. This article is just an overview without in-depth technical details.
App Islands War
Last week, Google launched a function named stream, which can be used to directly present an App to users in the search results, even if you have not installed this App. This sounds really cool. Currently, Android L and above are available in Wifi and only English search results are supported. You can see the figure below.
Quiet coding algorithm series
This series includes: search entry, dynamic planning, tree array, difference constraint, elementary number theory, and recent common ancestor
Open-source libraries & Projects
HashTagHelper
A library that helps you highlight the topic tag ("# example") and capture the click topic tag event.
SmallBang
A library that allows you to add Twitter heart button animation effects to any View.
LikeAnimation
Twitter heart button animation effect.
ToggleDrawable
A library that allows you to easily create a Drawable Animation Based on the besell curve.
FontDrawable
You can convert the Icon-font to a Drawable or Bitmap library.
Easypermissions
The system Permission Logic is encapsulated.
Java8-the-missing-tutorial
The Java 8 tutorial cannot be missed.
App-theme-engine
A simple and easy-to-use App theme engine.
ZoomTextView
Supports custom TextView with gesture scaling. Both the control and text are zoomed in and out with the gesture.
HTextView
The text display animation of the TextView with excellent results.
Android-Plugin-Framework
This project is the complete source code and example of the Android plug-in development framework. It is used to run the plug-in APK in the Host Program through dynamic loading.
Tools
HackMyResume
A tool that can help you generate beautiful and resumes in multiple document formats.
AndroidCodeQuality
A project that helps you detect code quality when you execute "gradle assembleXX" or build your App using tools such as checkstyle, pmd, and findbugs.
Gradle-config
A Gradle plug-in that uses the yaml format file to help you process specific variant settings.
Video
Application of Design Pattern in Financial Transaction System
The securities trading system is faced with low latency, high concurrency, and transactional operations. 1. We apply Event Sourcing and Leader Election modes to solve the high availability problem of transaction middleware (Multi-active, zero-latency switching ). 2. Use LMAX Disruptor To solve high concurrency and Low-latency message transmission in the service. 3. The transaction Bus Based on PGM multicast solves the problem of arbitrary service expansion.
Outside of Technology
How to recruit?
Many of my friends asked me for help and said they would like to ask for recommendations. I am generally very embarrassed. Only when I am familiar with you, understand what you are doing, and understand your abilities can you give me a simple publicity. As for reliable friends, I am sure to do my best to help. However, in the context of the current market, money is not money. programmers, designers, and other technical talents are soaring in this special supply-demand relationship due to the abnormal market, so no one cares about the technical quality, because the recruiters themselves do not respect technology.