HOME / CATALOG / 임베디드 & 모바일
임베디드 & 모바일

인사이드 안드로이드 OS

안드로이드 시스템 서비스의 빌드, 커스터마이징, 관리 및 운영
지은이 블레이크 마이크, 래리 쉬퍼
옮긴이 류진훈
도서 정보
출간일
2022년 2월 24일
쪽수
348쪽
판형
188*240*18mm
ISBN
9791158393151
시리즈
임베디드 & 모바일 시리즈_041
정가
28,000원
난이도
도서 소개
저자 소개
역자 소개
목차
예제 코드

도서 소개

최신 IoT 및 임베디드 디바이스용 안드로이드 커스터마이징 완벽 가이드!

《인사이드 안드로이드 OS》는 임베디드 디바이스에 안드로이드를 커스터마이징 및 통합하고, 성공적인 안드로이드 기반 제품을 제작 혹은 운영하고자 하는 전문 기술자를 위한 종합 안내서이자 참고서다. 예제 코드가 풍부하게 제공되어 이 책을 보는 독자들은 개인적인 통찰력을 위해서든, 폭발적으로 성장하는 스마트 IoT 디바이스 시장을 위한 전문 프로젝트를 위해서든 자신만의 코드를 생성할 수 있다는 자신감을 갖게 될 것이다.

안드로이드 개발 전문가인 블레이크 마이크와 래리 쉬퍼는 안드로이드에 입문하고자 하는 임베디드 및 IoT 개발자의 현실적인 요구에 부응해 이 책을 썼다. 저자들은 먼저 가용한 안드로이드 환경을 소개하고, 서브시스템 초기화, 하드웨어 인터페이스, 그리고 애플리케이션 지원을 설명함으로써 모호함이나 지나치게 전문적인 내용을 배제하고 독자에게 핵심 지식을 전달한다.

★ 이 책에서 다루는 내용 ★

  • 스마트 IoT 디바이스에 안드로이드를 사용할 경우의 여러 가지 장단점 평가
  • 실용적인 안드로이드 커스터마이징 절차 숙지
  • 빌드 플랫폼 구축, AOSP 소스 다운로드, 안드로이드 이미지 빌드
  • 안드로이드 컴포넌트, 아키텍처, 소스코드, 개발 툴 탐색
  • 안드로이드 특유의 커널 모듈 이해
  • 디바이스와 사용자를 보호하기 위한 안드로이드의 광범위한 보안 인프라 활용
  • 전원 인가부터 시스템 초기화까지, 안드로이드 부트 설명
  • 서브시스템 초기화 및 애플리케이션 프로세스를 제어하기 위한 Zygote 컨테이너 활용
  • 안드로이드 하드웨어 추상화 계층(HAL)을 통한 하드웨어 인터페이스
  • 자바 네이티브 인터페이스(JNI)를 통한 자바 프로그램에 대한 접근
  • 바인더화된 HAL(프로젝트 트레블)을 활용한 새로운 유연성 확보
  • 제조사 라이브러리를 기본 제공할 필요 없는 네이티브 C/C++ 혹은 자바 클라이언트 앱 구현

저자 소개

블레이크 마이크 (Blake Meike)

블레이크 마이크는 D2, Realm, Cyanogen을 포함한 기관에서 10년 이상 안드로이드 개발자로 일한 열정이 넘치는 엔지니어이며, 코드 시인이며, 베테랑이다. 강사로서 그는 수백 명의 초보 안드로이드 개발자를 교육했다. 그는 O’Reilly 사의 베스트 셀러인 《Programming Android》 및 Addison-Wesley 사의 《Android Concurrency》를 포함한 다수 서적의 저자다. 그는 다트머스(Dartmouth) 대학에서 수학과 컴퓨터 과학 학위를 취득했으며, 퍼시픽 노스웨스트에 살고 있다.

래리 쉬퍼 (Larry Schiefer)

래리 쉬퍼는 모바일 플랫폼 및 앱 엔지니어링 서비스 기업인 HIQES, LLC의 CTO이자 공동 창업자다. 그는 모바일, 임베디드 및 데스크톱 시스템용 소프트웨어를 개발하여 경력을 쌓았으며 인텔, 퀄컴, 보스 그리고 기타 기업에서 안드로이드 내부 동작에 관련된 교육을 진행하며 세계를 누볐다. 기업가이자 기술 리더인 동시에 여전히 새로운 소프트웨어와 플랫폼 솔루션에 관심을 두고 있다.

역자 소개

류진훈

15년간 스마트폰 제조사에서 안드로이드 등 모바일 플랫폼 및 소프트웨어 프레임워크 개발팀을 이끌었다. 현재는 초음속 전투기의 비행 제어 컴퓨터용 실시간 운영체제를 개발하는 일을 하고 있다. Safety Critical Hard Realtime 속성을 갖는 임베디드 시스템 설계뿐만 아니라 딥러닝을 이용한 비행체의 자동 충돌 회피 등 항공기의 스마트 지능화 분야도 관심 연구 분야다.

