Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

모바일앱프로그래밍 최종 프로젝트

원격 파일 관리 어플리케이션

이 프로젝트는 원격으로 안드로이드 기기 파일에 접근할 수 있는 웹, 하이브리드앱이다.

  • pc는 웹을 통해 접속할 수 있고, 안드로이드 기기는 안드로이드앱으로 실행을 할 수 있다.
  • 만약 pc와 안드로이드 기기가 통신을 한다면 pc에서만 안드로이드 파일에 접근할 수 있다.
  • 안드로이드와 안드로이드가 통신을 한다면 서로의 파일에 접근할 수 있다.

개발

안드로이드 앱

안드로이드 앱은 하이브리드 앱으로 개발한다. 웹뷰를 통해 pc에서 접속할 웹과 동일한 코드베이스를 사용한다. 웹뷰 브릿지를 만들어 웹뷰에서 기기 내 파일에 접근할 수 있도록 한다.

p2p 통신

기기간 통신은 WebRTC를 이용한 p2p 통신으로 한다. 매칭을 하기 위해 시그널링 서버를 만든다.

시나리오

매칭

  1. 호스트가 코드 생성 버튼을 누른다.
  2. 서버는 코드를 생성해 호스트에게 전달한다.
  3. 게스트는 호스트로 부터 전달받은 코드를 입력한다.

폴더 보기(상대가 안드로이드 앱일 경우)

  1. 사용자가 폴더 화면에 접근한다.
  2. 시스템은 사용자에게 시작 폴더(download)

통신 규칙

양쪽은 WebRTC의 datachannel로 데이터를 전달한다.

폴더

웹뷰 브릿지(인터페이스)

getStartFolder()

시작 폴더 경로를 반환한다.

getFolder(위치)

"0/download"

폴더내에 있는 폴더/파일을 반환한다.

[
    {"type":"folder","name":"download"},
    {"type":"file","name":"text.txt"}
]

getFile(위치)

파일의 이름과 내용을 반환한다. 이때 내용을 base64로 인코딩하여 전달한다.

"64uL7ZWY64uEIOyXkOyLnOyWtOyEseybkOuLrCDthYzslYR9"

getSmallImage(위치)

파일의

About

Webrtc-based remote Android file management application

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages