CN102364434A - Method for integrating Wine and Android mouse input - Google Patents

Method for integrating Wine and Android mouse input Download PDF

Info

Publication number
CN102364434A
CN102364434A CN2011101737488A CN201110173748A CN102364434A CN 102364434 A CN102364434 A CN 102364434A CN 2011101737488 A CN2011101737488 A CN 2011101737488A CN 201110173748 A CN201110173748 A CN 201110173748A CN 102364434 A CN102364434 A CN 102364434A
Authority
CN
China
Prior art keywords
tinyx
mouse
android
mouse input
wineproxy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011101737488A
Other languages
Chinese (zh)
Other versions
CN102364434B (en
Inventor
毛德操
王承志
徐鼎鼎
陈天洲
邵景程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INSIGMA TECHNOLOGY Co Ltd
Original Assignee
INSIGMA TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by INSIGMA TECHNOLOGY Co Ltd filed Critical INSIGMA TECHNOLOGY Co Ltd
Priority to CN201110173748.8A priority Critical patent/CN102364434B/en
Publication of CN102364434A publication Critical patent/CN102364434A/en
Application granted granted Critical
Publication of CN102364434B publication Critical patent/CN102364434B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

The invention discloses a method for integrating Wine and Android mouse input, which is mainly used for processing a mouse input event happened when an ordinary Linux application program is executed in an Android system, and comprises the following steps that: a proxy process WineProxy is established to receive the mouse input event; a way for acquiring the mouse input from a kernel is disconnected in a TinyX; a communication connection between the TinyX and the WineProxy is established; when a mouse input event happens, the WineProxy transmits an event notice to the TinyX through the communication connection; and after receiving the event notice, the event notice is encapsulated into a message in a TinyX format by the TinyX to be transmitted to the application program to process.

Description

A kind of method of integrating Wine and the input of Android mouse
Technical field
The present invention relates to the intelligent mobile terminal field, in particular, relate to the method for a kind of Wine of integration and Android mouse input.
Background technology
The intelligent portable terminal that with the mobile phone is representative is important development direction of computer technology, so market competition is very fierce.Since Google and open mobile phone alliance's release Android operating system and the mobile phone, be on the increase based on the mobile phone market share of Android system, so more and more users experience problem has been paid close attention to based on this system.
So-called Android operating system; Be actually a kind of reorganization and expansion to (SuSE) Linux OS; Its kernel is the kernel through the Linux that revises; But but done significantly to improve and strengthen to the application characteristic of the mobile terminal device of mobile phone for example specially at user's space, these are changed mostly and programming mode and graphical interfaces, and promptly graphic user interface (GUI) is relevant.
In the (SuSE) Linux OS of band graphical interfaces, the function of relevant graphical interfaces is provided by the X windows system, and the mouse input also is the part of graphical interfaces function.The process of moving application software does not directly read the mouse input, but obtains input through interprocess communication from X service processes (Xserver).The input of man-machine interaction is read by Xserver unique in the native system earlier, handles in earlier stage by Xserver is unified, provides and delivers to suitable process/thread according to the form of onscreen target current location and current being in " focusing " state then.Said here in earlier stage handle can letter can be numerous, the simple processing itself implemented by the X form, complex processing then will be handled by plug-in program module, and the mouse input is handled and just belonged to such plug-in program module.So the mouse input processing that is actually to the X form is handled in the mouse input that is used for the Linux application.
The X form belongs to another open source software project, promptly exists as far back as the Unix epoch.Because linux system be unable to do without graphical interfaces mostly, the X form has in fact become the part of (SuSE) Linux OS.The needs that be to adapt to portable terminal and other embedded system, the technician with the in addition cutting of X form, reduce the staff, simplify, become the version of a miniaturization, be called TinyX.Therefore TinyX is the special X windows system of using with the built-in Linux pairing, and the mouse input processing program of exploitation is called TinyX mouse discrepancy handling procedure so also the Linux on the mobile phone is used.
, in the Android system, but throw TinyX away, comprise that all graphical interfaces functions that the mouse input is handled are all provided by Android oneself.Equally, Android also has and oneself is similar to such the focusing on and the mechanism of the input information of providing and delivering of TinyX.Make that on the Android mobile phone, moving common Linux if desired uses, the processing of mouse input just becomes a problem.This be because; Linux use must with the TinyX matching running; And used TinyX, just can only use the TinyX mouse input processing program supporting with it, but all Android application but can only continue to use mouse input processing program that provides by Android.Like this, will form the coexistent situation of TinyX and Android, no longer by in addition Unified Treatment and the dispensing of unique entity, can cause the problem of following two aspects from the physical state information of touch-screen and other input equipment this moment.At first, possibly have the situation of fighting for input information takes place; Secondly; Even do not fight for the situation of input information; The user also possibly adopt a kind of mouse input processing program when mutual using with Android; And adopt another kind of mouse input processing program when mutual using with Linux, because both differences on function and performance can be made troubles to user experience.
After being transplanted to the Linux platform to Wine, can therefore exist TinyX and Android to fight for the problem that Wine application program mouse is imported equally in the operation of Linux platform based on the WinCE/WM application software of Windows operating system.
Summary of the invention
In view of this; The object of the present invention is to provide the method for a kind of Wine of integration and Android mouse input; Make Android become the sole entity of the unified mouse input information that receives, handles, provides and delivers; Using to the Linux that on the Android mobile phone, moves provides the mouse input information, let the user need be on same mobile phone because will be mutual and not use different mouse input processing programs with different application.
Integrate the method for Wine and the input of Android mouse according to one embodiment of the invention a kind of, the mouse incoming event that takes place when being primarily aimed at the common Linux application program of in Android system execution is handled, and its processing procedure may further comprise the steps:
Step 1 is created an agent process WineProxy and is received said mouse incoming event;
Step 2 is cut off the approach that obtains the mouse input from kernel in TinyX;
Step 3 establishes a communications link between TinyX and WineProxy;
The mouse incoming event takes place in step 4, and WineProxy sends event notice through said communication connection to TinyX;
Step 5 after TinyX will receive said event notice, is packaged into it and is sent to program process after message of TinyX form and handles.
According to the integration Wine of above technical scheme realization and the method for Android mouse input; The mouse input will unify to flow through by Android mouse handling procedure that provides and the mechanism of providing and delivering; Receive by agent process earlier, be transmitted to TinyX again, arrive running Linux application process at last; Processing and the dispensing mechanism of having only a cover mouse input information in the whole process, thus realization Wine and the input of Android mouse are integrated.
Description of drawings
Shown in Figure 1 for integrating Wine and Android mouse input system basic structure synoptic diagram;
Shown in Figure 2 for integrating the software configuration synoptic diagram of Wine and Android mouse input;
Shown in Figure 3 for integrating Wine and Android mouse input processing flow chart.
Embodiment
Below in conjunction with accompanying drawing the preferred embodiments of the present invention are described in detail, but the present invention is not restricted to these embodiment.The present invention contain any on marrow of the present invention and scope, make substitute, modification, equivalent method and scheme.Understand for the public is had completely the present invention, in the following preferred embodiment of the present invention, specified concrete details, and do not had the description of these details also can understand the present invention fully for a person skilled in the art.
With reference to figure 1, be depicted as and integrate Wine and Android mouse input system basic structure synoptic diagram, horizontal dotted line is represented the boundary of user's space and system space among the figure, and dotted line is above to be user's space, is system space below the dotted line, and promptly linux kernel 140.WinCE/WM application process 120 comprises the EXE reflection 121 and Wine dynamic link library 122 of WinCE/WM.Except that operation WinCE/WM application process 120, also have two processes in the system at least, one is Wineserver110, i.e. the Wine server processes; Another is Xserver130, i.e. the TinyX server processes.Why WinCE/WM application process 120 can be moved on linux kernel, is because the support of Wineserver110 and Wine dynamic link library 122 is arranged.And why WinCE/WM application process 120 can obtain Genius mouse input, why can be on screen display graphics, be because the existence of Xserver130 is arranged.In the linux system of routine, all intercepted and captured from the input of Genius mouse by Xserver, be distributed to the current process that is focused on by Xserver again.
With reference to figure 2, be depicted as the software configuration synoptic diagram of integrating Wine and the input of Android mouse.Integrate the modification that Wine and Android mouse import original Android system and relate generally to following three parts.Wherein revise the respective sources code of comctl32.dll and winex11.drv.dll at the subsystem that is used for management and application program; Increase following function; In comctl32.dll, add the function that can judge whether to need to eject auxiliary input frame; Make it this click whether needs eject auxiliary input frame as response on screen according to the position judgment of click; In winex11.drv.dll, add an api function, make Wine send the request of ejecting auxiliary input frame to Xserver.
This instance system adopts TinyX as the Xserver in the system.Modification to TinyX mainly concentrates on the mouse input is obtained in cut-out from kernel approach.Specifically, the code revision of obtaining click input from system kernel among original TinyX is imported behavior for obtaining corresponding mouse through socket from WineProxy.
WineProxy is the present invention's newly-established task in the Android system.The function that WineProxy need realize comprises the click operation on the monitoring screen, writes down click operation types and concrete positional information, and it is packaged into the information format of X11 system standard.Also need realize being used for the Socket of communication between application program and TinyX and the WineProxy in this external system, and corresponding communications protocol.
The operation that the WineProxy module reads mouse from screen, and with its information stores in buffer zone, again the mouse action information in the buffer zone is sent to TinyX through Socket and handles; TinyX is responsible for the concrete processing of mouse input; The information of the mouse action that will obtain from WineProxy is packaged into the information format that meets the X standard criterion; And this information is sent to Winex11.drv.dll through Socket handle; The mouse input request that the Winex11.drv.dll module is responsible for TinyX is sent converts into can be by the form of comctl32.dll identification, and converts the request of comctl32.dll the TinyX command format of standard into.
With reference to figure 3, be depicted as and integrate Wine and Android mouse input processing flow chart.
Below with the soft keyboard input process in the Android system as an example, specify method of the present invention and how to be applied in the mouse input process in the Android system, realize integration function to the mouse input.
Step 301 is waited for the click on the screen, gets into step 302;
Owing to all can adopt in a plurality of tasks of soft keyboard input in the Android system, and the time of operation is unfixing, so system needs the click behavior of supervisory user on screen at any time;
Step 302, WineProxy sends to TinyX with this incident through Socket, gets into step 303;
After the user clicked screen, the onTouchEvent () method among the WineProxy was called.This method is encapsulated as an intrasystem incident with user's click, and notes the particular type of click and the information of position, is used for later operation;
Step 303, TinyX converts this incident into the X11 protocol format, and it is transmitted to application process, gets into step 304;
WineProxy sends to Xserver with packaged incident through socket; In this instance system, i.e. TinyX, the information of sending this moment does not also meet the form that the defined form TinyX of X11 agreement converts this event notice to X11 agreement defined; And it is transmitted to application process; This incident and TinyX know that the incident when mouse state changes is of equal value, comprise the click type, information such as the particular location of click; Click event after TinyX will transform sends to the winex11.drv.dll of application process through socket;
Step 304, Winex11.drv.dll is transmitted to comctl32.dll with it after receiving the incident from TinyX, gets into step 305;
After Winex11.drv.dll in the application process receives the incident from TinyX, judge it and be mouse click event, subsequently the comctl32.dll that gives the upper strata on it is handled;
Step 305 judges that clicking is enough to drop in the control able to programme, if, get into step 306, if not, return step 301,
X11 incident after the comctl32.dll on upper strata changes through encapsulation judges whether the cursor of this moment drops in certain Compilatory control; If the position of clicking belongs to the zone that can not edit; Just ignore current click operation; System state jumps back to step 301, continues to wait for the click operation of user on screen;
Step 306 is called the api function of Winex11.drv.dll, requires to eject input frame, gets into step 307;
If comctl32.dll judges the position of click and belongs in certain Compilatory control, just call the corresponding api function that Winex11.drv.dll provides, send the request of ejecting soft keyboard;
Step 307 is waited for the click input on the input frame, gets into step 308;
Step 308, judging whether to click can not editing area, if, get into step 309, if not, get into step 310;
Step 309 is closed input frame, and returns step 301;
Step 310, WineProxy obtains the position of click from the buffer zone of PosView, send it to XServer, gets into step 311;
Step 311, XServer receives the position of click, and it is transmitted to the Winex11.drv.dll of application process, gets into step 312;
Step 312, Winex11.drv.dll sends WM_POS message to application process, gets into step 313;
Step 313, application program receives WM_POS message, is back to step 307.
It should be noted that; Said process can also be optimized, and can TinyX be excluded from this process in the future, lets application process directly communicate by letter with WineProxy through Winex11.drv.dll; The communication time-delay of the corresponding mouse action of reduction system, the user experience of improvement system.
These embodiment are chosen and specifically described to this instructions, is in order to explain principle of the present invention and practical application best, thereby person skilled can be utilized this invention best under making.The embodiment that revises equally also is applicable to the application-specific of expection.Scope of the present invention be claims four corner with and equivalent.

Claims (1)

1. method of integrating the input of Wine and Android mouse, the mouse incoming event that takes place when being primarily aimed at the common Linux application program of in Android system execution is handled, and it is characterized in that its processing procedure may further comprise the steps:
Step 1 is created an agent process WineProxy and is received said mouse incoming event;
Step 2 is cut off the approach that obtains the mouse input from kernel in TinyX;
Step 3 establishes a communications link between TinyX and WineProxy;
The mouse incoming event takes place in step 4, and WineProxy sends event notice through said communication connection to TinyX;
Step 5 after TinyX will receive said event notice, is packaged into it and is sent to program process after message of TinyX form and handles.
CN201110173748.8A 2011-06-24 2011-06-24 Method for integrating Wine and Android mouse input Active CN102364434B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110173748.8A CN102364434B (en) 2011-06-24 2011-06-24 Method for integrating Wine and Android mouse input

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110173748.8A CN102364434B (en) 2011-06-24 2011-06-24 Method for integrating Wine and Android mouse input

Publications (2)

Publication Number Publication Date
CN102364434A true CN102364434A (en) 2012-02-29
CN102364434B CN102364434B (en) 2014-04-02

Family

ID=45691000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110173748.8A Active CN102364434B (en) 2011-06-24 2011-06-24 Method for integrating Wine and Android mouse input

Country Status (1)

Country Link
CN (1) CN102364434B (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257893A (en) * 2013-05-28 2013-08-21 腾讯科技(深圳)有限公司 Method, device and system for obtaining input event state
CN105404547A (en) * 2014-09-12 2016-03-16 阿里巴巴集团控股有限公司 Fusion method and device of operating system
CN105573816A (en) * 2015-12-11 2016-05-11 北京奇虎科技有限公司 Virtual input method, device and system
CN105677329A (en) * 2015-12-30 2016-06-15 联想(北京)有限公司 Controlling method and electronic device
CN110018917A (en) * 2019-04-11 2019-07-16 深圳市智微智能科技开发有限公司 Realize method, system, terminal and the storage medium of independent mouse input channel
CN112231017A (en) * 2020-10-27 2021-01-15 北京技德***技术有限公司 Virtual keyboard and mouse method and device for compatible operation of Android operating system on Linux
CN112558841A (en) * 2020-09-29 2021-03-26 统信软件技术有限公司 Application icon management method, computing device and readable storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510125A (en) * 2009-03-30 2009-08-19 东南大学 Method for implementing computer keyboard mouse action control using mobile phone by bluetooth
US20100050112A1 (en) * 2008-08-22 2010-02-25 Inventec Corporation System and method of immediate translation display
CN101968746A (en) * 2010-09-02 2011-02-09 北京航空航天大学 Method for implementing organizational architecture mode of kernel-based virtual machine (KVM)
CN102073542A (en) * 2010-12-22 2011-05-25 浙大网新科技股份有限公司 Method for integrating Chinese input method during operation of Linux applications on Android mobile phone

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100050112A1 (en) * 2008-08-22 2010-02-25 Inventec Corporation System and method of immediate translation display
CN101510125A (en) * 2009-03-30 2009-08-19 东南大学 Method for implementing computer keyboard mouse action control using mobile phone by bluetooth
CN101968746A (en) * 2010-09-02 2011-02-09 北京航空航天大学 Method for implementing organizational architecture mode of kernel-based virtual machine (KVM)
CN102073542A (en) * 2010-12-22 2011-05-25 浙大网新科技股份有限公司 Method for integrating Chinese input method during operation of Linux applications on Android mobile phone

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257893A (en) * 2013-05-28 2013-08-21 腾讯科技(深圳)有限公司 Method, device and system for obtaining input event state
CN103257893B (en) * 2013-05-28 2016-06-15 腾讯科技(深圳)有限公司 A kind of methods, devices and systems obtaining input state-event
CN105404547A (en) * 2014-09-12 2016-03-16 阿里巴巴集团控股有限公司 Fusion method and device of operating system
CN105573816A (en) * 2015-12-11 2016-05-11 北京奇虎科技有限公司 Virtual input method, device and system
CN105573816B (en) * 2015-12-11 2018-12-21 北京奇虎科技有限公司 The method, apparatus and system virtually inputted
CN105677329A (en) * 2015-12-30 2016-06-15 联想(北京)有限公司 Controlling method and electronic device
CN105677329B (en) * 2015-12-30 2018-12-14 联想(北京)有限公司 A kind of control method and electronic equipment
CN110018917A (en) * 2019-04-11 2019-07-16 深圳市智微智能科技开发有限公司 Realize method, system, terminal and the storage medium of independent mouse input channel
CN110018917B (en) * 2019-04-11 2023-07-28 深圳市智微智能科技股份有限公司 Method, system, terminal and storage medium for realizing independent mouse input channel
CN112558841A (en) * 2020-09-29 2021-03-26 统信软件技术有限公司 Application icon management method, computing device and readable storage medium
CN112231017A (en) * 2020-10-27 2021-01-15 北京技德***技术有限公司 Virtual keyboard and mouse method and device for compatible operation of Android operating system on Linux

Also Published As

Publication number Publication date
CN102364434B (en) 2014-04-02

Similar Documents

Publication Publication Date Title
CN102364434B (en) Method for integrating Wine and Android mouse input
CN111880870B (en) Method and device for controlling electronic equipment and electronic equipment
CN102073542B (en) Method for integrating Chinese input method during operation of Linux applications on Android mobile phone
US10572267B2 (en) Bios user interface control using mobile device
KR102481065B1 (en) Application function implementation method and electronic device
CN111049935B (en) System for remotely controlling electronic equipment and electronic equipment thereof
US20120297341A1 (en) Modified Operating Systems Allowing Mobile Devices To Accommodate IO Devices More Convenient Than Their Own Inherent IO Devices And Methods For Generating Such Systems
CN102331927A (en) Method for integrating soft keyboard input of Wine and Android mobile phone
CN103282875A (en) Multi-operating system
CN102929593B (en) The method of the compatible built-in application of a kind of android system
KR101325026B1 (en) Control method for application execution terminal based on android platform using smart-terminal, and computer-readable recording medium for the same
CN110569473A (en) Method for remotely operating linux server based on SSH protocol
WO2018086454A1 (en) Page data processing method and device
CN111078104A (en) Redirection method of multi-point touch equipment on cloud desktop and computer equipment
CN111713176B (en) Data transmission method and terminal
CN111045551A (en) Multi-screen touch system under iOS system
CN100474254C (en) Mobile telephone emulation system and method therefor
CN103412704A (en) Optimization schemes for controlling user interfaces through gesture or touch
CN101819524B (en) Access method of RFID (Radio Frequency Identification Device) reader and interface driving device thereof
CN111988382B (en) Method and system for performing application interface interaction across terminals
CN112148499A (en) Data reporting method and device, computer equipment and medium
WO2020000276A1 (en) Method and terminal for controlling shortcut button
CN113886070A (en) Device information management method, device and computer readable storage medium
CN105323615B (en) The operating method of application and processing unit for set-top box or television set
CN114666447B (en) Remote volume control method and device for physical keys, storage medium and intelligent terminal

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant