ASM bytecode stub

Why full burial? Buried points in the past manual form In the past, the buried points were artificially defined and selectively buried. The number of buried points continued to increase after multiple version iterations. Calling basically the same code in each code block is highly intrusive. If you replace the SDK later, you may make a lot o ...

Added by ziggy3000 on Tue, 23 Nov 2021 04:29:20 +0200

Arouter usage and principle 2: source code introduction

preface I divide arouter into development phase, compilation phase and running phase, which correspond to the three dependent packages of arouter respectively 1, Development phase (arouter annotation) Arouter annotation mainly defines annotations and related parameters for us to use 2, Compilation phase (arouter compiler) Arou ...

Added by Justin98TransAm on Tue, 23 Nov 2021 02:40:47 +0200

OpenGL uses Shader to realize RGBA to I420 (with project source code)

Previously, I wrote two articles on shader to realize RGBA to YUV:OpenGL uses shader to convert RGBA to YUYVOpenGL uses shader to convert RGBA to NV21Some links about YUV images are also posted here for unfamiliar students to consult.Master the basic processing of YUV imageShader realizes RGBA to I420Images in I420 format are common in video de ...

Added by ironman on Mon, 22 Nov 2021 11:58:41 +0200

DiffUtils encountered Kotlin and drained the last drop of performance of local refresh of the view

preface: RecyclerView, as the most commonly used development component in Android development, does not need to use DiffUtils for simple static pages. In order to improve the rendering performance of RecyclerView, the easiest thing to think of is to use the DiffUtils component. On the one hand, only a changed Item is refreshed; On the other ha ...

Added by AMV on Mon, 22 Nov 2021 11:22:31 +0200

NDK development process

NDK development learning notes. 1. Write native methods in Java code. You can write the native method in the Activity or recreate a Java class. I wrote it here by re creating a Java class. public class GetString { //native method public native String getString(); } 2. Create a jni directory under the main directory. Used to store h ...

Added by christofurr on Mon, 22 Nov 2021 08:46:43 +0200

Android Getting Started tutorial | OkHttp getting started

OkHttp is an HTTP client.characteristic:Connection pooling reduces request latency (when HTTP/2 is not available)Reduce download volume when transmitting GZIPCache replies to the same requestOkHttp can recover silently from connection failure. If the service has multiple IP addresses, it will try other addresses if the first access fails. This ...

Added by roy on Mon, 22 Nov 2021 08:02:21 +0200

Migrating from LiveData to Kotlin data stream

The history of LiveData dates back to 2017. At that time, the observer pattern effectively simplified development, but libraries such as RxJava were too complex for novices. To this end, the architecture component team created LiveData: an observable data storage class with autonomous life cycle awareness dedicated to Android. LiveData is des ...

Added by vurentjie on Mon, 22 Nov 2021 06:26:39 +0200

Android mediasoup webrtc h264 soft codec related source code analysis

Android mediasoup webrtc h264 soft codec related source code analysis Starting address of this article https://blog.csdn.net/CSqingchen/article/details/120218923 Latest update address https://gitee.com/chenjim/chenjimblog Based on libmediasoupclient 3.2.0 And webrtc branch heads / 4147 (m84) This article must be familiar with the releva ...

Added by Haroskyline on Sun, 21 Nov 2021 07:31:48 +0200

When Android talks about generics, everyone is very Buddhist, [Daniel crazy teaching]

public void startTest() { Tested<Test1th> test = new Tested<>(); test.set(new Test1th()); Test1th td = test.get(); } Very simple. What if we need Tested to hold multiple objects? Look at chestnuts: public class Tested<A, B> { private A a; private B b; public void set(A a ...

Added by davidwhiteuk on Sun, 21 Nov 2021 04:11:17 +0200

Kotlin Jetpack actual combat_ 09. Android Development Manual

If we decompile the above suspended function into Java, the result will be as follows: // Continuation is equivalent to CallBack // ↓ public static final Object getUserInfo(Continuation $completion) { ... return "BoyCoder"; } From the result of decompilation, the susp ...

Added by The MA on Sun, 21 Nov 2021 02:38:48 +0200