android basic default 기본 drawables 쓰기

안드로이드 개발을 하면서, icon이 아직 없을 때, 단말기에서 기본으로 쓰는 아이콘들을 활용하기
android:icon=”@android:drawable/ic_menu_save”
android.R.drawable.ic_menu_save
버전 별 아이콘 모양과 이름이 적혀 있어서 좋다.
action bar icon pack을 다운 받아서 쓰기.
mac에서는 finder검색 기능을 이용해서 원하는 아이콘을 찾으면 편하다.

안드로이드 – 스크린 사이즈, 해상도, 밀도

출처 :
http://www.cyworld.com/csm47/3486608

안드로이드 개발환경을 구성하고 익숙하지도 않은 이클립스를 사용하여 Hello World 프로그램을 만들 때 가장 눈에 거슬리는 것이 다음 화면 이었다. 에뮬에서 사용할 가상머신의 규격을 설정하는 것인데 스마트폰 기기에 그리 익숙하지도 않아서 그냥 막고 품어 왔지만 중요한 부분이라서 정리해 본다.

국내에서 많이 쓰이는 스마트폰의 해상도 정보를 정리해 봤다. 가장 중요한 가로세로비를 기준으로 화면사이즈가 큰 순서로 나열하였다. 지원하는 해상도와 해상도에 대한 약어를 표시하고 있다. (2012.1.5 수정)

HV

YH

해상도

약어

Size

비고

2:3

1.5

320*480

HVGA

3.0″

안드로원

3.2″

GALAXY Gio

3.5″

GALAXY Ace, iPhone 3GS

640*960

3.5″

iPhone 4, 4S

5:8

1.6

800*1280

WXGA

5.3″

GALAXY Note

3:5

화면전환시 fade 효과

출처 : http://www.androidside.com/bbs/board.php?bo_table=B46&wr_id=15755

다 아시느분도 게시공 도움이 될지 모르겟지만 혹시나 모르시는분들을 위해 올려봄니다^^
보통 화면 전화시에 화면이 기존 화면에서 옆으로 넘어가는 형식의 화면이 전환이 되는데
이렇게 하시면 액티비티간 화면 전환시 좀더 부드럽고 다양하게 화면 전환 효과를 줄수 있습니다

-res폴더 밑에 anim폴드 생성
-anim폴더안에 fade.xml,hold.xml 넣기


*fade.xml*
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:fromAlpha="0.0" android:toAlpha="1.0"
       android:duration="@android:integer/config_longAnimTime" />

 

*hold.xml*

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:fromXDelta="0" android:toXDelta="1.0"
       android:duration="@android:integer/config_longAnimTime" />

 

-이동전 액티비티의 소스코드에서 다음 액티비티호출하는 부분 startActivity(intent) 밑에 다음 코드를 넣어준다
overridePendingTransition(R.anim.fade,R.anim.hold);
넣어주면 넘어갈때 기존의 화면전환과 다르게 사라지면서 새로운 액티비티로 전환

참고로 이건 1.6버전에서는 가능하지 않더라고요^^

허접한 팀이지만 도움이 되었으면 합니다^^

android에서 HTTPS 접근 모듈

출처 : http://cafe.naver.com/jzsdn.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=21091

package ukg.network.http;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import android.util.Log;
/*
작성자 : 도플광어
설명 : 안드로이드 용 html 다운로더 모듈 (https 도 지원함)
*/
public class CHttpUtil {
public static String DownloadHtml(String addr) {
StringBuilder html = new StringBuilder();
try {
URL url = new URL(addr);
//HttpURLConnection conn = (HttpURLConnection)url.openConnection();

HttpURLConnection conn = null;

if (url.getProtocol().toLowerCase().equals("https")) {
trustAllHosts();
HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
https.setHostnameVerifier(DO_NOT_VERIFY);
conn = https;
} else {
conn = (HttpURLConnection) url.openConnection();
}

if (conn != null) {
conn.setConnectTimeout(10000);
conn.setUseCaches(false);

커스텀 타이틀바 만드는 방법

출처 : http://www.helloandroid.com/tutorials/how-create-custom-titlebar

boolean customTitleSupported;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//check if custom title is supported BEFORE setting the content view!
customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

//set contentview
setContentView(R.layout.mainscreen);

//set custom titlebar
customTitleBar(getText(R.string.app_name).toString(), getText(
R.string.title_main_menu).toString());
}

public void customTitleBar(String left, String right) {
if (right.length() > 20) right = right.substring(0, 20);
// set up custom title
if (customTitleSupported) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
R.layout.customtitlebar);
TextView titleTvLeft = (TextView) findViewById R.id.titleTvLeft);
TextView titleTvRight = (TextView) findViewById(R.id.titleTvRight);

titleTvLeft.setText(left);
titleTvRight.setText(right);

ProgressBar titleProgressBar;
titleProgressBar = (ProgressBar) findViewById(R.id.leadProgressBar);

//hide the progress bar if it is not needed
titleProgressBar.setVisibility(ProgressBar.GONE);
}
}