목차

  • ▣ 01장: 왜 안드로이드인가?
    • 안드로이드 채택하기
      • 풀스택(Full Stack) 제공
      • 폭넓은 수용성
      • 미려한 사용자 인터페이스
      • 리눅스 기반
      • 막강한 개발 환경
      • 오픈 소스
    • AOSP와 구글
    • 다른 선택지
      • 마이크로 컨트롤러
      • 기타 RTOS
    • 요약
    •  
  • ▣ 02장: Acme 부팅하기
    • 빌드 머신 구축하기
    • 소스 코드 다운로드하기
    • Repo
    • 소스 포크하기
      • 안드로이드 버전 선택하기
      • 로컬 미러
      • 호스팅 서비스 Git 저장소
      • 트리 스냅숏
    • 저장소 커밋 고정하기
    • 예: 포크된 저장소를 위한 로컬 미러
    • 이미지 빌드하기
    • 디바이스 툴
      • fastboot
      • adb
    • 디바이스 플래싱하기
    • 요약
    •  
  • ▣ 03장: 시작하기
    • 안드로이드 계층 배치
      • 하드웨어
      • 리눅스 커널
      • 시스템 라이브러리
      • 애플리케이션
      • 안드로이드 프레임워크
    • 안드로이드 서비스 모델
    • 소스 탐험하기
      • 다른 소스들
      • 박스에 뭐가 들어 있나?
    • 요약
    •  
  • ▣ 04장: 커널
    • 리눅스 커널
      • 커널 프로세스 관리
      • 커널 메모리 관리
    • 안드로이드 커널
      • 안드로이드 커널 기능
    • 커널 빌드하기
      • 빌드 시스템
      • 소스 다운로드하기
    • 요약
    •  
  • ▣ 05장: 플랫폼 보안
    • 보안의 종류
    • 자체 검사 부팅 (Verified Boot)
    • 운영 보안
      • 안드로이드 소프트웨어 계층
      • 프로세스 샌드박스
      • 안드로이드용 SE 리눅스
      • SE 정책 정의
      • 안드로이드 권한
      • 파일 시스템
    • 사용자 보호
    • 권한 커스터마이징
      • 사용자 정의 권한에 의해 보호받는 샘플 앱
      • 사용자 정의 권한을 사용하는 샘플 클라이언트 앱
    • 요약
    •  
  • ▣ 06장: 시스템 초기화: 시스템 설치와 부팅
    • 부팅 절차
      • 부트로더
      • Fastboot
      • 커널
      • 파일 시스템
      • init
    • 복구
    • 데몬 빌드하기
    • Acme 디바이스 생성하기
    • Repo 다시 살펴보기
      • 데몬 시작하기
    • 요약
    •  
  • ▣ 07장: 안드로이드의 시작: Dalvik과 Zygote
    • Dalvik
    • ART
      • 기본 ART
      • 하이브리드 ART
    • Zygote
      • Zygote 메모리 관리
      • Zygote 시작
      • 런타임 초기화
      • 시스템 서비스 시작
    • 요약
    • 인용
    •  
  • ▣ 08장: 안드로이드와 통신하기: HAL
    • 왜 HAL인가?
    • HAL이 필요한가?
    • HAL 설계하기
    • HAL 빌드하기
      • 코드 구조
      • HAL 구현하기
    • 요약
    •  
  • ▣ 09장: 자바와 통신하기: JNI
    • 코드 구조
    • 하드웨어 사용하기
    • HAL 사용하기
    • 자바 네이티브 인터페이스 사용하기
      • 네이티브 코드 실행하기
      • JNI: 자바 측면
      • JNI: 네이티브 측면
      • 자바 근접 센서 애플리케이션
      • JNI: 몇 가지 팁
    • 요약
    •  
  • ▣ 10장: 프로젝트 트레블: 바인더화된 HAL
    • HIDL 아키텍처
      • hwservicemanager
      • HIDL 서비스
      • HIDL 클라이언트 서비스
    • 하드웨어 인터페이스 정의 언어 (HIDL)
      • HIDL 타입
    • HIDL 서비스
    • HIDL 클라이언트
    • 요약
    •  
  • ▣ 11장: 바인더화된 HAL 만들기
    • Acme 커스텀 HIDL
    • 요약
    •  
  • ▣ 12장: 바인더화된 HAL의 클라이언트
    • 네이티브 C++ Aproximity 클라이언트
      • aproximitycl을 위한 안드로이드 SE 리눅스 수정 항목
      • Aproximitycl을 Acme로 빌드하기
    • 자바/코틀린 Aproximity 클라이언트
      • AproximityClient를 위한 안드로이드 SE 리눅스 수정
      • Acme 플랫폼에 AproximityClient 빌드하기
    • 요약
    •  
  • ▣ 부록
    • A. Khadas VIM3 하드웨어 소개
    • B. 안드로이드 9.0 포크 소스
      • 소스 다운로드
      • 이미지 빌드
      • 이미지 플래싱
    • C. 안드로이드 11.0 정규 AOSP 소스
      • 소스 다운로드
      • 이미지 빌드
      • 이미지 플래싱
WHERE TO BUY · 정가 28,000원
WHERE TO BUY · 정가 28,000원