03 Mar 2019
|
Android
apk를 빌드할 때 모든 CPU 타입이 아닌, 원하는 타입에 대한 바이너리만 빌드할 수 있게 해주는 build.gradle
설정입니다.
전체 apk 용량도 줄어들기 떄문에 빌드 및 설치 시간도 단축이 됩니다.
build.gradle
프로젝트가 아닌 모듈의 build.gradle
파일 설정입니다.
android {
...
splits {
abi {
enable true
reset()
include "arm64-v8a", "armeabi-v7a"
universalApk false
}
}
}
02 Mar 2019
|
리눅스
apt 목록 제거
여러 프로그램들을 설치하다보면 apt update
목록에 원하지도 않는 목록들이 추가되서 너덜너덜해지는 경우가 생깁니다. 그 중에 어떤 목록은 더 이상 유효하지 않아서 지우고 싶은 경우도 생기구요.
/etc/apt
위치에 가면 해당 서버들의 리스트를 가져올 수 있습니다.
01 Mar 2019
|
리눅스
gRPC 설치 방법
Ubuntu 18.04 기준 C++용 gRPC 설치 방법입니다. 다른 언어에 비해 설치 방법이 조금 더 까다롭습니다.
필요 패키지 설치
sudo apt-get install build-essential autoconf libtool pkg-config
sudo apt-get install libgflags-dev libgtest-dev
sudo apt-get install clang-5.0 libc++-dev
sudo apt-get install libunwind-dev
sudo apt-get install golang
CMake 업데이트
오래된 버전의 cmake
명령어로는 gRPC 설치가 완벽하게 되지 않을 수 있습니다. 특히, /usr/local/lib/cmake/grpc/gRPCTargets.cmake
파일이 생성되지 않아서 혼이 난 적이 있습니다.
여기에서 cmake
를 최신 버전으로 설치합시다.
tar -zxvf cmake-3.16.5.tar.gz
cd cmake-3.16.5
./bootstrap
make -j 8
sudo make install
gRPC 소스 다운로드
git clone -b $(curl -L http://grpc.io/release) https://github.com/grpc/grpc
cd grpc/
git submodule update --init
mkdir -p cmake/build
cd cmake/build
cmake ../..
make -j 8
sudo make install
참고
- https://github.com/grpc/grpc/blob/master/src/cpp/README.md#make
- https://github.com/grpc/grpc/blob/master/BUILDING.md
27 Feb 2019
|
Android
Java에서 enum
으로 정의한 값을 문자열로 변경하는 방법은 여러가지가 있습니다.
toString 메소드를 오버라이딩
public enum LogLevel {
VERB {
@Override
public String toString() {
return "Verbose";
}
},
INFO {
@Override
public String toString() {
return "Info";
}
},
DEBUG {
@Override
public String toString() {
return "Debug";
}
},
WARN {
@Override
public String toString() {
return "Warning";
}
},
ERROR {
@Override
public String toString() {
return "Error";
}
}
}
public static void main(String[] args) {
System.out.println(LogLevel.INFO);
}
name 메소드 사용하는 방법
public enum LogLevel {
VERB,
INFO,
DEBUG,
WARN,
ERROR,
}
public static void main(String[] args) {
System.out.println(LogLevel.INFO.name());
}
반대로 문자열을 이용해서 Enum을 생성하는 방법
public enum LogLevel {
VERB,
INFO,
DEBUG,
WARN,
ERROR,
}
public static void main(String[] args) {
LogLevel ll = Enum.valueOf(LogLevel.class, "ERROR")
System.out.println(ll.name());
}
16 Feb 2019
|
ROS
ROS 2.0 Crystal 버전부터는 Ubuntu의 apt install
명령어를 이용해서 더욱 더 간편하게 설치할 수 있게 되었습니다.
다음 포스팅은 Ubuntu 18.04 기준이며, 포맷 후 처음 설치하는 과정입니다.
Locale 설정
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
GPG Key 설치
sudo apt update && sudo apt install curl gnupg2 lsb-release
curl http://repo.ros2.org/repos.key | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 0xB01FA116
sudo apt-get update
sudo apt-get install python3-vcstool
기본 컴포넌트 설치
sudo apt update && sudo apt install -y \
build-essential \
cmake \
git \
python3-colcon-common-extensions \
python3-pip \
wget
sudo apt install -y libpython3-dev
python3 -m pip install -U \
argcomplete \
flake8 \
flake8-blind-except \
flake8-builtins \
flake8-class-newline \
flake8-comprehensions \
flake8-deprecated \
flake8-docstrings \
flake8-import-order \
flake8-quotes \
git+https://github.com/lark-parser/lark.git@0.7d \
pytest-repeat \
pytest-rerunfailures \
pytest \
pytest-cov \
pytest-runner \
setuptools
sudo apt install --no-install-recommends -y \
libasio-dev \
libtinyxml2-dev
ROS 2 패키지 설치
export CHOOSE_ROS_DISTRO=crystal # or bouncy or ardent
sudo apt update
sudo apt install ros-$CHOOSE_ROS_DISTRO-desktop
sudo apt install ros-$CHOOSE_ROS_DISTRO-ros-base
그리고 ROS2 실행 환경을 만들려면
source /opt/ros/$CHOOSE_ROS_DISTRO/setup.bash
와 같은 명령어를 실행하면 되며, .bashrc
등에 위 명령어를 추가할 수도 있습니다.
OpenSplice 및 RTI Connext 설치
옵션입니다. ROS2는 기본적으로 fast-rtps
를 사용하기 때문에 OpenSplice나 RTI Connext는 추가적으로 설치할 필요는 없습니다. 하지만 경고 메시지 등이 거슬려서 설치를 할 경우에는 아래와 같은 명령어를 이용해서 설치할 수 있습니다.
sudo apt update
sudo apt install ros-$ROS_DISTRO-rmw-opensplice-cpp # for OpenSplice
sudo apt install ros-$ROS_DISTRO-rmw-connext-cpp # for RTI Connext (requires license agreement)