감을 못잡겠습니다... 도와주세요

maxswjeon의 이미지

핸드폰에 최적화되어 앱 형식으로 돌아가는 APM서버를 제작하려 하고 있습니다.
apache소스, PHP소스, Mysql소스 분석 중이고요(필요없나 싶기도 합니다)
그런데 어제밤에 busybox들춰보다가 httpd가 있더라고요....(허겅)
찾아보니 완벽한 건 아니라고 합니다...

그런데 apache소스를 개편해서 빌드해서 안드로이드에 올리면 그 바이너리를 실행할 수 있나요?
그리고 busybox 원리가 어떻게 되는지는 감도 못잡겠습니다.
그냥 리눅스 상에서 빌드해서 올리는거 같은데, 실행이 잘 되잖아요.
이건 또 뭔 상황인지도 모르겠고...

결론은
어떻게 하면 C로 만든 프로그램을 Android상에서 돌릴 수 있느냡니다.

도와주세요

shint의 이미지

비지박스 Busybox 는 무엇인가요?
안드로이드에서 실행되는 Unix VM(Virtual Machine) 유닉스 가상 머신(컴퓨터)

스마트폰 ARM CPU를 사용하는 안드로이드에서 실행되는 Unix VM(Virtual Machine) 유닉스 가상 머신(컴퓨터)

------------------------------------------------------
약간 오차가 있을테니. 정확한 내용은 찾아봐야 할겁니다.

CPU : x86. ARM. MPIS
비트수 : 32비트 64비트
OS : 윈도우. WINCE. 리눅스. 우분투. 안드로이드.

Virtual Machine : VirtualBox. VMWare. VirtualPC. JavaVM. DosBox. BusyBox. cygwin
Emulator : ... 여러가지 있습니다.

개발도구 : Visual Studio Compiler. Qt SDK. Mono SDK. GCC Compiler. 삼성 스마트TV(PNaCl. NaCl)
개발 IDE : 안드로이드 스튜디오 IDE (Eclipse). 안드로이드 SDK. Visual Studio IDE. Qt IDE. 삼성 스마트TV IDE.

스마트 서비스
KT 올레 스마트허브. 스마트 통합 앱스토어.

스마트폰 : ARM. 안드로이드
윈도우폰 : x86. 윈도우

c. cpp 소스 모두. ARM 으로 컴파일 하면. 설치. 실행 다 될겁니다.
네이티브로 컴파일 하는 방법도 있다고 합니다.
swf 플래시를 변환하는 방법도 있다고 합니다.
llvm. clang. 등에 컴파일러도 있다고 합니다.
Mono SDK 를 컴파일하면. 안드로이드에서도 사용할 수 있다고 합니다.

BusyBox : x86 CPU를 가상으로 지원하는 Unix VM 이라고 할 수 있겠네요.
https://busybox.net/about.html
자주 사용되는 유닉스 계열의 명령어를 최소 사이즈로 재구현하여 압축해 놓은 파일 묶음으로
임베디드 플랫폼에서 기반 도구로 사용됨

임베디드분야 주요 공개SW 목록
http://blog.naver.com/leeks219/220296914109

품질검증분야 주요 공개SW 목록(2014년 9월 기준)
http://goodsharp.tistory.com/458

----------------------------------------------

ARM 컴파일
MIPS 컴파일

WINCE
Visual Studio Phone. Tablet
Android Studio (Eclipse)
Qt
Samsung Smart TV (PNaCl NaCl)
Google I/O
Mono Project (Windows 10)

gcc arm compiler
g++ arm compiler

[시스템] [UP] 안드로이드 터미널 에뮬레이터 (루팅없이 비지박스 이용) - Android Terminal Emulator v1.0.60
http://theappl.com/bbs/board.php?bo_table=android_05&wr_id=854324

비지박스 관련 질문
http://kin.naver.com/qna/detail.nhn?d1id=2&dirId=20903&docId=230745128&qb=67mE7KeA67CV7Iqk&enc=utf8&section=kin&rank=5&search_sort=0&spq=1&pid=SoAxodpySD8sssAbKghsssssssh-027242&sid=/k4H%2BzWCIVfCLKtOs%2Bo2OA%3D%3D

