반응형


동영상을 보게 되면 아이폰 안에서 안드로이드가 실행중입니다.
아이폰에서 멀티부팅??을 이용하여 리눅스를 설치하고, 안드로이드를 넣어버린...
예전에 아이폰에다가 Win98을 설치한 건 보았었는데 ㅎㅎ 안드로이드를...
보니까... 전화까지 받아지는거 같던데 음... 이런식으로 사용해 보는 사람들이 생겨나겠군요 ㅋㅋ
제가 가지고 iPod에 설치해 보고 싶어지는 ^^
아래 주소는 아이폰 멀티부팅을 도와주는 자료가 있는 곳 입니다.
http://www.theiphonewiki.com/wiki/index.php?title=IBoot




반응형
반응형

말도 많고...
그동안 문제도 생겼던... ㅜㅜ/
아..그래도 이제 거의다 완성이 되가는 ㅋㅋ
과연 내일 베타테스트를 진행할 수 있을런지.. 음...


반응형
반응형
안드로이드 개발을 하게 되다 보면
너무 다양한 디바이스에 대해서 서로 다른 설정을 해 줄 필요도 있게 되겠죠.
간단하게 디바이스 정보를 확인하는 방법 입니다.


import android.os.Build;

Log.i("BOARD", Build.BOARD);
Log.i("BRAND", Build.BRAND);
Log.i("CPU_ABI", Build.CPU_ABI);
Log.i("DEVICE", Build.DEVICE);
Log.i("DISPLAY", Build.DISPLAY);
Log.i("FINGERPRINT", Build.FINGERPRINT);
Log.i("HOST", Build.HOST);
Log.i("ID", Build.ID);
Log.i("MANUFACTURER", Build.MANUFACTURER);
Log.i("MODEL", Build.MODEL);
Log.i("PRODUCT", Build.PRODUCT);
Log.i("TAGS", Build.TAGS);
Log.i("TYPE", Build.TYPE);
Log.i("USER", Build.USER);



반응형
반응형

  안드로이드의 특징중에 하나를 꼽는다면 백그라운드 실행이라고 할 수 있겠습니다. 아이폰과 다르게 멀티테스킹이 가능한
안드로이드는 그만큼 활용도가 많다는 것입니다. 하지만 그것에 따른 다른 주의 사항이 있습니다.
그 중에 하나가 바로 wifi모드를 유지하는 것입니다.

  안드로이드는 대기 모드로 들어가게 되면 배터리 소모를 줄이기 위해서 wifi를 자동으로 꺼버리게 됩니다. 하지만 무선으로
데이터를 주고 받는 중이거나, 스티리밍을 하고 있는 중간에 대기 상태로 들어가게 되고 자동으로 wifi가 꺼지게 된다면 3G
의 무선 데이터 모드로 바뀌게 되겠지요. 그렇게 된다면 3G 데이터의 사용이 많아지게 되고 나중엔 사용자의 요금에 지대한
영향을 줄 것으로 생각됩니다.
  백그라운드 실행 중에도 wifi 상태를 유지하기 위해서는 

android.net.wifi.WifiManager.WifiLock

을 이용해서 wifi상태를 유지시켜줘야 합니다.
자세한 설명음
http://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html
이 곳에 가시면 확인할 수 있습니다.

간단히 사용방법을 보게 된다면
WifiManager.WifiLock wifiLock = null;
//등록
if (wifiLock == null) {
                WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
	wifiLock = wifiManager.createWifiLock("wifilock");
	wifiLock.setReferenceCounted(true);
	wifiLock.acquire();
}
//해제
if (wifiLock != null) {
                wifiLock.release();
	wifiLock = null;
}

이렇게 하면 됩니다.
대기 상태에서도 wifi를 유지하고 있게 된다면, 배터리 소모가 빠르고 많아진다는 단점이 있지만, 그만큼 3G 데이터를 사용하는것이 적어진다는 것에 대한 장점도 있게 됩니다.

  두번째로 주의할 점은, 대기상태가 오래 된다면 cpu의 활동을 정지시켜 버립니다. 이것도 배터리 소모를 줄이기 위한 것이기는 하지만, 단적인 예로 들어서 스트리밍으로 음악을 듣고 있는 중에서 화면을 꺼버린 대기 모드일 경우에 cpu를 정지 시킨다면 음악을 들을 수 없게 되겠지요. 그래서 wifi상태를 유지 시켜주기 위한 WifiLock이 있듯이 cpu상태를 활동상태로 유지시켜주는 WakeLock이 있습니다.

android.os.PowerManager.WakeLock

자세한 설명은
http://developer.android.com/reference/android/os/PowerManager.WakeLock.html
이곳에 가셔서 확인해 볼 수 있습니다.

이것을 사용하는 방법은 간단히
PowerManager.WakeLock wakeLock = null;
//등록
if (wakeLock == null) {
	PowerManager powerManager = (PowerManager) context.getSystemService(context.POWER_SERVICE);
	wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "wakelock");
	wakeLock.acquire();
}
//해제
if (wakeLock != null) {
	wakeLock.release();
	wakeLock = null;
}

이렇게 하면 됩니다.

이 두가지를 유지시켜 준다면, 백그라운드로 실행을 하면서 대기 모드로 전환이 된다고 해도, 해당 어플이 죽거나 하는 일은 없겠지만, 그만큼 배터리 소모가 많아지기 때문에 안드로이드폰을 오래 사용할 수는 없겠지요.