LogCat 한글 메시지 확인하기

이클립스에서 사용하는 LogCat에서는 한글이 깨져서 나온다. (윈도우 버젼 이클립스. 현재 사용중인 버젼은 갈릴레오) 인코딩 문제 때문이라고 하는데 이를 cmd 콘솔에서 볼 수 있는 방법이 있다. 아래와 같이 하면 이클립스 및 해당 콘솔창에서 동시에 로그가 출력된다.

1. Win + R / cmd
2. cmd /u
3. chcp 65001
4. 콘솔창의 속성에서 폰트,를 Lucida Console 로 변경해준다.
5. adb logcat

이렇게 하면 콘솔창에 이클립스에서와 동일한 LogCat 메시지가 출력된다. 한글은 깨지지 않지만 좀 불편하긴 하다;;;;

이클립스에서 안드로이드 SDK 소스 연결하기

1. 먼저 안드로이드 SDK 프레임워크 소스를 다운로드 받는다.

SDK 버전과 맞는 Framework Base 소스 스냅샷을 http://android.git.kernel.org/?p=platform/frameworks/base.git;a=summary에서 찾아서 받을 수 있습니다. 마지막 스냅샷은 http://android.git.kernel.org/?p=platform/frameworks/base.git;a=snapshot;h=HEAD;sf=tgz에서 다운로드 받을 수 있습니다. 설치된 SDK와 맞지 않는 소스를 다운로드 받으신 경우에 소스가 정확히 표시되지 않을 수 있으니 정확히 확인하시기 바랍니다.

2. 이제 다운로드 받은 소스의 압축을 해제하고 base/core/java 밑에있는 두 디렉토리 android와 com을 확인한다.

3. SDK가 설치된 디렉토리 밑에 platforms/<해당 SDK 버전> 아래에 sources라는 디렉토리를 생성합니다.

4. android와 com디렉토리를 복사하여 sources 디렉토리밑에 넣습니다.

5. 잘 연결되었는지 이클립스에서 소스를 열고 에디터에서 Activity와 같이 플랫폼 SDK에 존재하는 클래스위에 커서를 놓고 F3을 눌러봅니다. 정상적으로 소스가 열리는 것을

달빅(Dalvik) VM(virtual machine)에 대해 …

달빅(Dalvik)은 구글의 댄 본스타인(Dan Bornstein)이 만든 VM이다.

자바와 같이 안드로이드 앱 개발을 하기 위해 작성된 코드는 바이트 코드(bytecode)라는 기계 독립적인

명령으로 컴파일되고 안드로이드 장치에 있는 달빅(Dalvik) VM에 의해 실행된다.

즉, 자바(Java)로 만든 코드는 JVM (Java Virtual Machine) 위에서 실행 되듯이

안드로이드 앱은 달빅(Dalvik) VM 위에서 실행이 되는 것이다.


자바(Java)와 같이 안드로이드에서도 바이트코드가 있지만,

자바(Java)의 바이트코드(bytecode)와 달빅의 바이트코드(bytecode)는 다르다.

출처 : http://uniksy1106.tistory.com/199


+ 달빅(Dalvik) VM

  – 여러 개의 VM인스턴스가 한 번에 실행가능

  – 내부 리눅스의 장점으로 인해 보안과 프로세스의 격리 가능


  – 최소한의 메모리 풋프린트(footprint)로 최적화된 Dalvik 실행자 (.dex) 형식의 파일을 실행

  – 등록 기반으로써 자바