1d97a532cb291aa8c5b5b1f000052c581faa50f29Yabin Cuipackage com.example.simpleperf.simpleperfexamplewithnative;
2bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui
3bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cuiimport android.support.v7.app.AppCompatActivity;
4bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cuiimport android.os.Bundle;
5bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui
6d97a532cb291aa8c5b5b1f000052c581faa50f29Yabin Cuipublic class MixActivity extends AppCompatActivity {
7d97a532cb291aa8c5b5b1f000052c581faa50f29Yabin Cui
8d97a532cb291aa8c5b5b1f000052c581faa50f29Yabin Cui    static {
9d97a532cb291aa8c5b5b1f000052c581faa50f29Yabin Cui        System.loadLibrary("native-lib");
10d97a532cb291aa8c5b5b1f000052c581faa50f29Yabin Cui    }
11bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui
12bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui    @Override
13bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui    protected void onCreate(Bundle savedInstanceState) {
14bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui        super.onCreate(savedInstanceState);
15d97a532cb291aa8c5b5b1f000052c581faa50f29Yabin Cui        setContentView(R.layout.activity_mix);
16bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui        createBusyThread();
17bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui    }
18bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui
19bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui    void createBusyThread() {
20bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui        new Thread(new Runnable() {
21bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui            volatile int i = 0;
22bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui
23bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui            @Override
24bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui            public void run() {
25bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui                while (true) {
26bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui                    i = callFunction(i);
27bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui                }
28bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui            }
29bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui
30d97a532cb291aa8c5b5b1f000052c581faa50f29Yabin Cui        }, "BusyThread").start();
31bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui    }
32d97a532cb291aa8c5b5b1f000052c581faa50f29Yabin Cui
33d97a532cb291aa8c5b5b1f000052c581faa50f29Yabin Cui    private native int callFunction(int a);
34bfe1a73b29661a79b3d58300bfe4ce539a5fee44Yabin Cui}
35