본문 바로가기

ANDROID

졸업프로젝트 스타트13팀 안드로이드 구현 & 학습

이전에 올렸던 내 블로그글

*졸업프로젝트 MagicBox에서 내가 한 활동들 관련 정보글을 작성함*

*1)figma로 ui짜기 2)서버 연결 제외 전체적인 MagicBox 기능 거의 완성*

csepotato.tistory.com/2

 

figma를 이용한 안드로이드 어플 UI 짜기

figma를 사용하여 설계한 졸업프로젝트 "매직박스" ui이다. ↓ 안드로이드 어플리케이션을 제작할 때, 기획단계에서 내가 항상 하는것은 바로 UI를 설계하는 것이다. "어플이 성능만 좋으면 됐지

csepotato.tistory.com

csepotato.tistory.com/3

 

새프로젝트 시작하기 + 깃허브 사용하기

이번 졸업프로젝트 스타트13팀에서 나는 안드로이드(프론트엔드)부분을 담당하기로 했다 (+ 그래픽적인 요소) 그래서 오늘부터는 현재 졸업프로젝트에서 개발하고 있는 에서 안드로이드 부분을

csepotato.tistory.com

csepotato.tistory.com/4

 

레이아웃 구성하기

드디어 레이아웃 구성에 대해 작성해보려고한다!!!! 사진자료들은 모두 졸업프로젝트에서 만들고있는 매직박스의 코드들이다. 1. 일단 레이아웃이란, 직관적으로 말하면 안드로이드 어플리케이

csepotato.tistory.com

csepotato.tistory.com/5

 

magicbox앱 코드로 이벤트 배우기

이전까지는 앱의 겉면, 레이아웃을 만드는 방법을 배워보았다. 오늘은 실제로 앱의 작동부분을 어떻게 짜야하는지를 작성해보고자 한다. 일단 magicbox의 구성은 간단하다. 1)로그인 2)회원가입 3)

csepotato.tistory.com

+안드로이드 관련 자료조사한 내용

여기서부터는 구현된 내용은 아니고(1번 제외) 방학때 진행하고자 미리 자료조사하고 공부한 내용들이다!

 

1.MagicBox 촬영기능

안드로이드 촬영기능을 구현해주는 여러가지 방식중에 가장 심플한 촬영기능 구현방식을 찾아보았다. 구글링을 해보니 android developer에 친절하게 설명이 나와있었다! 커스텀 촬영기능을 만들수도있지만, 일단은 그냥 사용자 핸드폰에 깔린 카메라에 액세스해서 사용할 수 있게하는 기본촬영기능으로 구현하기로했다. 구현방식 조사는 내가했지만 시간이없어서 이정윤님이 대신 구현해주셨다!

참고한 사이트이다

developer.android.com/training/camera/videobasics?hl=ko

 

동영상 녹화  |  Android 개발자  |  Android Developers

이 과정에서는 기존 카메라 애플리케이션을 사용하여 동영상을 캡처하는 방법에 관해 설명합니다. 애플리케이션은 해야 할 작업이 있고 동영상을 통합하는 것은 애플리케이션의 작은 부분일

developer.android.com

간단하게 코드를 설명하자면 : 1)카메라 기능 요청 2)카메라 앱에게 작업 위임하기

 

1)안드로이드 스튜디오의 manifest파일에 해당 코드를 추가한다. 앱을 처음 구동할때 액세스 허용 요청하는 적이 꽤 있었을텐데, 바로 그 기능을 구현한거다.

<manifest ... >
        <uses-feature android:name="android.hardware.camera"
                      android:required="true" />
        ...
    </manifest>

2)실제로 카메라앱으로 넘어가기위한 코드이다. 버튼누르면 밑에서 팝업뜨면서 사용할 앱 선택하라는 많이보던 그 선택지가 뜬다.

static final int REQUEST_VIDEO_CAPTURE = 1;

    private void dispatchTakeVideoIntent() {
        Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
        }
    }

 

2.서버와의 연결법

django rest framwork하고 안드로이드 연결을 해야해서 하는 방법을 찾아보았다. 

참고한 사이트이다

duzi077.tistory.com/129?category=703147

 

[Django] Django REST Framework ( DRF ) 와 안드로이드 연동하기 - 2

