Zsh Startup Acceleration

Zsh is already the default shell of macOS Catalina. As we configure more and more plugins for zsh, the startup speed of zsh becomes slower and slower. This article will introduce how to measure and optimize the startup speed of Zsh.

Read More

Leverage the Google Play In-App Review API

Two months ago, Google released the In-App Review API, allowing users to complete ratings and reviews without jumping out of the application. I added this feature to the open source application wake up screen. This article will introduce how to integrate it and the problems I encountered.

Read More

Git QuickStart -- Team Collaboration

This article will introduce how Git is used in daily collaboration scenarios. Before reading, please make sure that you have a basic understanding of Git and master the common command usage.

Read More

Record a GIF Problem Investigation and Exploration

One day, we received feedback from the operator that a GIF banner could not be played on the website, and it was normal on the APP side. The operator indicated that the last configuration of GIF banner was normal, and gave the picture links of the two configurations.

Read More

Video Player's AutoPlay Framework Design in RecyclerView

When I reviewed the notes, I found that this article was not uploaded to the blog. Although the code implementation is outdated, the idea has been used all the time, so today I simply sorted the content and sent it to the blog.

Auto-playing of the video is a common application scenario, which involves sliding distance monitoring of lists, lifecycle perception of pages, and changes in video state. This article describes an automatic playback architecture design for RecyclerView component.

Read More

Analysis and solution of online Finalize() timeout problem

For a long time in the past, the online availability rate of the Android app has remained at around XX.X%. In recent months, a large number of TimeoutExceptions have been found in the statistics. In order to affect the number of users, XX of TopXX’s crashes are caused by similar problems.

From the statistics of the problem, more than XX% appear in the OPPO R9 series system, XX% occur in the background, the vast majority occurred before and after the application started X minutes, Android system version X.X and X.X accounted for And more than XX%, the proportion of non-Root users exceeds XX%. Based on the various data, this is a problem that occurs in a specific model/system, which is less sensible to users and has a higher incidence rate.

The user experience is a vital part of the application, so taking the time to analyze and solve the problem.

Read More

Solution of Jitter Problem in AppbarLayout Sliding Process

The need for an iteration is to achieve a hover effect on the page, considering that CoordinatorLayout has passed a number of versions of BugFix, it should be relatively stable. So try to implement hover directly with CoordinatorLayout+AppBarLayout. As the type of head layout continues to increase, the length gradually becomes larger, so the problem is unexpectedly discovered during the sliding process. Since the official is not repaired, the problem can only be repaired using the custom Behavior.

Read More

String Segmentation Matching for Dynamic Programming Problems

The question is as follows: There is an encrypted string s[1....n], and there is a codebook that records the original-ciphertext data of the key-value type. If the time of the table is Invariant, the result of the lookup table is treated as f(w), where w is a string, if it matches, it returns f(w), if it does not match, it returns null, try dynamic programming to determine the string. Whether s[1...n] can be decrypted.

Read More

Use Raspberry Pi to Hang Up Live and Auto Check-in

Android emulator and Docker on Windows can’t be used at the same time. I want to use Raspberry Pi to set up a development environment. I just watched the live broadcast recently, so maybe running an RTMP live broadcast on the Raspberry Pi is a good idea.

Read More

Hiding Information in Image Frequency Domain

Before the Qingming Dynasty, my classmates forward a link to me, it’s a question list. One of the related topics was to give two pictures, the original one and the processed one. They asked to decrypt the information.

Read More

Build a crawler agent pool

Anti-reptiles are numerous, the most common one is to check the Header, and the second is to block the IP based on the frequency of the visit. There are many websites that provide agents on the Internet, but the actual available IP is very small, and the purchase of the charging interface is not suitable for small projects. Therefore, it is very necessary to build a pool of your own crawler agent.

Read More

Gadget development for mouse coordinates

I made an automated tool recently and found that it was horrible to get the current coordinates of the mouse when developing. It’s a waste of time to use the Photoshop ruler for viewing the screenshots, so I wrote a small tool to get the coordinates. The autopy library is used to implement the function, and Tkinter is used to draw the interface. Convenient for further development in the next step.

Read More

Hide files in images using Python

There are many ways to hide files in images on the web, which can also be done in Python, which avoids the blocking method of matching links or text. Most of the rumors circulating on the Internet are rar format. I have tried it for free, zip can also, find some information, and organize the process as follows.

Read More