///////////////////////////////////////////////////////////////////////////////
// ,        
private InputHandler mInputHandler;

///////////////////////////////////////////////////////////////////////////////
//   
        if (mInputHandler == null)
            mInputHandler = new InputHandler(this);

        if(mSt.mUInputEnable) {
            new AsyncTask<Void, Void, Boolean>() {

                @Override
                protected Boolean doInBackground(Void... params) {
                    return mInputHandler.open();
                }

                @Override
                protected void onPostExecute(Boolean result) {
                    super.onPostExecute(result);
                    if (result) {
                        if (D) Log.d(LOG_TAG, "uinput open succesfully");
                    } else {
                        if (D) Log.d(LOG_TAG, "error open uinput");
                    }
                    reportStatusBroadcast();
                }
            }.execute();
        }
        else {
            if (D) Log.d(LOG_TAG, "uinput disabled");
        }

///////////////////////////////////////////////////////////////////////////////
//   -    
mInputHandler.keyBegin();
...
//   ,   
mInputHandler.keySet(keyCode);
...
//    -        
//   . 
//  ,          -   
//       
mInputHandler.keyEnd();

///////////////////////////////////////////////////////////////////////////////
//   -      
mInputHandler.touchBegin();
...
//      ID 
mInputHandler.touchSet(touchID, touchX, touchY);
...
//    -    
mInputHandler.touchEnd();


///////////////////////////////////////////////////////////////////////////////
//   - 
if(mInputHandler.isDeviceOpened())
    mInputHandler.close();