busybox 비지박스에 대해
http://www.matcl.com/?m=bbs&bid=qa&iframe=Y&p=40&uid=253142

busybox --list 하면 300개 명령어

Can Native Client (NaCl) programs be written in languages other than C or C++?
http://stackoverflow.com/questions/7800693/can-native-client-nacl-programs-be-written-in-languages-other-than-c-or-c

Microsoft Build Tools 2013
https://www.microsoft.com/ko-KR/download/details.aspx?id=40760

삼성 스마트 TV SDK 설치하기
https://docs.google.com/presentation/d/1BxZ4mQ1Olu_UHaxW-lLC8zXv82E2-88V97q5pPi01FE/edit?pref=2&pli=1#slide=id.p

Porting MSBuild Projects To XBuild
http://www.mono-project.com/archived/porting_msbuild_projects_to_xbuild/

[Intel] Intel Bay Trail 셋탑박스 1 - 안드로이드, 윈도우 OS적용
http://cafe.naver.com/mk802/7730

코딩 없이 업무용 앱을 만들 수 있습니다
http://cafe.naver.com/ebookpublisher/5348

Usb에 설치된 android x86 을 EMMC에 복사하기
http://www.ppomppu.co.kr/zboard/view.php?id=wintab&page=3&divpage=8&no=40712

아수스 T100 안드로이드와 윈도우 듀얼부팅 성공후 초간단 안드로이드 사용후기 1.2.3 (동영상추가)
http://www.clien.net/cs2/bbs/board.php?bo_table=use&wr_id=715441

윈도우10 안드로이드, iOS 앱 대응방안 공개
http://egloos.zum.com/eggy/v/4080853

MinGW와 NDK로 안드로이드 네이티브 라이브러리 빌드하기
http://blog.naver.com/tommybee/220356760203

윈도우 10 모바일. Astoria 프로젝트로 안드로이드 어플 네이티브 구동
http://jewdsa813.blog.me/220461051601

Install Android apps on Windows 10 Mobile
http://forum.xda-developers.com/windows-10/windows-10-mobile/how-to-install-android-apps-windows-10-t3174629

우분투 안드로이드 개발환경 구축 Linux / SW Development
http://akj61300.blog.me/80107198511

Visual C++로 네이티브 안드로이드 앱 만들기
http://blog.naver.com/tipsware/220516299545

Visual Studio Emulator for Android
http://blog.naver.com/tipsware/220515569577

Visual Studio : Android 개발 [Xamarin] intro
http://blog.naver.com/airwindtree/220565638798

실패기 : LGT galaxy tab(갤탭) 소스로 안드로이드 컴파일 (android compile) - ubuntu 11.04 + android 2.3.3
http://knight76.tistory.com/1580

안드로이드 어플리케이션 프레임워크 환경설정 및 컴파일 안드로이드개발
http://blog.naver.com/bigseven89/10143126458

Tool Chain Install Guide for compile to Android in Linux( 리눅스에서 안드로이드 컴파일을 위한 툴체인 설치법 ) Porting / Android
http://blog.naver.com/dong880510/140155304403

안드로이드 컴파일 (ubuntu 11.04 + android 4.01)
http://knight76.tistory.com/1486

안드로이드 스튜디오 설치 Android / Programing
http://blog.naver.com/newagecrew/220557175214

개발속도 50배 빨라진 안드로이드 스튜디오 2.0 공개
http://www.zdnet.co.kr/news/news_view.asp?artice_id=20151124080826&type=det&re=

[ Qt 프로그래밍 ] Qt를 안드로이드에 빌드하기 Qt
http://blog.naver.com/remocon33/140212067777

qt) 안드로이드 빌드하기 hello hell 띄워보기
http://crasy.tistory.com/65

댓글 첨부 파일: 
첨부파일 크기
Package icon 컴파일 검색 모음.zip57.64 KB

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

익명 사용자의 이미지

BusyBox는 Virtual Machine이 아닙니다.

"자주 사용되는 유닉스 계열의 명령어를 최소 사이즈로 재구현하여 압축해 놓은 파일 묶음으로
임베디드 플랫폼에서 기반 도구로 사용됨"
이라고 자기가 직접 써놨으면서도 헛소리를 하니 도대체 무슨 생각인지 모르겠군요.

