hidl 예제

오류: 자동으로 가져올 수 없습니다 `android.hidl.base@1.0::IBase` 에서 /홈/AOSP/하드웨어/인터페이스/간단한/2.0/ISimple.hal 오류: android.hardware.simple.2.0:ISimple.hal 오류 구문 분석 수 없습니다이 데몬은 일반적으로 $PACKAGE + “- “- 서비스 접미사”(예: android.hardware.nfc@1.0-service)를 제공하지만, 어디서나 사용할 수 있습니다. 특정 클래스의 HALs에 대한 sepolicy는 hal_ 특성입니다(예: hal_nfc). 이 특성은 특정 HAL을 실행하는 데몬에 적용되어야 합니다(동일한 프로세스가 여러 HA를 제공하는 경우 여러 특성을 적용할 수 있음). 지금까지 hidl의 최고의 튜토리얼은 인터넷에 있어. 덕분에 HIDLs는 일반적으로 추상 형식/클래스로 정의된 인터페이스를 중심으로 구축됩니다. 이러한 인터페이스의 대부분은 하드웨어/인터페이스에 있습니다. 새 인터페이스를 만들거나 기존 인터페이스를 구현할지 확실하지 않습니다. AOSP 트리에서 구현의 몇 가지 예가 있습니다, 그들 중 일부는 기본 구현이며 인터페이스 정의와 동일한 경로에 위치 (예를 들어, 하드웨어 / 인터페이스 / 빛 / 2.0 / 기본값) 일부는 외부 또는 공급 업체 (예 : 외부 / wpa_ supplicant_8/wpa_supplicant/hidl/1.0). – 내가 발견 한 다른 예는 센서 구현을위한 것 같다. DAC는 출력이기 때문에 센서 API가 달성하려는 것과 호환되지 않는다고 생각합니다.

또한 전체 레거시 hal(더 이상 사용되지 않는)에서 전체 바인더화 할(4) https://source.android.com/devices/architecture/hidl-cpp/ 이르기까지 여러 기존 아키텍처가 있습니다. hidl fetch 메서드를 수행하지만 왜 이런 식으로 오는지 모르겠습니다. 어떤 제안? 나는이에 갇혀있다. HAL 구현을 만들려면 HAL을 나타내는 .hal 파일이 있어야하며 hidl-gen에서 -Lmakefile 또는 -Landroidbp를 사용하여 HAL용 메이크 파일을 이미 생성했습니다 (./하드웨어 /인터페이스 / update-makefiles.sh는 내부 HAL 파일에 대해 이 작업을 수행하고 좋은 참조)입니다. libhardware에서 HAL을 통해 전송할 때 c2hal을 사용하여 이 작업을 쉽게 수행할 수 있습니다. 서비스를 사용 하려면 간단한 클라이언트 응용 프로그램을 작성 합니다. 보통, 그것은 구글에 의해 작성 된 안 드 로이드 프레임 워크의 일부가 될 것입니다. 예를 들어, 제네릭 프레임워크가 진동기 서비스에 액세스하려는 경우: – 하드웨어를 제어하는 사용자 지정 서비스를 만드는 예제(https://elinux.org/images/f/fb/Android_Customization-_From_the_Kernel_to_the_Apps.pdf)를 찾았습니다. 장치, 그러나이 서비스 등을 시작하기 위해 안드로이드의 내부 파일 중 일부를 편집하고, 따라서 나는이 업그레이드하는 동안 지워질 것이기 때문에, 그것을하는 “Andriod Oreo”방법이 아니라고 생각합니다. hidl 모듈을 빌드하는 동안 문제가 발생합니다.

어떻게 자신에 의해 “hidl”을 합니까? 나는 새로운 하나를 크레이트 의미 ? .hal 파일이 컴파일되면 hidl-gen은 바인더 통신에 사용되는 헤더 외에 추가 통과 헤더 파일 BsFoo.h를 생성합니다. 이 헤더는 dlopened 함수를 정의합니다. 통과 HALs가 호출되는 동일한 프로세스에서 실행될 때 대부분의 경우 통과 메서드는 직접 함수 호출(동일한 스레드)에 의해 호출됩니다. oneway 메서드는 HAL이 처리될 때까지 기다리지 않기 때문에 자체 스레드에서 실행됩니다(이는 통과 모드에서 편도 메서드를 사용하는 모든 HAL이 스레드안전해야 함을 의미합니다). 기능 regsiterAsService()는 hidl-gen 도구에 의해 자동 생성됩니다 이 섹션의 페이지는 hidl-gen 컴파일러에 의해 HIDL .hal 파일에서 자동으로 생성된 파일에 대한 세부 정보를 포함하여 HIDL 인터페이스의 C++ 구현을 설명합니다. 파일은 패키지화되며 이러한 파일을 사용하는 C++ 코드와 통합하는 방법.