안드로이드 개발 -aidl의 예비 이해

프로젝트를 작성하는이 일이 일이 무엇을 사용하는 방법을 명확하지 않다는 AIDL을 사용하는 것입니다 지식 포인트가 블루투스 연결 작은 티켓 프린터를 사용합니다.

뮤 수업은 교육 과정에 대해 배운에, 아마 그 중 일부를 이해합니다.

먼저 AIDL 사용 시나리오, 멀티 스레드, 멀티 클라이언트 호출, IPC는 IPC는 반드시해야 할 일을하지 않습니다. 그런 다음이 프린터 사용, 맞는 장면 멀티 클라이언트 호출 생각합니다.
그것은 더 피상적 일 수 있고, 나의 이해이다.

두 개의 서로 다른 프로세스가 예를 들어, 개발 효율성을 개발 시간을 절약하고 개선하기 위해, 기능적인 인터페이스는 응용 프로그램 B를 다중화의 번호를 사용하려면, 상호 작용을 필요로하는 AIDL은 간단하게 이해 될 수있다. 그러나 응용 프로그램 B에 직접 호출하지 않고, 몇 가지 보안 문제를 방지하기 위해 응용 프로그램 간의 이러한 보호가 있기 때문이다.
응용 프로그램 인터페이스가 노출하는 어플리케이션에 대응하는도 다중화한다 b를 따라서 AIDL는 로우 레벨 호출 애플리케이션 시스템 (B)의 애플리케이션에 의해 사용한다.
여기에서 우리는 서버, 클라이언트와 응용 프로그램으로 B를 사용합니다.

주의 할 점은, 서버와 클라이언트 패키지 이름은 일치해야합니다.

AIDL 폴더 오히려 일반 디렉토리보다 폴더를 만들 수 있습니다.

안드로이드 스튜디오 AIDL 클라이언트를 만든 후에는 호출에 대한 인터페이스 파일을 생성, 컴파일 할 필요가있다.

에서 제공하는이 작은 티켓 프린터, 수입 SDK 프린터 기술을 전화를 돌려줍니다. 폴더를 생성하고 AIDL AIDL 파일을 만듭니다.

package com.gprinter.aidl;
interface GpService{  
	int openPort(int PrinterId,int PortType,String DeviceName,int PortNumber);
	void closePort(int PrinterId);
	int getPrinterConnectStatus(int PrinterId);
	int printeTestPage(int PrinterId);   
  	void queryPrinterStatus(int PrinterId,int Timesout,int requestCode);
  	int getPrinterCommandType(int PrinterId);
	int sendEscCommand(int PrinterId, String b64);
  	int sendLabelCommand(int PrinterId, String  b64);
	void isUserExperience(boolean userExperience);
	String getClientID();
	int setServerIP(String ip, int port);
} 

AIDL 구문은 우리와 함께 공통의 인터페이스와 유사, 매우 잘 알고있다. 짧은 제외한 기본 데이터 유형을 지원합니다. 또한 유형을 사용자 정의 할 수 있습니다. 위는 방법 AIDL 문서 프린터 통화 중 일부입니다.

특정 통화 및 수 있도록 후속 마무리 해.

게시 된 139 개 원래 기사 · 원의 찬양 (35) · 전망 180 000 +

추천

출처blog.csdn.net/kanglovejava/article/details/98315843