지난 시간에 이어 안드로이드에서 REST를 받을 수 있는 라이브러리와 적용방법에 대해서 알아보겠습니다. Django 서버를 외부에서 접속하려면 0.0.0.0 으로 서버를 실행해야합니다. 그리고 접속허용

duzi077.tistory.com

위 사이트에서 안드로이드쪽에서 수행해야할 작업은 7번부터이다. 진행방식을 설명하자면:

1)rest api를 손쉽게 이용할 수 있도록 retrofit라는 라이브러리를 링킹

        A. gradle 파일에 코드 추가하기(retrofit lib쓰겠다고 코드 작성하는 것임)

        B. 네트워크 관련 코드작성

                 - application controller 클래스 만들기

                 - manifest 파일에 인터넷 사용 허가받기 위해 코드추가

2)call 인터페이스 만들기

        networkservice.java를 만들어서 넣으면 된다. 코드는 위 사이트에 있다.(복사붙여넣기가 안되서 언지만 하겠다)

3)실제결과테스트해보기

 

3.촬영data를 핸드폰에 저장하지 않고 바로 서버로 올리는 방법 research

github.com/aminyazdanpanah/python-ffmpeg-video-streaming

 

aminyazdanpanah/python-ffmpeg-video-streaming

📼 Package media content for online streaming(DASH and HLS) using FFmpeg - aminyazdanpanah/python-ffmpeg-video-streaming

github.com

stackoverflow.com/questions/43037267/how-to-set-androids-camera-as-the-input-of-ffmpeg

 

how to set android's camera as the input of ffmpeg

I managed to run ffmpeg in Android Studio project, but don't know how to set the Android's camera as the input of ffmpeg. Is it possible now? If not, is there some open-sourced projects that can ...

stackoverflow.com

이왕이면 핸드폰에 영상이 저장되지않고 바로 서버로 올리는게 용량면에서 좋을거같아서 구글링을 하며 방법을 미친듣이 강구해봤다. 그래서 찾아낸게 서버로 라이브 스트리밍을 하고 해당 라이브 스티리밍 파일을 mp4로 변환하여 서버에 저장하는 방식이다. 사실 이렇게 하면 핸드폰에 저장이 안되는건지 확신이 없어서 해봐야알거같긴하다. + 서버작업이 80퍼라서 나혼자 시도해볼 수도 없다(하정님 담당이 서버라서) 

위의 첫번째 링크는 서버와 기기 간에 라이브스트리밍 방법에 적혀있는 깃허브이고,

두번째 링크는 첫번째 링크에서 라이브스트리밍하는 카메라로 웹캠밖에 예시가 없어서 첫번째 링크에서 사용하는 ffmpeg라는 것(이게 라이브스트리밍을 할 수 있게 하는 기술인거같다)에서 라이브스트리밍 input으로 안드로이드 카메라를 사용하는 방법이 적혀있어서 가져왔다.

이부분은 일단 기본 카메라로 촬영하고 그걸 서버로 넘기는 기본방식에 성공할 경우 나중에 추가적인 개선을 위해서 구현해볼 예정이다.

 

4.간단한 서버 스터디 및 딥러닝 스터디

밑에 두 링크는 내가 이번 졸업프로젝트를 위해서 간단하게나마 공부하고 있는 것들이다. 서버나 딥러닝 부분도 기초지식은 있어야 서로간에 커뮤니케이션이 가능할듯하여 그렇게했다.

www.youtube.com/playlist?list=PL1Kb3QTCLIVtyOuMgyVgT-OeW0PYXl3j5

 

딥러닝기반영상분석 (cs231n)

cs231n 강의를 우리말로 설명한 동영상

www.youtube.com

www.youtube.com/watch?v=LYmZB5IIwAI

 

 

5.그외 문서제출등을 위한 자료조사

bottlecok.tistory.com/100

 

[안드로이드/Android] apk 파일 생성하는 방법

[안드로이드/Android] apk 파일 생성하는 방법 안녕하세요. 맛집공유와 IT관련글을 포스팅하는 용병콕입니다. 오늘은 안드로이드 스튜디오에서 apk 파일을 생성하는 방법을 포스팅하려해요. 앱을 만

bottlecok.tistory.com