이 사람 요새 자기가 제대로 알지 못하는 내용에 대해서
함부로 답변하는 일이 많습니다.
답변 들으시는 분들은 극히 조심하시는게 좋습니다.

twinwings의 이미지

아니 비지박스가 버추얼 머신이라니요... 무슨 소리입니까...

익명 사용자의 이미지

위 댓글은 무시하시고...

안드로이드용 웹 서버 앱들은 이미 Play 스토어에 있습니다. 원하시는 게 단순히 폰에서 웹 서버를 돌리는 것이라면 그냥 이런 앱들을 사용하면 됩니다.

https://stackoverflow.com/questions/6571911/running-amp-apache-mysql-php-on-android

twinwings의 이미지

비지박스는 임베디드 머신을 위해 개발된 프로그램으로

자주 사용하는 실행파일(cli 명령어)를 하나의 바이너리 파일로 하므로써

용량을 줄이는게 주 목적입니다. 말 그대로 임베디드 환경을 위한 거죠.

(16비트 머신은 일반적으로 메모리를 64kB 밖에 쓰질 못합니다.)

위키에서는 이렇게 표현하네요.
"It was specifically created for embedded operating systems
with very limited resources. "

maxswjeon의 이미지

정리를 해드리죠(질문자가 한다는게 뭔가 이상하긴 하지만)

비지박스는 안드로이드에서 돌아가는 바이너리잖아요.....
이런 거를 만들려면 어떻게 해야 하는 건지 말입니다...
그냥 제 생각으로는 Apache를 바이너리식으로 만들어서 App에서 쉘로 실행시키는 걸 생각하고 있습니다.
안되는 건가요....

twinwings의 이미지

안드로이드에서 개발을 안해봐서 조심스럽게 답니다.

===
안드로이드 말고 일반 PC/서버를 기준으로 설명하면

우선 웹서버가 다른 프로그램을 실행시키는 것은 가능합니다.

cgi 라는 표준이 이미 있죠.

문제가 안드로이드에서 가능하냐 인데,

이런글 있는거 보니 가능한가 봅니다
(구글에서 android apache server cgi 검색하면 꽤 나옵니다.).

http://stackoverflow.com/questions/9283727/android-cgi-web-server-write-files-and-loading-perl-scripts

그리고 cgi 예제는(데탑기준)

http://darphin.tistory.com/39

furmuwon의 이미지

Android Open Source Project의 external directory를 한번 살펴보세요
http://androidxref.com/6.0.0_r1/xref/external/
여기에 모인 디렉토리는 일반적 linux에서 동작하는 application이나 library가
android 용으로 변환되어 포팅 되어 있습니다.
(ex> http://androidxref.com/6.0.0_r1/xref/external/libusb/ <- libusb 가 android 용으로 컴파일 되어 있는것)
그럼 질문자 님께서는
../external/apache
../external/mysql
../external/php
같이 3가지의 모듈을 위와 같은 형식으로 포팅 해야 합니다.
(AOSP 에서 작업하지 않는다면 NDK를 이용해야 겠지요)

사실 디렉토리를 저렇게 만들었지만 위의 3가지 application과 연관되어 혹은 필요한 library(몇개 인지 알 수 없지만)까지
android용으로 포팅해야 합니다.

위 작업은 나름 경험이 쟁쟁한 전문가도 큰~! 돈을 받고 해라고 해도 글쎄? 될까? 엄청 귀찮은데? 하면서
아마 안하거나 사양할 것으로 보입니다. 그만큼 힘들고 귀찮을 것이라 생각 됩니다.

도전해 보시겠다고 한다면

- android bionic c library 와 glibc 의 차이점의 개념을 알아두기 ( 개념만 분석할 필요는 없고요, 되는 것과 안되는 것의 차이 )
- android.mk 문법(기존 library 및 application을 모두 Android.mk 로 컨버팅 해야 합니다.)
- 포팅하고자 하는 프로그램및 라이브러리의 이해(오류 나면 땜방으로 수정해야 하기 때문에..)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.