1. 개요 안드로이드 개발 보드에 AOSP를 커스텀 컴파일하여 안드로이드 운영체제를 새로 설치하는 과정을 반복 진행하며, 안드로이드 초기 셋팅 시스템 설정 값을 변경하여 테스트 시작에 필요한 기본 설정 시간을 줄여 시간 효율을 높이는 작업의 필요성을 느꼈습니다. 여러 가지 셋팅 변경 중에 Screen Off Timeout 시간을 조정하는 것을 이번 포스팅의 목표로 합니다. 설정 > 디스플레이 > 화면 자동 꺼짐 시간 의 초기 설정 값이 변경됩니다. 작업 환경은 안드로이드 빌드 버전으로 Android 9 Pie이며, AOSP를 빌드하기 위한 PC의 운영체제는 Ubuntu 16.04 LTS입니다. 2. AOSP의 시스템 설정 값 안드로이드의 시스템 설정 값이 저장되어 있는 파일은 아래의 두 파일에 저장이 되..
1. 개요 안드로이드 개인 프로젝트를 진행 도중 난수 생성이 필요하여 정리를 합니다. 최근 안드로이드 개발은 코틀린을 사용하는 것이 대세인 듯합니다. 하지만 저는 프로젝트를 빠르게 진행하기 위해 저에겐 조금 더 익숙한 Java를 사용하여 안드로이드 프로젝트를 진행하고 있습니다. 각설하고, 안드로이드에 내장된 Java에서 난수 생성을 하는 방법은 2가지 방법이 있습니다. Java.lang.Math 클래스를 사용하는 방법과 Java.util.Random 클래스를 사용하는 방법입니다. 두 방법에 사용법에 대하여 알아보고, 차이점에 대해서도 정리해 보도록 하겠습니다. *이번 글에서 사용한 예제는 0부터 9까지 숫자에서 랜덤 하게 정수를 생성하는 방법을 다룹니다. 2. Math class를 이용한 난수 생성 Ma..
1. 개요 안드로이드 환경의 개발보드에서 PTZ 기능이 있는 CCTV를 컨트롤할 필요성이 느껴져서 CCTV API를 살펴보니 CGI를 이용하여 PTZ기능 및 CCTV의 여러 가지 기능을 사용 가능했습니다. CCTV를 컨트롤 할 수 있는 CGI 커맨드가 정리된 Doc파일을 갖고 있다면 이 예제를 통하여 CCTV기능을 컨트롤 가능할 것입니다. 물론 CCTV 뿐만 아니라 CGI 기능을 지원하는 서버의 기능을 이용 가능합니다. 2. CGI? CGI는 공용 게이트웨이 인터페이스(Common Gateway Interface)의 약자입니다. 웹 서버 등에서 클라이언트가 사용자 프로그램을 호출하는 조합을 가리키는데, 플랫폼에 의존하지 않는 인터페이스입니다. 이번 포스팅에서는 CCTV가 서버 쪽이고, CCTV 내부의 기..
1. 개요 안드로이드 개발보드에 AOPS를 이용하여 커스텀 컴파일하여 안드로이드 운영체제를 설치하는 과정에서 개발보드에 USB to Ethernet 랜카드의 아이피 주소를 고정 아이피로 설정해야 하는 문제가 생겼습니다. adb shell에서 ifconfig 커맨드로 확인되는 USB to Ethernet 랜카드는 이름은 다행히 eth0로 고정된 상황이고, 부팅 후에 ifconfig를 이용하여 고정아이피 설정이 가능한 상태입니다. adb를 이용하지 않고 안드로이드에 기본 설치된 Setting apk는 wifi 이외의 연결된 Ethernet에 대하여 설정이 불가능 하였고, adb shell 접속시에도 su 권한을 얻어야 ifconfig를 통하여 고정 아이피 설정이 가능한 상황이었습니다. 이 포스팅에서는 아래의..
1. 자동실행 프로젝트 진행 도중 부팅 시 자동으로 앱을 실행시켜 주어야 하는 기능이 필요했습니다. Linux 환경에서는 crontab에 등록하여 부팅 시 특정 응용프로그램이 자동 실행이 가능했습니다. 안드로이드에서는 AndroidManifest.xml 파일에 퍼미션 등록 이후 BroadcastReceiver를 이용하면 간단하게 apk파일 자체에 부팅 후 자동 실행이 되는 앱으로 등록이 가능합니다. 카카오톡과 같이 부팅 시 서비스로 실행이 자동으로 되어 백그라운드로 작동하는 것이 아닌 어플리케이션 자체의 자동 실행을 목표로 포스팅을 하였습니다. 2. AndroidManifest.xml 등록 위의 두 코드를 AndroidManifeat.xml 파일에 넣어주면 됩니다. receiver 속의 android:n..
1. 개요 프로젝트 진행 도중 안드로이드 환경의 개발보드에서 기타 하드웨어와의 USB시리얼 통신이 필요하게 되었습니다. 현제 안드로이드 환경에서의 프로젝트 진행중 su 권한 설정과 관련해 많은 어려움을 겪고 있던 도중이라 어플리케이션 자체에서 su 권한 없이 USB시리얼 통신이 가능한 예제가 필요하였습니다. 구글에서 시리얼 통신에 관하여 여러가지 예제를 검색하여 동작이 잘 되는 예제 2가지를 발견, 저와 같은 문제를 겪고 있으신 분들을 위하여 포스팅을 하게 되었습니다. 2. 시리얼 통신?? 간단히 말해 시리얼 통신은 직렬 통신입니다. 하나의 기기가 다른 기기와 데이터 통신을 하기 위하여 한 개 이상의 테이터 통신선이 필요한 통신이며, 동기 시리얼 통신과 비동기 시리얼 통신으로 나뉩니다. 저는 이 프로젝트..
1. 안드로이드에서 FFMPEG 사용을 위한 작업환경 - 윈도우 10 or Ubuntu - 안드로이드 스튜디오(이 포스팅에서는 CMAKE를 이용한 NDK Build 환경) - NDK환경에서 빌드된 FFMPEG so 파일들(FFMPEG version에 따라 다르게 나올 수 있다.) libavcodec-57.so libavfilter-6.so libavformat-57.so libavutil-55.so libavpostproc-54.so libswresample-2.so libswscale-4.so etc.... FFMPEG NDK Build의 경우 따로 다룰 예정입니다. - FFMPEG 헤더파일 (.h) - armeabi-v7a ABI 2. FFMPEG 라이브러리와 헤더파일 넣기 - 안드로이드를 프로젝트 ..