1

Androidブラウザを使用してWebベースのモバイルアプリケーションをテストするためだけにAndroidエミュレータを実行したいので、OSX(10.7.4)にAndroid SDK(リビジョン20.0.3)をインストールしました。

SDKをダウンロードし、パッケージ更新マネージャーなどを実行してから、GUIを介して2.2用のAndroid仮想デバイスをセットアップすると、エミュレーターを正常に起動できますが、入力にまったく応答しないようです。UIタッチスクリーンまたはキーボード/ホーム/メニューボタンなどをクリックしましたが、Androidエミュレーターが応答しません。ブラウザを開くことも、何もすることもできません。誰かが問題が何であるかを提案できますか?

どんな助けでもいただければ幸いです。

4

1 に答える 1

-3

通常の Jquery.js ファイルの代わりに、標準 Javascript ライブラリの代わりに Zepto.js を含めてみましたか?

遅い Android Emulator に光を当てる軽量パッケージであるため、応答がはるかに高速です。

クリック イベントをテストし、クリック応答を高速化するには、fwebdev の fastclick.js を含めます。

どちらも機能しない場合は、Dolphin Browser を試してください: https://play.google.com/store/apps/details?id=mobi.mgeek.TunnyBrowser&hl=en

https://gist.github.com/2168307

//======================================================== FASTCLICK
function FastButton(element, handler) {
    this.element = element;
    this.handler = handler;
    element.addEventListener('touchstart', this, false);
};
FastButton.prototype.handleEvent = function(event) {
    switch (event.type) {
       case 'touchstart': this.onTouchStart(event); break;
       case 'touchmove': this.onTouchMove(event); break;
       case 'touchend': this.onClick(event); break;
       case 'click': this.onClick(event); break;
    }
 };
FastButton.prototype.onTouchStart = function(event) {
    event.stopPropagation();
    this.element.addEventListener('touchend', this, false);
    document.body.addEventListener('touchmove', this, false);
    this.startX = event.touches[0].clientX;
    this.startY = event.touches[0].clientY;
    isMoving = false;
 };
FastButton.prototype.onTouchMove = function(event) {
    if(Math.abs(event.touches[0].clientX - this.startX) > 10 || Math.abs(event.touches[0].clientY - this.startY) > 10) {
       this.reset();
    }
 };
FastButton.prototype.onClick = function(event) {
    this.reset();
    this.handler(event);
    if(event.type == 'touchend') {
       preventGhostClick(this.startX, this.startY);
    }
 };
FastButton.prototype.reset = function() {
    this.element.removeEventListener('touchend', this, false);
    document.body.removeEventListener('touchmove', this, false);
};
function preventGhostClick(x, y) {
    coordinates.push(x, y);
    window.setTimeout(gpop, 2500);
};
function gpop() {
    coordinates.splice(0, 2);
};
function gonClick(event) {
    for(var i = 0; i < coordinates.length; i += 2) {
       var x = coordinates[i];
       var y = coordinates[i + 1];
       if(Math.abs(event.clientX - x) < 25 && Math.abs(event.clientY - y) < 25) {
          event.stopPropagation();
          event.preventDefault();
       }
    }
};
document.addEventListener('click', gonClick, true);
var coordinates = [];
function initFastButtons() {
    new FastButton(document.getElementById("fastclick"), goSomewhere);
};
function goSomewhere() {
    var theTarget = document.elementFromPoint(this.startX, this.startY);
    if(theTarget.nodeType == 3) theTarget = theTarget.parentNode;
    var theEvent = document.createEvent('MouseEvents');
    theEvent.initEvent('click', true, true);
    theTarget.dispatchEvent(theEvent);
};
//========================================================

//When using jQuery call init on domReady-Event
$(document).ready(function() {
initFastButtons();
})
于 2012-11-10T04:43:40.170 に答える