반응형
반응형
모토로이 2.0.1에서 mp3 스트리밍 플레이가 제대로 안되었었죠...
PVMFPending?? 이런 오류가 계속 나왔었고. 어쩌다 한번 플레이 되면... 한곡만 재생되고
그 다음부턴 또 안되고 ㅎ
이랬었는데... 2.1로 업데이트 하고 나니... 거질말처럼 mp3 스트리밍이 제대로 되네요..
이전에는 mp3 스트리밍이 안되고.. aac스트리밍이 제대로 되었던... 아주 열받는 현상이 있어서
급하게 aac 서버를 다시 만들고.. 어쩌고 하는 걸 진행 했어야 했는데
지금... 너무 황당하고 그냥 어이없는...
os버그 였을까요.. 그냥 모토로이 버그 였을까요 ㅎ ㅎ
그래도 지금은 잘 되니...
반응형
반응형
이미지 효과로 이미지 크기의 절반을 반대 되는 이미지를 만들고,
그 반대된 이미지에 대해서는 반사 된 듯한 효과를 주는 소스 입니다.


package com.android.reflection2;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.Bitmap.Config;
import android.graphics.PorterDuff.Mode;
import android.graphics.Shader.TileMode;
import android.os.Bundle;
import android.widget.ImageView;

public class Reflection extends Activity {
	/** Called when the activity is first created. */

	ImageView view1;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		view1 = (ImageView) findViewById(R.id.ImageView01);

		Bitmap bitmapOriginal = BitmapFactory.decodeResource(getResources(),
				R.drawable.android);

		int nWidth = bitmapOriginal.getWidth();
		int nHeight = bitmapOriginal.getHeight();

		Matrix matrix = new Matrix();
		matrix.preScale(1, -1);

		Bitmap bitmapReflection = Bitmap.createBitmap(bitmapOriginal, 0,
				nHeight / 2, nWidth, nHeight / 2, matrix, false);

		Bitmap bitmapOrigianlAndReflection = Bitmap.createBitmap(nWidth,
				(nHeight + nHeight / 2), Config.ARGB_8888);

		Canvas canvas = new Canvas(bitmapOrigianlAndReflection);
		canvas.drawBitmap(bitmapOriginal, 0, 0, null);
		Paint deafaultPaint = new Paint();
		canvas.drawRect(0, nHeight, nWidth, nHeight + 5, deafaultPaint);
		canvas.drawBitmap(bitmapReflection, 0, nHeight + 5, null);

		Paint paint = new Paint();
		LinearGradient shader = new LinearGradient(0, bitmapOriginal
				.getHeight(), 0, bitmapOrigianlAndReflection.getHeight() + 5,
				0x70ffffff, 0x00ffffff, TileMode.CLAMP);
		paint.setShader(shader);
		paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
		canvas.drawRect(0, nHeight, nWidth, bitmapOrigianlAndReflection
				.getHeight() + 5, paint);

		view1.setImageBitmap(bitmapOrigianlAndReflection);
	}
}

결과 화면은 이런 식으로 나옵니다.



반응형
반응형

안드로이드에서 이미지 효과를 주는 방법으로 상하/좌우 반전 이미지를 만드는 방법에 대해서 설명해 보겠습니다.
처음에는 이런 효과를 만들 대... Image Processing을 해야 하는거 아닌지 고민을 하게 되었었는데.
친절하게도.. 안드로이드 SDK에 이런 효과를 주는 기능이 있었습니다.
찾아보면...다 나오더군요 ㅎㅎ

Matrix matrix = new Matrix();


이 클래스를 이요하여 효과를 주면 되겠습니다.

코드는.

//원본 이미지 Bitmap
Bitmap originalImg = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
//좌우반전 이미지 효과 및 Bitmap 만들기
Matrix sideInversion = new Matrix();
sideInversion.setScale(-1, 1);
Bitmap sideInversionImg = Bitmap.createBitmap(originalImg, 0, 0,
	originalImg.getWidth(), originalImg.getHeight(), sideInversion, false);

//상하반전 이미지 효과 및 Bitmap 만들기
Matrix updownInversion = new Matrix();
updownInversion.setScale(1, -1);
Bitmap updownInversionImg = Bitmap.createBitmap(originalImg, 0, 0,
	originalImg.getWidth(), originalImg.getHeight(), updownInversion, false);
		
imageView1.setImageBitmap(originalImg);
imageView2.setImageBitmap(sideInversionImg);
imageView3.setImageBitmap(updownInversionImg);

이렇게 하면 됩니다.
이걸 포스트를 만들다 보니... 안드로이드 Bitmap에 대해서 써야 하는거 아닌지 하는 생각이 들기도 하는구요.
이런식으로 했을 경우 결과 화면은

이런 결과 화면이 보이게 됩니다.
예제 소스도 첨부 합니다
참고하시기 바랍니다. :)


반응형
반응형

안드로이드에서 레이아웃을 만들 때 반투명 효과를 줄 필요가 있지요.
이미지에 alpha값을 넣어서는 그것을 backgound로 넣어서는 효과를 줄 수도 있지만,
Paint클래스에 있는 setAlpha라는 메소드를 이용해서 alpha값을 넣어서 반투명 효과를 줄 수가 있습니다.
레이아웃이나 다른 여러가지에도 반투명 효과는 동일하게 주어질 수 있는 것이죠.

방법은

Paint paint = new Paint();
paint.setColor(Color.Black);
paint.setAlpha(50);

이런식으로 객체를 만들어서 이것을 배경으로 사용하시면 됩니다.

결과 화면은

이런 화면이 만들어지게 됩니다.



반응형

+ Recent posts