[OO] 암호 해석
다음의 암호를 해석하시오.
---------------------------------------
A506EF0 580F4A7FCC 06E
002C67 534FC2 308B4584
63A1FFF A125D 7C8E300A
---------------------------------------
정답: CZ-9842-R
'세상 사는 이야기' 카테고리의 다른 글
[종료] 쿠팡 2만원 싸게 사기 (0) | 2015.08.01 |
---|---|
구미-인천공항 예매 (0) | 2015.06.21 |
[종료] 그루버스 추천인 이벤트 (2) | 2014.06.05 |
[Android] DrawerLayout 나머지 부분 어둡지 않게 만들기
왼쪽 위 삼선 눌러서 DrawerLayout 나올 때 원래 내용(나머지 부분)이 어두워 지는 것을 막는 방법
mDrawerLayout.setScrimColor(Color.TRANSPARENT);
---------------------------------------
그냥 그림자 없애려면 다음 함수 사용
setDrawerShadow(Drawable shadowDrawable, int gravity)
setDrawerShadow(int resId, int gravity)
'프로그래밍 > Android 프로그래밍' 카테고리의 다른 글
[Android] MIDI 프로그래밍 (API 23) (0) | 2016.01.02 |
---|---|
[Android] HttpClient 에러 해결 방법 (0) | 2015.12.01 |
[Android] AsyncTask 예제 (0) | 2014.08.14 |
[Android] List 예제 (0) | 2014.08.13 |
[Android] BLE (Bluetooth Low Energy) (0) | 2014.06.24 |
[종료] 쿠팡 2만원 싸게 사기
쿠팡 대란이라고 하길래 뭔가 했더니, 회원가입시 5,000원 캐시를 주고 첫 구매 이벤트로 15,000원을 줘서 총 2만원을 싸게 살 수 있는 이벤트를 하고 있었다. (현재 2015년 8월 1일. 언제 끝날 줄은 모름)
다음의 링크로 가입을 하면 5천원 캐시를 준다. (다른 사람의 추천인 링크로 가입해도 되지만, 만약 그냥 쿠팡 사이트에서 회원가입하면 5천원 캐시를 받지 못한다. 난 미심쩍어서 그냥 가입해서 5천원 날렸다..ㅠㅠ)
다음의 링크로 가입 또는 로그인을 한후에 구매를 하면 구매 후 10일 뒤에 내게 (글쓴이) 5천원 캐시가 온다고 하니 공짜로 생긴 2만원으로 뭘 사주시길...
http://coupang.com/memberJoinFrm.pang?token=326a2370b3012620eb87d970d365701c
회원 가입 후에는 다음의 링크로 가서 1만5천원 쿠폰을 받으면 된다. 이거는 24시간안에 써야함. 2만원 이상 사야 적용 가능. 근데, 여러 개를 장바구니에 넣고 합쳐서 2만원이 넘어도 사용 가능!!!
http://www.coupang.com/promotion/firstTimeBuyer.pang?promotionCode=102
핸드폰 번호 인증하고 난 뒤에 반드시 쿠폰 다운 버튼을 누르시길...
------------------------------------------------------------
추천하는 품목은 다음과 같다.
- 샤오미 보조 배터리 10000mAh (예전꺼는 10400인데 더 작아졌다고 함) (나도 이번에 쿠팡에서 사서 아직 안써봄)
22,900원 케이스 증정 (할인 뒤에는 2천9백원!!!) 무료배송
http://www.coupang.com/np/products/71556098
또는
21,200원 단품 (할인 뒤에 천2백원!!ㅎㅎ) 무료배송
http://www.coupang.com/np/products/93071167
- Anker 5포트 충전기 (이거 쓰고 있는데 강추) 33,900원 (할인뒤에 13,900원 무료배송)
http://www.coupang.com/np/products/92609371
'세상 사는 이야기' 카테고리의 다른 글
[OO] 암호 해석 (1) | 2015.11.07 |
---|---|
구미-인천공항 예매 (0) | 2015.06.21 |
[종료] 그루버스 추천인 이벤트 (2) | 2014.06.05 |
프로그래밍 시의 코딩 및 네이밍 컨벤션
1. 코딩 컨벤션
프로그램을 작성할 때는 일반적으로 다른 사람들이 많이 사용하는 방식을 따르는 것이 좋다.
어떤 방식을 선호하는지 분석해 주는 사이트가 있어서 소개한다.
예를 들면,
if ( ~ ) {
} else if {
} else {
}
또는
if ( ~ )
{
} else if
{
} else
{
}
등등...
http://www.sideeffect.kr/popularconvention/
남들이 어떤 것을 많이 쓰는지 알아두고.. 판단은 각자 개인이..
2. 네이밍 컨벤션
이름을 지을 때도 주의해서 지어야 한다.
함수명: 동사로 시작
클래스명, 변수명: 명사로 시작
해당 언어의 네이밍 컨벤션을 익히고 사용하길 권장한다.
여러명이서 협업 프로젝트를 진행할 때는 특히 컨벤션을 미리 정하고 프로그래밍에 착수하는 것이 좋다.
예를 들어, C 언어면 모듈 이름 뒤 언더바(_) 뒤에 동사(첫 글자 대문자)로 시작하는 함수 이름 등...
'전공 관련 자료' 카테고리의 다른 글
프로그래밍 능력 자가 점검 (0) | 2017.07.05 |
---|---|
카드 덱 이미지 (트럼프 카드) (0) | 2017.04.22 |
[CUDA] CUDA 6.5 error MSB3721 해결 방법 (1) | 2014.12.31 |
[CUDA] Visual Studio 2013에서 CUDA 개발 환경 구축 (0) | 2014.12.31 |
전세계 국기 이미지 무료 다운로드 (1) | 2014.12.18 |
구미-인천공항 예매
o 공항 리무진
구미에서 인천공항 예매는 다음 사이트에서 가능하다. 소요시간은 3시간 ~ 3시간 30분. 넉넉잡고 출발 6시간(4+2) 전의 표를 구매하면 될 것같다.
요금은 심야는 32,500원, 오전 4시 20분부터는 29,500원.
https://www.busterminal.or.kr/
예전에 심야 시간에는 매표소 직원이 없어서 직접 터미널에 가서 구매했어야 했지만, 이제 자동 발매기가 생겨서 터미널에 가지 않고도 인터넷으로 심야 시간 예매가 가능하다. 예매한 카드를 가지고 당일날 터미널에 가서 자동 발매기에서 표를 받을 수 있다.
그리고, 예전에는 터미널 주차장이 10분까지 무료였는데, 이제는 무조건 30분까지 500원을 받는다.
o KTX
김천구미역에서 인천공항까지 가는 KTX도 있으나 운행 회수가 많지 않아서 시간이 정확히 맞지 않는다면 타기가 쉽지는 않을 것 같다. 시간은 2시간 30분정도 걸리니 시간만 맞으면 시간을 절약할 수 있어서 좋다.
요금은 일반실 46,800원.
2015년 6월 21일 현재 06:13 차가 첫 차이고 08:42분 도착이므로 오전 11시 이후 ~ 오후 2시 이후 비행기면 타도 좋을 듯 싶다.
김천구미역 주차장은 하루 7,000원.
'세상 사는 이야기' 카테고리의 다른 글
[OO] 암호 해석 (1) | 2015.11.07 |
---|---|
[종료] 쿠팡 2만원 싸게 사기 (0) | 2015.08.01 |
[종료] 그루버스 추천인 이벤트 (2) | 2014.06.05 |
Visual Studio 2013 MFC 파일 확장자 변경
솔루션 뷰 - [프로젝트명].rc 파일 더블 클릭
String Table - String Table - IDR_MAINFRAME
<windowTitle>\n<docName>\n<fileNewName>\n
<filterName>\n <filterExt>\n<regFileTypeID>\n
<regFileTypeName>\n <filterMacExt(filterWinExt)>\n
<filterMacName(filterWinName)>
출처: http://support.microsoft.com/kb/129095/ko
'프로그래밍 > MFC 프로그래밍' 카테고리의 다른 글
Visual Studio 2017 대화 상자 기반 프로젝트 생성 에러 해결 방법 (0) | 2018.10.11 |
---|---|
Visual Studio 2017 MFC 단일 문서 스타일 프로젝트 생성 에러 해결 방법 (0) | 2018.10.11 |
[MFC] MFC 구현 소스 코드 (0) | 2015.01.06 |
Visual Studio 2010에서 소스코드 컬러 인쇄 (0) | 2012.11.13 |
깜빡임 없는 화면을 위한 CMemDC 클래스 (0) | 2012.06.03 |
[MFC] MFC 구현 소스 코드
Visual Studio 2013 기준으로 다음 위치에 구현 소스 코드 있음 (다른 버전은 12.0 부분 변경)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\src\mfc
찾으려던 Polygon은 Win32 API에 있어서 실패...
'프로그래밍 > MFC 프로그래밍' 카테고리의 다른 글
Visual Studio 2017 대화 상자 기반 프로젝트 생성 에러 해결 방법 (0) | 2018.10.11 |
---|---|
Visual Studio 2017 MFC 단일 문서 스타일 프로젝트 생성 에러 해결 방법 (0) | 2018.10.11 |
Visual Studio 2013 MFC 파일 확장자 변경 (0) | 2015.01.21 |
Visual Studio 2010에서 소스코드 컬러 인쇄 (0) | 2012.11.13 |
깜빡임 없는 화면을 위한 CMemDC 클래스 (0) | 2012.06.03 |
[CUDA] CUDA 6.5 error MSB3721 해결 방법
1> ptxas C:/Users/User/AppData/Local/Temp/tmpxft_0000392c_00000000-4_test.ptx, line 81; fatal : Parsing error near '-': syntax error
1> ptxas fatal : Ptx assembly aborted due to errors
1> ... 명령이 종료되었습니다(코드: 255).
솔루션 탐색기 탭에서 프로젝트명에 오른쪽 버튼 누르고 속성 선택.
CUDA C/C++ - Device에서 다음 그림과 같이 -G 옵션을 빼주면 됨.
참고) CUDA 개발 환경 구축: http://bwoh.tistory.com/79
'전공 관련 자료' 카테고리의 다른 글
카드 덱 이미지 (트럼프 카드) (0) | 2017.04.22 |
---|---|
프로그래밍 시의 코딩 및 네이밍 컨벤션 (0) | 2015.07.24 |
[CUDA] Visual Studio 2013에서 CUDA 개발 환경 구축 (0) | 2014.12.31 |
전세계 국기 이미지 무료 다운로드 (1) | 2014.12.18 |
[공간 데이터] 미국 인구 조사 Tiger Shape file 구성 분석 (0) | 2014.11.26 |
[CUDA] Visual Studio 2013에서 CUDA 개발 환경 구축
VS2013에서 CUDA 개발 환경 구축
위의 pdf 파일을 열 수 없으신 분들은 다음의 그림들을 참조하십시오.
Microsoft Dream Spark : http://www.dreamspark.com
'전공 관련 자료' 카테고리의 다른 글
프로그래밍 시의 코딩 및 네이밍 컨벤션 (0) | 2015.07.24 |
---|---|
[CUDA] CUDA 6.5 error MSB3721 해결 방법 (1) | 2014.12.31 |
전세계 국기 이미지 무료 다운로드 (1) | 2014.12.18 |
[공간 데이터] 미국 인구 조사 Tiger Shape file 구성 분석 (0) | 2014.11.26 |
소프트웨어 개발 기초 (초등학생용) (0) | 2014.10.11 |
전세계 국기 이미지 무료 다운로드
http://flagpedia.net/download
사이즈 별로 (고해상도까지) 다운로드 받을 수 있어서 매우 좋음
2글자 국가 코드로 되어 있어 더욱 활용도가 높음 (예를 들면, 대한민국은 kr)
이런 사이트가 있다니 너무 고맙네요... 대인배!
'전공 관련 자료' 카테고리의 다른 글
[CUDA] CUDA 6.5 error MSB3721 해결 방법 (1) | 2014.12.31 |
---|---|
[CUDA] Visual Studio 2013에서 CUDA 개발 환경 구축 (0) | 2014.12.31 |
[공간 데이터] 미국 인구 조사 Tiger Shape file 구성 분석 (0) | 2014.11.26 |
소프트웨어 개발 기초 (초등학생용) (0) | 2014.10.11 |
AOP: Aspect-Oriented Programming (0) | 2014.04.18 |
[공간 데이터] 미국 인구 조사 Tiger Shape file 구성 분석
개인적으로 사용할 것 같은 필요한 데이터만 다운로드하여 조사했으므로 표에서 비어 있는 부분도 있다.
Category | Layer Type | Sub Layer Type | File Name | 단위 | Type | 예제 파일 (06: 캘리포니아, 113: Yolo County) 또는 설명 |
Geographic Areas | American Indian Area Geography |
|
| nation |
|
|
Blocks |
|
| state |
| 도시의 블럭tl_2019_06_tabblock10.zip (710,145 features in 2019) | |
Block Groups |
|
| state |
| 같은 숫자로 시작하는 Block들로 구성. 인구 600~3,000명 사이 | |
Census Tracts |
|
| state |
| Block Groups들로 구성. 인구 4,000명 기준. 1,200~8,000명 사이 | |
Congressional Districts |
|
| nation |
|
| |
Consolidated Cities |
|
| state |
|
| |
Core Based Statistical Areas |
|
| nation |
|
| |
Counties (and equivalent) |
| county | nation | Polygon | tl_2014_us_county.zip | |
County Subdivisions |
|
| state |
|
| |
Economic Census - 2012 |
|
|
|
|
| |
Estate |
|
| state |
| Virgin Islands only | |
Places |
| place | state | Polygon | tl_2019_06_place.zip (1,521 features in 2019) | |
Public Use Microdata Areas |
|
| nation |
|
| |
School Districts |
|
| state |
|
| |
States (and equivalent) |
| state | nation | Polygon | tl_2014_us_state.zip | |
State Legislative Districts |
|
| state |
| ||
Subbarrio (SubMinor Civil Division) |
|
| state |
| ||
Urban Areas |
|
| nation |
|
| |
ZIP Code Tabulation Areas |
| zcta5 | nation | Polygon | tl_2014_us_zcta510.zip | |
|
|
|
|
|
|
|
Features | All Lines |
| edges | county | Polyline | tl_2014_06113_edges.zip |
Coastline |
| coastline | nation | Polyline | tl_2014_us_coastline.zip | |
Landmarks | Point Landmark | pointlm | state | Point | tl_2019_06_pointlm.zip (91,598 features in 2019) | |
Area Landmark | arealm | state | Polygon | tl_2019_06_arealm.zip (8,067 features in 2019) | ||
Roads | Primary Roads | primaryroads | nation | Polyline | tl_2019_us_primaryroads.zip (17,495 features in 2019) | |
Primary and Secondary Roads | prisecroads | state | Polyline | tl_2019_06_prisecroads.zip (7,403 features in 2019) | ||
All Roads | roads | county | Polyline | tl_2019_06113_roads.zip (4,800 features in 2019) | ||
Rails |
| rails | nation | Polyline | tl_2014_us_rails.zip | |
Military Installations |
| mil | nation | Polygon | tl_2014_us_mil.zip | |
Water | Linear Hydrography | linearwater | county | Polyline | tl_2014_06113_linearwater.zip | |
Area Hydrography | areawater | county | Polygon | tl_2014_06113_areawater.zip | ||
|
|
|
|
|
|
|
| Address Range-Feature |
|
| county |
| tl_2019_06113_addr.zip (14,970 aspatial features in 2019) |
| Topological Faces (Polygons with All Geocodes) |
|
| county |
|
|
|
|
|
|
|
|
|
Feature Relationships | Address Range-Feature Name |
|
| county |
|
|
| Address Ranges |
|
| county |
|
|
| Feature Names |
|
| county |
|
|
| Topological Faces – Area Landmark |
|
| state |
|
|
| Topological Faces – Area Hydrography |
|
| county |
|
|
| Topological Faces – Military Installations |
|
| state |
|
|
Tiger Data의 원래 주소는 다음과 같다. (링크되어 있지 않으니 복사해서 주소창에 붙여 넣기 하세요.)
https://www.census.gov/geo/maps-data/data/tiger-line.html
'전공 관련 자료' 카테고리의 다른 글
[CUDA] Visual Studio 2013에서 CUDA 개발 환경 구축 (0) | 2014.12.31 |
---|---|
전세계 국기 이미지 무료 다운로드 (1) | 2014.12.18 |
소프트웨어 개발 기초 (초등학생용) (0) | 2014.10.11 |
AOP: Aspect-Oriented Programming (0) | 2014.04.18 |
협업 도구 - Trello (0) | 2014.04.18 |
소프트웨어 개발 기초 (초등학생용)
네이버에서 "소프트웨어야 놀자" 캠페인을 시작했네요.
소프트웨어 프로그래밍 기초를 어린 학생들에게 교육해야 할 때 유용하게 사용할 수 있을 것으로 생각합니다.
밑의 링크에는 3단계로 되어 있네요.
http://campaign.naver.com/software/program/textbook.nhn
다음은 프로그래밍 개념을 배우는 것인데, 스크래치와 유사한데 별개로 개발된 것 같습니다.
아이들과 친숙한 강아지를 조정하는 프로그래밍 방법을 보니 재미있네요.
http://play-entry.com/
참고로 다음은 스크래치입니다.
http://scratch.mit.edu/
'전공 관련 자료' 카테고리의 다른 글
전세계 국기 이미지 무료 다운로드 (1) | 2014.12.18 |
---|---|
[공간 데이터] 미국 인구 조사 Tiger Shape file 구성 분석 (0) | 2014.11.26 |
AOP: Aspect-Oriented Programming (0) | 2014.04.18 |
협업 도구 - Trello (0) | 2014.04.18 |
SoEn 사이트 소개 (0) | 2014.04.17 |
[Android] AsyncTask 예제
모바일 융합 기술 센터
스마트 앱 창작터 안드로이드 기초 및 실습
Day9Ex1 앞부분 구현 내용 (내용 추가 필요)
package kr.re.mctc.android.day9ex1weatherinfo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Window;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
String mResult = null;
WeatherTask mTask = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView() 앞에서 호출
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_main);
mTask = new WeatherTask();
mTask.execute();
}
class WeatherTask extends AsyncTask<Void, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
setProgressBarIndeterminate(true);
}
@Override
protected String doInBackground(Void... params) {
String query = "http://api.openweathermap.org/data/2.5/weather?q=kumi";
BufferedReader rd = null;
String rLine = "";
StringBuilder result = new StringBuilder();
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(query);
try {
HttpResponse response = httpClient.execute(httpGet);
rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
while ((rLine = rd.readLine()) != null) {
result.append(rLine);
}
return result.toString();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
setProgressBarIndeterminate(false);
Toast.makeText(MainActivity.this,
result, Toast.LENGTH_SHORT).show();
mResult = result;
}
}
}
'프로그래밍 > Android 프로그래밍' 카테고리의 다른 글
[Android] HttpClient 에러 해결 방법 (0) | 2015.12.01 |
---|---|
[Android] DrawerLayout 나머지 부분 어둡지 않게 만들기 (0) | 2015.08.22 |
[Android] List 예제 (0) | 2014.08.13 |
[Android] BLE (Bluetooth Low Energy) (0) | 2014.06.24 |
[Android] MIDI 프로그래밍 (1) | 2014.06.24 |
[Android] List 예제
모바일 융합 기술 센터
스마트 앱 창작터 안드로이드 기초 및 실습 강의 자료
Day8Ex2MyList - MainActivity.java
import java.util.ArrayList;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity
implements OnItemClickListener {
// protected String[] mArray = { "걸스데이", "에이핑크", "소녀시대", "시크릿",
// "걸스데이", "에이핑크", "소녀시대", "시크릿",
// "걸스데이", "에이핑크", "소녀시대", "시크릿",
// "걸스데이", "에이핑크", "소녀시대", "시크릿" };
ArrayList<IdolInfo> mArray = new ArrayList<IdolInfo>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mArray.add(new IdolInfo("걸스데이", "썸씽"));
mArray.add(new IdolInfo("에이핑크", "No No No"));
mArray.add(new IdolInfo("소녀시대", "Gee"));
mArray.add(new IdolInfo("시크릿", "매직"));
mArray.add(new IdolInfo("걸스데이", "썸씽"));
mArray.add(new IdolInfo("에이핑크", "No No No"));
mArray.add(new IdolInfo("소녀시대", "Gee"));
mArray.add(new IdolInfo("시크릿", "매직"));
ListView list = (ListView)findViewById(R.id.listView);
// ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1,
// mArray);
IdolAdapter adapter = new IdolAdapter(this,
android.R.layout.simple_list_item_1);
list.setAdapter(adapter);
list.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position,
long arg3) {
// Toast.makeText(this, "클릭: " + position + "(" + mArray[position] + ")",
// Toast.LENGTH_SHORT).show();
new AlertDialog.Builder(this)
.setTitle("아이템 선택")
.setMessage(mArray.get(position).getName() + " 아이템을 선택했습니다.")
.setPositiveButton("확인", null)
.show();
}
public class IdolInfo {
protected String name;
protected String song;
public IdolInfo(String name, String song) {
super();
this.name = name;
this.song = song;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSong() {
return song;
}
public void setSong(String song) {
this.song = song;
}
}
static class IdolViewHolder {
TextView idolName;
}
public class IdolAdapter extends ArrayAdapter<IdolInfo> {
protected LayoutInflater mInflater = null;
public IdolAdapter(Context context, int resource) {
super(context, resource);
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return mArray.size();
}
@Override
public View getView(int position, View v, ViewGroup parent) {
IdolViewHolder viewHolder;
if (v == null) {
v = mInflater.inflate(android.R.layout.simple_list_item_1,
parent, false);
viewHolder = new IdolViewHolder();
viewHolder.idolName = (TextView)v.findViewById(android.R.id.text1);
v.setTag(viewHolder);
}
else {
viewHolder = (IdolViewHolder)v.getTag();
}
IdolInfo info = mArray.get(position);
if (info != null) {
viewHolder.idolName.setText(info.getName());
}
return v;
}
}
}
'프로그래밍 > Android 프로그래밍' 카테고리의 다른 글
[Android] DrawerLayout 나머지 부분 어둡지 않게 만들기 (0) | 2015.08.22 |
---|---|
[Android] AsyncTask 예제 (0) | 2014.08.14 |
[Android] BLE (Bluetooth Low Energy) (0) | 2014.06.24 |
[Android] MIDI 프로그래밍 (1) | 2014.06.24 |
[Android] Music Synthesizer (0) | 2014.06.24 |
[Android] BLE (Bluetooth Low Energy)
'프로그래밍 > Android 프로그래밍' 카테고리의 다른 글
[Android] AsyncTask 예제 (0) | 2014.08.14 |
---|---|
[Android] List 예제 (0) | 2014.08.13 |
[Android] MIDI 프로그래밍 (1) | 2014.06.24 |
[Android] Music Synthesizer (0) | 2014.06.24 |
[Android] Serial 통신 (RS-232C) (0) | 2014.06.12 |
[Android] MIDI 프로그래밍
[Update] 2015년의 Android API23 Marshmallow에서 MIDI API를 제공하고 있으므로 MIDI Device에 연결하거나 노트를 재생하시려는 분들에게 이 글은 큰 의미가 없을 것 같습니다.
대신 최신 블로그 글을 참조해 주십시오.
---------------------------------------------------------------------------------
실제로 미디를 사용한 프로그램(시퀀서, 건반, 기타 등 음악 앱이나 게임 앱)을 만들기 위해서는 JetPlayer가 답으로 생각된다.
C:\adt-bundle-windows-x86_64-20140321\sdk\platforms\android-3\samples\JetBoy
ADT (Android Developer Tools) 깔고 나서 sdk 디렉토리에 보면 JetBoy라는 JetPlayer를 사용하는 샘플 앱이 있다. (밑줄 친 앞부분은 버전과 각자 설치 환경에 따라 달라질 수 있음)
이걸 분석해 보면 JetPlayer를 사용할 수 있을 듯...
다음 디렉토리에 있는 JetCreator를 사용하여 MIDI 노트를 사용하는 JET 파일을 만들고 그 파일을 앱에서 활용한다.
C:\adt-bundle-windows-x86_64-20140321\sdk\tools\Jet
JetCreator를 사용하려면 Python을 깔아야 한다.
Android 공식 API Guide는 아래 링크로...
http://developer.android.com/guide/topics/media/jetplayer.html
코드 내에서 MIDI 노트를 바로 플레이할 수 있는 기능이 있는지 모르겠다. 아시는 분은 댓글 달아 주시길...
--------------------------------
MIDI File 생성
http://kevinboone.net/javamidi.html
------------------------------------
Java Sound FAQ
http://www.jsresources.org/faq_midi.html
Java Sound API
http://docs.oracle.com/javase/1.5.0/docs/guide/sound/programmer_guide/
--------------------------------------
CodeGuru에서 MIDI 검색 (Windows용 MCI or DirectX 사용)
http://www.codeguru.com/vb/gen/vb_multimedia/article.php/c1097/Advanced-MIDI-Programming--Utility.htm
http://www.codeguru.com/cpp/g-m/multimedia/article.php/c1573/Playing-MIDI-Files-Directly-From-The-Resource.htm
http://www.codeguru.com/cpp/g-m/multimedia/audio/article.php/c4715/Creating-an-MCI-MIDI-Class.htm
'프로그래밍 > Android 프로그래밍' 카테고리의 다른 글
[Android] List 예제 (0) | 2014.08.13 |
---|---|
[Android] BLE (Bluetooth Low Energy) (0) | 2014.06.24 |
[Android] Music Synthesizer (0) | 2014.06.24 |
[Android] Serial 통신 (RS-232C) (0) | 2014.06.12 |
[Android] 안드로이드 개발을 쉽게 ~ Roboguice & Android Annotations (0) | 2014.04.18 |
[Android] Music Synthesizer
Music Synthesizer for Android
https://code.google.com/p/music-synthesizer-for-android/
안드로이드에서는 iOS에 비해 사운드 처리가 빈약해 보인다.
Midi 프로그래밍을 찾다보니 복잡하지만 좋아보이는 코드가 있었다. 얼핏 보면 NDK도 사용하고 있는 것으로 보인다.
apk 파일이 있으니 받아서 실행해 보시길...
----------------
JetPlayer를 사용해서 미디 파일을 출력하는 것이 그나마 가장 쉬운 방법으로 보인다.
OpenSL을 사용하는 방법이 가장 latency를 줄일 수 있는 방법이라고 한다.
'프로그래밍 > Android 프로그래밍' 카테고리의 다른 글
[Android] BLE (Bluetooth Low Energy) (0) | 2014.06.24 |
---|---|
[Android] MIDI 프로그래밍 (1) | 2014.06.24 |
[Android] Serial 통신 (RS-232C) (0) | 2014.06.12 |
[Android] 안드로이드 개발을 쉽게 ~ Roboguice & Android Annotations (0) | 2014.04.18 |
[Android] Android Wear SDK (0) | 2014.03.26 |