Book Image

Android NDK: Beginner's Guide

By : Sylvain Ratabouil
Book Image

Android NDK: Beginner's Guide

By: Sylvain Ratabouil

Overview of this book

Table of Contents (18 chapters)
Android NDK Beginner's Guide Second Edition
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Time for action – allocating an object with JNI


Let's define a background Watcher that will use an object shared between Java and C/C++ as a lock:

  1. In Store.java, add two new methods to start and stop a watcher thread. These methods respectively return and take a long as parameter. This value helps us hold a native pointer on the Java side:

    public class Store implements StoreListener {
        ...
        public native long startWatcher();
        public native void stopWatcher(long pPointer);
    }
  2. Create a new file, StoreThreadSafe.java. The StoreThreadSafe class inherits from the Store class and aims at making the Store instances thread-safe using synchronized Java blocks. Declare a static member field LOCK of type Object and define a default constructor:

    package com.packtpub.store;
    
    import com.packtpub.exception.InvalidTypeException;
    import com.packtpub.exception.NotExistingKeyException;
    
    public class StoreThreadSafe extends Store {
        protected static Object LOCK;
        
        public StoreThreadSafe(StoreListener...