2012-05-07 3 views
2

외부 안드로이드 소스에있는 폴더에서 틀린 것이 아니라면 U-HAL (User Space Hardware Abstraction Layer)을 사용하도록 설계되었으므로 OEM은 GPL 라이센스에 따라 외부 세계에 노출 될 필요가없는 적절한 드라이버를 작성할 수 있습니다.Android "외부"폴더 기능?

Android가 발전함에 따라 에 폴더가 점점 더 많이 포함되는 것을 발견했습니다. 외부 폴더는 Google이 freetype, Yaffs2와 같은 Android 버전별로 더 많은 지원을 추가 할 수 있습니다.

Apps에 외부 폴더 논리를 사용하는 방법을 알고 싶습니다. 이것들은 공유 라이브러리 (.so)로 생성되는데, 차례로 앱이 기능을 위해 사용합니까?

나는 타당성 인이 전체 논리가 외부 폴더에 포함 할 수있는 방법을 잘 모르겠습니다이 낮은 층 (sysfs를 할 수있다)와 통신하는 방법? 외부 폴더 사용법, 기능 및 사용 방법을 설명하는 블로그 또는 문서가 있습니까?

감사합니다.

+0

를 참조? 나는 당신이 * kernel * 소스에서 뭔가를 보지 않고, 안드로이드에서 사용하도록 개발 된 외부 개발 프로젝트를 포함하는 사용자 공간 안드로이드 소스의 폴더를보고 있다고 생각한다. 이 기능은 공식적으로 SDK 및 NDK apis에 문서화 된 부분을 제외하고는 응용 프로그램에서 사용할 수 없습니다 - 일부 문서화되지 않은 부분은 권한 문제로 차단 될 수 있고 다른 항목은 실제로 작동하지만 향후 릴리스에서 변경 될 수 있습니다. 그러한 "불안정한"API에 의존하는 앱. –

+0

Chris, 안드로이드 소스 (** AOSP **)의 ** Hardware ** 폴더를 언급했습니다. Kernel이 아닌 Android 소스에서 드라이버 기능을 추상화하는 것에 대한 정보가 있으면 알려 주시기 바랍니다. –

+0

이 Android 소스 코드는 eLinux에서 참조 할 수 있습니다. http://elinux.org/Android_Source_Code_Description –

답변

5

폴더는 주로 사용자 공간 하드웨어 추상화를위한 것이 아닙니다. External은 외부 오픈 소스 라이브러리를 나타냅니다. 이는 안드로이드 플랫폼이 의존하고 있지만 안드로이드 오픈 소스 프로젝트가 주로 개발 및 유지 보수하지 않는 라이브러리를 의미합니다. 전형적인 예는 브라우저 용 웹킷, 글꼴 용 FreeType, 데이터베이스 용 SqlLite 등입니다. Android에 더 많은 기능이 추가됨에 따라 더 많은 라이브러리가 외부에 포함됩니다.

사용자 공간 하드웨어 드라이버를 넣을 장소를 찾고있는 경우 하드웨어 폴더에이 중 일부가 저장되어 있습니다. 또한 Android 하드웨어 추상화 계층 (HAL) 소스가있는 곳이기도합니다. 장치 폴더에는 일부 장치에 대한 하드웨어 특정 원본이 포함되어 있으며 이와 같은 추가 코드를 추가하기에 적합한 장소가 될 수 있습니다. AOSP의 폴더의 일반적인 레이아웃에 대한 추가 정보를 원하시면

내 대답은 정확히 폴더 to this question

+0

Great! 네, ** Hardware ** 폴더를 언급했습니다. 안드로이드가 GPL 라이센스를 그림으로 가져 오지 않고 공개 도메인에서 적절한 코드를 숨기지 않고 Android가 기본 Linux 커널과 정확히 통신하는 방법을 아는 것은 매우 흥미로운 부분입니다. ** Hardware ** 폴더와 관련하여 더 많은 정보를 제공 할 수 있습니까? 그리고 어떤 경우에 블로그 나 경험에서이 기능을 설명하는 샘플 앱을 제공 할 수 있습니까? –

+1

외부 폴더에 ALSA, YAFFS2 등의 구현이 있다는 것을 알 수 있습니다.이 파일은 GPL 라이센스를 나타 냅니까? 그렇다면 어떻게 이것을 안드로이드에 넣을 수 있을까요? –