본문 바로가기

OS

(73)
FFMPEG Android Build mkdir /var/android/ndk mkdir /var/android/ffmpeg cd /var/android/ndk wget https://dl.google.com/android/repository/android-ndk-r16-linux-x86_64.zip unzip android-ndk-r16-linux-x86_64.zip mv android-ndk-r16 ./ndk/ cd /var/android/ffmpeg wget http://ffmpeg.org/releases/ffmpeg-3.2.tar.bz2 tar xvf ffmpeg-3.2.tar.bz2 mv ffmpeg-3.2 ./android-ndk-r13/sources/ cd ndk/android-ndk-r13/sources/ffmpeg-3.2/ ..
Android ABI FFMPEG 컴파일 하다가 ABI가 헷갈려서 정리해놓으려고 한다. 제조사마다 사용할 수 있는 CPU가 다르기 때문에 응용어플리케이션이나 OS를 어디서나 실행시키기 위해선 각 아키텍처에 맞는 기계 언어가 필요하다. 이것이 ABI이다. 쉽게 말해서 그냥 CPU 전용 API라고 생각하면 될 것 같다. ABI는 크게 X86, ARM, MIPS가 있다. X86 : 인텔 CPU를 사용하는 윈도우 폰이다. 예전 윈도우 cpu들을 486, 586 이런식으로 부를 때가 있었는데 앞 자리만 바뀐다고 X86으로 불리게 되었다고 한다. 현재 윈도우 폰이 많이 없지만 무시하기엔 아쉬운 부분이 많으므로 개발할 때 고려해야 할 것으로 보인다. MIPS : 안드로이드 4.0부터는 안드로이드에서 MIPS 아키텍처를 지원하지 않기 때문..
안드로이드 인앱 결제 테스트 이번에 안드로이드 인앱 결제 테스트를 해보았고 간단하게 히스토리를 기록하려고 한다. 단어 1. 일회성 제품 : 일회성 제품은 사용자가 결제 방법으로 반복되지 않는 단일 요금을 지급함으로써 구매할 수 있는 컨텐츠. Google Play 결제 라이브러리에서는 정기 결제를 "INAPP"이라고 칭함 - 소비성 제품 : 소비성 제품은 사용자가 게임 내 컨텐츠를 받기 위해 소비하는 제품. ex) 게임 머니 - 비소비성 제품 : 비소비성 제품은 한 번 구매하면 영구적인 혜택을 제공하는 제품 ex) 프리미엄 업그레이드 2. 정기 결제 : 정기 결제는 반복적으로 컨텐츠에 대한 엑세스를 제공하는 제품. Google Play 결제 라이브러리에서는 정기 결제를 "SUBS"라고 칭함 - 정기 결제는 취소될 때까지 자동으로 갱신..
안드로이드 realtimedatabase, google login 사용하여 배포 파이어베이스를 사용하여 간단한 채팅을 만들어서 배포했는데 테스트할 때는 문제가 없더니 배포하고 나서 로그인이랑 채팅이 안되는 이슈가 생겼다. 구글링을 해보니 SHA-1 키 값을 Release 버전으로 등록해줘야 된다길래 바로 등록해주었다. SHA-1 키 값은 개발자 콘솔 앱서명 페이지에서 확인할 수 있다. release SHA-1 키를 등록하고 실행해봤지만 또 에러.. Specify DatabaseURL within FirebaseApp or from your getInstance() call. 찾아보니 파이어베이스 리얼타임데이터베이스 관련 오류이고 FirebaseDatabase.getInstance()에 url을 넣어주고 파이어베이스 설정 -> 일반 -> 공개 설정 -> 지원 이메일을 기입하면 된다.
안드로이드 MVVM 저장용 MVVM 관련해서 공부하던 중 좋은 내용이 있어서 저장용으로 포스팅한다. 1. MVVM 적용하기 blog.gangnamunni.com/post/aac_mvvm/ 2. MVVM Anti Pattern blog.gangnamunni.com/post/mvvm_anti_pattern
안드로이드 스튜디오 적응형 런처 아이콘 만들기 안드로이드에서 적응형 아이콘을 쓰라고 하길래 포스팅 해본다. 먼저 이 전에 사용하던 런처 아이콘은 제조사 마다 다르게 적용되면서 아이콘이 잘리는 문제가 있었다. 이번 적응형 아이콘은 기존 방식과는 다르게 foreground, background로 이미지를 나누어 관리를 할 수 있고, Safe Zone을 넣어 유저에게 최대한 디자인을 해치지 않고 런처 아이콘을 보여줄 수 있다. 적응형 아이콘을 만들기 위해선 안드로이드 스튜디오, foreground, background의 512px 이미지 2개가 필요하다. 안드로이드 스튜디오에서 프로젝트의 폴더를 오른쪽 클릭 -> New -> ImageAsset을 누르면 Configure Image Asset 창이 뜬다. Icon Type: Launcher icons(Ad..
centos7 Gradle Install mkdir /app/gradle cd /app/gradle wget https://services.gradle.org/distributions/gradle-5.4.1-all.zip sudo unzip -d /opt/gradle gradle-5.4.1-all.zip sudo vim /etc/profile.d/gradle.sh export GRADLE_HOME=/opt/gradle/gradle-5.4.1 export PATH=${GRADLE_HOME}/bin:${PATH} sudo chmod +x /etc/profile.d/gradle.sh sudo source /etc/profile.d/gradle.sh gradle -v -----------------------------------------------..
Centos7 Crontab php 실행안됨 아파치에서는 잘 실행이 되는 php 스크립트가 크론탭에서는 작동이 안되는 문제가 있었다. 해당 폴더에 data.txt라는 파일을 생성하는 간단한 스크립트이다. 아파치에서 실행했을 때는 data.txt 파일이 생성되는데 크론탭에서 실행했을 때는 data 파일이 생성이 안되었다. 혹시나해서 sudo tail -f /var/log/cron 명령어로 크론탭 로그를 확인했더니 에러 없이 잘 작동되더라. 그러다 크론탭 설정 파일을 뒤져보니 환경변수가 눈에 띄었고 스크립트 경로를 절대경로로 바꾸어 주었더니 제대로 작동이 되었다. 결론은 아파치에서 실행했을 때와 크론탭에서 실행했을 때의 경로가 다를 수 있다. 싱크를 맞추려면 크론탭 환경변수를 변경해야 한다!