| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- layouts
- 디스크 축소
- intents
- 멀티프로세싱
- 프레임버퍼
- 젠킨스
- interrupt context
- 디스크립터
- memcmp
- sprintf
- 환경 변수
- pagefile.sys
- gparted
- 속도저하
- HDR
- 소캣
- makefile
- fprintf
- fscanf
- context
- Shared Folder
- sscanf
- ubuntu
- usb2.0
- jenkins
- interrupt handler
- context switch
- DMA
- 문자형 디바이스 파일
- activities
- Today
- Total
목록분류 전체보기 (78)
do{학습}while
AOSP 관련 용어Android 1p app developerAOSP 시스템 API에 접근 가능하며, 권한 있는 앱(privileged app), 기기 제조업체 앱(device manufecturer app) 즉 android 써드 파티 앱 개발자보다 높은 권한을 가지고 앱을 개발할 수 있는 개발자를 의미합니다.Android 3p app developer안드로이드의 공개 SDK(android API)만을 사용하여 안드로이드 앱을 개발하는 개발자이다.adb(android debug bridge)CLI 환경에서 워크스테이션과 에뮬레이터 상의 기기 또는 실제 기기와 통신할 수 있는 도구이다.Android-compatoble device호환이 되는 안드로이드 기기란 안드로이드 SDK 또는 NDK를 활용하는 서..
이전에 윈도우 환경에서 가상머신 내 리눅스 환경에서 AOSP 소스를 빌드를 시도하였습니다. 컴퓨터 자원적으로 부족하지 않은 상황(RAM: 64GB, 14코어)에서 빌드함에도 불구하고 메모리 사용량이 높아져 빌드 도중 시스템이 멈추는 현상이 발생한적이 있습니다. 그래서 효율적으로 빌드를 하고 싶어 컴퓨터에 리눅스를 설치하여 빌드하기로 하였습니다. 윈도우를 지우는 것은 아까워 듀얼 부팅을 하기로 하였습니다. 듀얼 부팅이란?듀얼 부팅(Dual Booting)은 하나의 컴퓨터에 두 개 이상의 운영 체제를 설치하여, 부팅 시에 사용자가 어떤 운영 체제를 사용할지 선택할 수 있는 구성을 말합니다. 듀얼 부팅 설정 방법듀얼 부팅를 하기 위해서는 둘 중 하나의 운영체제는 이미 깔려있어야 합니다.1. 디스크 파티션 ..
AOSP를 개발을 하기 이전 안드로이드 애플리케이션의 핵심 구조와 동작 방식을 결정한다는 Activities, Intents, layouts, Anrdoid app lifecycle 개념들을 우선적으로 공부하려고 합니다. 각 개념들이 무엇인지 어떤 역활을 하는지 알아 보도록 하겠습니다.Activityactivity는 안드로이드 애플리케이션의 주요 사용자 인터페이스 요소를 담당하는 요소입니다. Activity를 이루는 구성요소activity는 클래스 파일(Java, Kotlin)과 XML 파일로 구성되어 있습니다.XMLXML 파일 내에서 UI 요소를 정의할 수 있습니다. 예를 들어 버튼, 텍스트뷰, 이미지를 생성하고 각 UI 컴포넌트의 세부 요소들을 정의할 수 있습니다.클래스 파일(Java, Kotlin)..
대부분 안드로이드 개발 공부를 시작한다고 하면 모바일 애플리케이션을 떠오릴 것이고 물론 나도 그렇게 생각하였다. 그리고 막상 공부를 하려고 해도 AOSP 공식 문서 외에는 제대로된 정보가 없어 보였고 AOSP 관련 블로그에서는 어떻게 개발을 시작해야할지 로드맵 정도만 알려주었다. 그래서 이빨이 없으면 잇몸으로라도 공부해겠다라고 생각하여 몇몇 개발 블로그에서 제공하는 로드맵에서 공통적으로 요구하는 사항들을 살펴보고 공부해 나갈 계획이다. 우선 AOSP가 제대로 무엇인지 어떤 것을 공부해야할지 알아보겠다.AOSP란?AOSP(Android Open Source Project)는 구글에서 진행하는 오프소스 프로젝트로 프로젝트의 소스코드로 원하는 기능을 넣어 개발 배포 관리를 함으로써 ROM(커스텀 안드로이드 운..
std::list이중 연결 리스트(doubly linked list)를 구현한 컨테이너입니다. 각 요소는 두 개의 포인터(하나는 이전 요소를 가리키고 다른 하나는 다음 요소를 가리킴)를 포함하는 노드에 저장 헤더파일#include선언list [변수 명];//요소의 데이터 타입을 명시해주지 않는다면 컴파일 에러가 발생합니다.생성자list lt; //비어있는 list를 lt로 명명list lt(10); //원소 10개를 생성하여 lt로 명명list lt(3,2) //값 2로 초기화한 원소 3개를 생성하여 lt로 명명list lt1;list lt2(lt1); //리스트 lt1의 값을 lt2에 복사하여 생성연산자list lt1 = {1,2,3};list lt2 = {1,2,3};//==, !=, >, =, = ..
소캣(Socket) 통신이란네트워크 상에서 두개의 노드가 서로 통신하기 위해 연결하는 방식입니다. 클라이언트 노드가 또 서버 노드와 연결되어 있는 동안, 서버 노드는 IP의 특정 포트에서 수신합니다.소캣 통신 흐름도클라이언트단 주요 함수클라이언트단에서 서버와 데이터를 주고 받기 전 설정을 하기 위한 함수가 존재합니다. socket(), connect()함수가 존재합니다. 연결 설정을 마치고 데이터를 주고 받기 위해 write(), read()함수가 있습니다.각각의 함수들의 시그니쳐를 살펴보면서 용도와 전달되어야하는 인자를 살펴보겠습니다.socket()extern int socket (int __domain, int __type, int __protocol) __THROW;용도소캣을 생성하는 함수파라미터_..
기능 요약malloc과 같은 역활은 하지만 파라미터의 구성이 다르다. 할당할 메모리 사이즈 = elt_count(첫번째 인자) * elt_size(두번째 인자)헤더파일#include원형void * calloc(size_t elt_count, size_t elt_size);반환값동적 할당한 메모리 주소를 반환주의 사항예시 코드#includeint main(){ int *ptr = (int*)calloc(5, sizeof(int));// 20바이트 동적 할당 return 0;}
기능 요약동적할당한 메모리를 크기를 조절하여 동적할당하는 함수헤더파일#include원형void* realloc(void* ptr, size_t size);반환값동적 할당한 메모리 공간의 시작 주소를 반환 할당 실패 시 NULL 반환 주의 사항만약 할당한 부분 이외에 값을 대입하면 정의되지 않은 동작이 발생할 수 있습니다!예시 코드#include#include#includeint main(){ int *num = (int *)malloc(sizeof(int)); printf("%p\n",num); num = realloc(num, sizeof(2*sizeof(int))); printf("%p\n", num);}
기능 요약두 문자열을 합치는 함수헤더파일#include // C++ 에서는 원형char* strcat(char* destination, const char* source);반환값destination + source 두 문자열을 합친 문자열을 반환주의 사항예시 코드#include #include int main() { char str[80]; strcpy(str, "these "); strcat(str, "strings "); strcat(str, "are "); strcat(str, "concatenated."); puts(str); return 0;}
기능 요약str1에 str2 문자열이 존재하는지 찾는 함수헤더파일#include // C++ 에서는 원형const char* strstr(const char* str1, const char* str2);char* strstr(char* str1, const char* str2);반환값str1 문자열에서 str2 문자열을 검색하고 만약 일치하는 문자열이 존재한다면 해당 문자열이 위치한 str1의 주소값을 반환합니다. 일치하는 문자열이 없다면 NULL을 반환합니다.주의 사항예시 코드#include #include int main() { char str[] = "This is a simple string"; char* pch; pch = strstr(str, "simple"); strncpy(pc..