2012年4月13日金曜日
Error: ShouldNotReachHere()
Android プロジェクトにソースをコピーしてコンパイル単位名を変更したら下のようなエラーが出た
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (classFileParser.cpp:3494), pid=2444, tid=2592
# Error: ShouldNotReachHere()
#
# JRE version: 6.0_27-b07
# Java VM: Java HotSpot(TM) Client VM (20.2-b06 mixed mode windows-x86 )
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
androidアプリケーションとして実行すればいいようです。
2012年3月27日火曜日
中国製タブレットA70を買ってみた
カメラが2つあって、Bluetoothもある端末が欲しかったので買ってみた。
日本語には出来ないようです。
充電器のプラグも使えない。
動作は軽く問題ない
充電が出来ない?
| Display: 7" 800*480 capacitive multi-touch OS: Android2.3 CPU: MT6573 Dual Core 800MHz Memory: Nand Flash:4GBit;DDR:2GBit 3G: GSM+WCDMA Dual SIM Dual Standby Camera: Dual camera,front 0.3MP / Rear 2.0MP GPS: built in GPS Working time: 4-6hours Wi-Fi 802.11b/g/n speaker: Dual speakers SIM card slot: dual SIM card slot-WCDMA+GSM | |
| CPU | MT6573 dual core(ARM11 650M+Modem ARM7 280M) |
| RAM | 512MB DDR2 |
| ROM | 4GB (Maximum Support 32GB Micro sd card) |
| OS | Google Android 2.3 |
| Camera | dual camera, face 0.3M, front 2.0M mega pixel, flashlight |
| Wifi | IEEE 802.11 b/g/n |
| GPS | Built-in |
| Bluetooth | B/T 2.1 + EDR |
| 3G | Dual SIM card, WCDMA+GSM |
| TV | Analog TV, Support NTSC/PAL TV-Out |
| FM Radio | Built-in FM redio |
| Sensor | 3D G-sensor, Magnetic induction sensor, temperature sensor, Ambient light sensor |
| Battery | 4200mAh removable lithium ion battery |
| working time | 4-6 hours; standby time Longer |
| 1/O ports | 1* 3.5mm stereo headphone jack |
| 1*DC-in jack | |
| 2*SIM card | |
| 1*TF card | |
| 1*Mini USB slot | |
| DISPLAY | 7 inch 800x480 pixel, 178° Viewing |
| 5 points Multi touch capacitive screen | |
| Game | Built in PPC game, support PPC 3D games,JAVA,simulation game |
| Audio | MP3,Stereo output,dual speakers |
| mp3,wav,ogg,amr,midi,support MP3 calling ring, dual loudspeaker output | |
| Video | H.264 Encoder: baseline CIF @ 30fps/2mbps. |
| 3GP,MP4,AVI,ASF,WMV,support AVI/MP4/3GP/ASF/RM,full screen broadcast,support fast forward, fast reverse/pause | |
| Photo | JPEG, PNG, BMP, GIF etc. |
| Application software | MSN, Skype, Gmail, Google map, ebook, ect |
| Language | Multi Language |
| Weight | NW: 420g; GW: 850g |
| Size | 19cm*12cm*1cm |
| Packing | color box; 23*14*7cm |
| Accessories | 1 * Lithium battery 1 * User Manual 1 * USB transfer cable 1 * Earphone 1 * Screen Protector |
2012年3月20日火曜日
eee pc を使ってwifiデバッグ
USB ケーブルでのつなげ方がわからないのでネット経由でデバッグする。
アンドロイド端末(eee pc)での設定
1.アプリケーションメニューの「提供元不明のアプリ」の許可にチェックを入れる。
2.開発メニューの「USBデバッグ」「スリープモードにしない」にチェックを入れる。
3.Dev Toolsアプリを起動してDevelopment SettingsメニューのWait for debuggerにチェックを入れる。
パソコン側の設定
実行->実行構成 でデバッグする端末を選べるようにしておく。
ターゲットタブで手動操作を選択する。
コマンドプロンプトを開く
android SDK の場所のplatform-tools で次のコマンドを打つ(パスを通していないので)
adb connect 192.168.24.68
IPアドレス(Android端末)の部分は私の環境の場合
実行ボタンを押す、
IPアドレスで設定した端末を選択する。
アプリが端末に送られる。
参考
IPアドレスは、Wi-Fi 設定画面から確認できる。
画面のスナップショットはDDMSから撮れる。
接続されているディバイス一覧を表示する場合
adb devises
接続されているディバイスの切断
adb disconnect IPアドレス
コマンドが長いのでバッチファイルを作ってダブルクリックで接続できるようにしておく
追記:
adb connect 192.168.24.68
上記コマンドを打つ前に
コマンドプロンプトで adb tcpip 5555 を実行する
offlineになった時の対処
E:\softNotInstall\android-sdks\platform-tools>adb devices
List of devices attached
0123456789ABCDEF offline
E:\softNotInstall\android-sdks\platform-tools>adb kill-server
E:\softNotInstall\android-sdks\platform-tools>adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
E:\softNotInstall\android-sdks\platform-tools>adb devices
List of devices attached
0123456789ABCDEF device
2012年3月18日日曜日
asus eee pc 4G にアンドロイドをインストール
eee pc のハードディスクにインストール
イメージのダウンロード先
Android-x86 - Porting Android to x86
android-x86-4.0-RC1-eeepc.isoをダウンロードしてきた。
ダウンロードしたイメージをUSBメモリに書き込む
USBからブート出来る様に
UNetbootin を使って書き込む。
起動時にF2キーを押す。
boot メニューを開く
Hard Disk Drives を選んでエンターキーを押す
1st Drive に USBメモリを選択する(USB:BUFFALO USB F1)
エスケープで戻る
Boot Device Priority を選んでエンターキーを押す
1st Boot Device で [USB:BUFFALO USB F1] を選ぶ
エスケープで戻る
exit で保存して終了
再起動
メッセージにしたがってインストール
Android バージョン 4.0.3がインストールされた。
インストールしても再起動したら、osが見つからないとメッセージが出る。
ブートローダを入れて同じ、
パーティション選択時にハードディスクをlinuxのイメージに変更してから、
インストールしたらブートローダが起動してアンドロイドを選択できた。
マーケット(Google Play)も利用できた。
Wifi も利用できた。
ブラウザでホームページも見れた。
キーボードのレイアウトが違うようだ。
これで、使い道の無かったeee pcも少しは役立ちそうです。
2012年3月10日土曜日
カメラ映像の録音・録画:Android
package com.camera_test0;
import java.io.File;
import java.io.IOException;
import java.util.List;
import android.os.Environment;
import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Size;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
public class CameraTest0Activity extends Activity {
/** Called when the activity is first created. */
private Camera myCamera;
private SurfaceView mySurfaceView;
private boolean isRecording;
private MediaRecorder mediaRecorder;
private SurfaceHolder v_holder;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mySurfaceView = (SurfaceView) findViewById(R.id.surfaceView1);
SurfaceHolder holder = mySurfaceView.getHolder();
holder.addCallback(mSurfaceListener);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
myCamera = getCameraInstance();//
}
private SurfaceHolder.Callback mSurfaceListener = new SurfaceHolder.Callback() {
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
try {
myCamera.setPreviewDisplay(holder);
} catch (Exception e) {
e.printStackTrace();
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
//myCamera.release();
//myCamera = null;
myCamera.setPreviewCallback(null);
myCamera.stopPreview();
myCamera.release();
myCamera = null;
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
v_holder = holder; // SurfaceHolderを保存
myCamera.stopPreview();
Camera.Parameters parameters = myCamera.getParameters();
List<Size> asizeSupport = parameters.getSupportedPreviewSizes();
//一番小さいプレビューサイズを利用
Size size = asizeSupport.get(asizeSupport.size() - 1);
parameters.setPreviewSize(size.width,size.height);
Log.d("size1", "w=" + String.valueOf(width) + "h=" + String.valueOf(height));//
Log.d("size2", "w=" + String.valueOf(size.width) + "h=" + String.valueOf(size.height));//
LayoutParams paramLayout;
paramLayout = mySurfaceView.getLayoutParams();
paramLayout.width = size.width;
paramLayout.height = size.height;
mySurfaceView.setLayoutParams(paramLayout);
// camera.setDisplayOrientation(90);// カメラを回転
//List<Camera.Size> size = parameters.getSupportedPreviewSizes();
//Log.d("カメラのサイズ", "w=" + String.valueOf(size.get(0).width) + "h=" + String.valueOf(size.get(0).height));//
//parameters.setPreviewSize(size.get(0).width, size.get(0).height);
// myCamera.setParameters(parameters);
myCamera.startPreview();//
}
};
public void click(View v) {
// 録画中でなければ録画を開始
if (!isRecording) {
initializeVideoSettings(); // MediaRecorderの設定
// myRecorder.start(); // 録画開始
isRecording = true; // 録画中のフラグを立てる
// 録画中であれば録画を停止
} else {
mediaRecorder.stop(); // 録画停止
mediaRecorder.reset(); // 無いとmediarecorder went away with unhandled
// events が発生
mediaRecorder.release();//
mediaRecorder = null;
//myCamera.lock();
//myCamera.release(); // release the camera for other applications
//myCamera = null;
isRecording = false; // 録画中のフラグを外す
}
}
private void initializeVideoSettings() {
// TODO 自動生成されたメソッド・スタブ
try {
//myCamera = getCameraInstance();
mediaRecorder = new MediaRecorder();
//mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
//mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myCamera.unlock();
mediaRecorder.setCamera( myCamera );
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); // 録画の入力ソースを指定
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // ファイルフォーマットを指定
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); // ビデオエンコーダを指定
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
//CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
//mediaRecorder.setProfile(profile);
mediaRecorder.setVideoFrameRate(15); // 動画のフレームレートを指定
mediaRecorder.setVideoSize(320, 240); // 動画のサイズを指定
File folder = Environment.getExternalStorageDirectory();
File file;
file = File.createTempFile("sample20110603", ".mp4", folder);//
//mFile = Environment.getExternalStorageDirectory().getAbsolutePath();
mediaRecorder.setOutputFile(file.getAbsolutePath());
mediaRecorder.setPreviewDisplay(v_holder.getSurface());//
mediaRecorder.prepare();
mediaRecorder.start();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
private Camera getCameraInstance() {
// TODO 自動生成されたメソッド・スタブ
Camera c = null;
try {
c = Camera.open( 1 ); // attempt to get a Camera instance
}
catch (Exception e){
// Camera is not available (in use or does not exist)
}
return c; // returns null if camera is unavailable
}
}
参考サイト:
Androidで簡単なカメラアプリを作る
ソフトウェア技術ドキュメントを勝手に翻訳 c.3 カメラ
登録:
投稿 (Atom)







