但是如果想要像手機一樣彈出輸入法來測試時,必須修改Genymotion的設定
目前分類:Android (71)
- Sep 09 Tue 2014 13:29
Genymotion Android模擬器 無法彈出輸入法
在使用Genymotion Android來測試APP時,APP需要輸入資料,使用鍵盤直接keyin是沒有問題,
但是如果想要像手機一樣彈出輸入法來測試時,必須修改Genymotion的設定
但是如果想要像手機一樣彈出輸入法來測試時,必須修改Genymotion的設定
- Sep 04 Thu 2014 13:21
phonegap操作sqlite資料庫的範例(jQuery Mobile)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
<meta name="viewport" content="initial-scale=1, width=device-width" />
<title>測試</title>
</head>
<body>
<div data-role="page" id="myPage">
<div data-role="header" id="header_top">
<p class="text_center">資料庫測試</p>
</div>
<div data-role="content">
<div>
<button id="Btn01" ><h4>測試新增資料</h4></button>
<button id="Btn02" ><h4>資料顯示</h4></button>
<button id="Btn03" ><h4>刪除全部資料</h4></button>
</div>
<br />
<br />
<div>
<ul id="list01" data-role="listview">
</ul>
</div>
</div>
<div data-role="footer" id="footer_down">
<p class="text_center">0.1 alpha</p>
</div>
</div>
</body>
</html>
<!-- 引入必要的函式庫 -->
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
app.initialize();
</script>
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.4.3.min.css" />
<link rel="stylesheet" type="text/css" href="css/customer.css" />
<script src="js/jquery.js"></script>
<script src="js/jquery.mobile-1.4.3.min.js"></script>
<script type="text/javascript">
//產生新的Sqlite DB或連線到Sqlite DB,返回database object
function getDb(){
return window.openDatabase("testdb","1.0","This is Test DB" ,10000);
}
function fun_DB(e){
//下列被註解的語法在第二次執行時會錯誤,因為表格已被建立,所以要加上if not exists
//e.executeSql('create table demo01 (id unique,name,access)');
e.executeSql('create table if not exists demo01 (id,name,access)');
}
function error_DB(err) {
alert("錯誤了啦!" + err + "-- Code: " + err.code);
}
function success_DB() {
alert("成功了");
}
//查詢成功的話會回傳資料,如下以陣列變數results來接收
function querySuccess(tx,results){
var len = results.rows.length;
var i = 0 ;
alert(len);
//先清除網頁上的資料,.html會覆蓋原有的HTML語法
$("#list01").html("");
for (i=0; i<len; i++) {
//.append會將HTML語法附加到原有語法的後面
//results.rows.item(i).name的name是表格的欄位名稱
$("#list01").append("<li>" + results.rows.item(i).name + "</li>");
}
}
$(document).ready(function(){
//取得Sqlite DB object
var objdb= getDb();
//執行DB的transactiion
//第一個參數是執行的function,第二個參數是執行失敗的function,第三個參數是執行成功的function
objdb.transaction(fun_DB,error_DB,success_DB);
$("#Btn01").click(function(){
var db1 = getDb();
var v_id=1;
var v_name="John";
//[]內是要代入SQL中變數的值,SQL中的變數用「?」表示,
//所以最後的SQL是insert into demo01 values(1,John,"b")
db1.transaction(function(tx){
tx.executeSql('insert into demo01 values(?,?,"b")',[v_id,v_name]);
},error_DB,success_DB
);
});
$("#Btn02").click(function(){
var db1=getDb();
db1.transaction(
function(tx){
//[]是指要代入SQL的變數,例如:
//'select * from demo01 where id=? and name =? ',[myid,myname]
//querySuccess是執行Select成功後的function
tx.executeSql('select * from demo01',[],querySuccess,error_DB);
}
);
});
$("#Btn03").click(function(){
var db1=getDb();
db1.transaction(
function(tx) {
tx.executeSql('delete from demo01') ;
},error_DB,success_DB
);
});
});
</script>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
<meta name="viewport" content="initial-scale=1, width=device-width" />
<title>測試</title>
</head>
<body>
<div data-role="page" id="myPage">
<div data-role="header" id="header_top">
<p class="text_center">資料庫測試</p>
</div>
<div data-role="content">
<div>
<button id="Btn01" ><h4>測試新增資料</h4></button>
<button id="Btn02" ><h4>資料顯示</h4></button>
<button id="Btn03" ><h4>刪除全部資料</h4></button>
</div>
<br />
<br />
<div>
<ul id="list01" data-role="listview">
</ul>
</div>
</div>
<div data-role="footer" id="footer_down">
<p class="text_center">0.1 alpha</p>
</div>
</div>
</body>
</html>
<!-- 引入必要的函式庫 -->
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
app.initialize();
</script>
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.4.3.min.css" />
<link rel="stylesheet" type="text/css" href="css/customer.css" />
<script src="js/jquery.js"></script>
<script src="js/jquery.mobile-1.4.3.min.js"></script>
<script type="text/javascript">
//產生新的Sqlite DB或連線到Sqlite DB,返回database object
function getDb(){
return window.openDatabase("testdb","1.0","This is Test DB" ,10000);
}
function fun_DB(e){
//下列被註解的語法在第二次執行時會錯誤,因為表格已被建立,所以要加上if not exists
//e.executeSql('create table demo01 (id unique,name,access)');
e.executeSql('create table if not exists demo01 (id,name,access)');
}
function error_DB(err) {
alert("錯誤了啦!" + err + "-- Code: " + err.code);
}
function success_DB() {
alert("成功了");
}
//查詢成功的話會回傳資料,如下以陣列變數results來接收
function querySuccess(tx,results){
var len = results.rows.length;
var i = 0 ;
alert(len);
//先清除網頁上的資料,.html會覆蓋原有的HTML語法
$("#list01").html("");
for (i=0; i<len; i++) {
//.append會將HTML語法附加到原有語法的後面
//results.rows.item(i).name的name是表格的欄位名稱
$("#list01").append("<li>" + results.rows.item(i).name + "</li>");
}
}
$(document).ready(function(){
//取得Sqlite DB object
var objdb= getDb();
//執行DB的transactiion
//第一個參數是執行的function,第二個參數是執行失敗的function,第三個參數是執行成功的function
objdb.transaction(fun_DB,error_DB,success_DB);
$("#Btn01").click(function(){
var db1 = getDb();
var v_id=1;
var v_name="John";
//[]內是要代入SQL中變數的值,SQL中的變數用「?」表示,
//所以最後的SQL是insert into demo01 values(1,John,"b")
db1.transaction(function(tx){
tx.executeSql('insert into demo01 values(?,?,"b")',[v_id,v_name]);
},error_DB,success_DB
);
});
$("#Btn02").click(function(){
var db1=getDb();
db1.transaction(
function(tx){
//[]是指要代入SQL的變數,例如:
//'select * from demo01 where id=? and name =? ',[myid,myname]
//querySuccess是執行Select成功後的function
tx.executeSql('select * from demo01',[],querySuccess,error_DB);
}
);
});
$("#Btn03").click(function(){
var db1=getDb();
db1.transaction(
function(tx) {
tx.executeSql('delete from demo01') ;
},error_DB,success_DB
);
});
});
</script>
- Sep 04 Thu 2014 09:23
Phonegap 產生的Sqlite資料庫位置
以Phonegap的window.openDatabase產生了sqlite資料庫,但是它究竟是在哪裡,於是有了下列的測試。
用adb進入Android的命令列
c:\adb shell
用adb進入Android的命令列
c:\adb shell
- Sep 01 Mon 2014 13:40
Phonegap sqlite的存放位置(Genymotion Android模擬器)
例如:專案名稱為com.phonegap.helloworld,位置如下:
/data/data/com.phonegap.helloworld/app_webview/databases/
可以直接用sqlite3指令來查詢關係,例如Database名稱為Databases.db
sqlite3 Databases.db
/data/data/com.phonegap.helloworld/app_webview/databases/
可以直接用sqlite3指令來查詢關係,例如Database名稱為Databases.db
sqlite3 Databases.db
- Aug 28 Thu 2014 10:27
Android模擬器「Genymotion」,操作速度快可調整解析度
實在是受不了Android SDK的模擬器,開機非常慢,操作速度也很慢,所以就下載了另一套模擬器「Genymotion」。
Genymotion是以Oracle VirtualBox為平台所執行的虛擬機。測試的結果速度加快了許多,用adb安裝apk也沒有問題。
首先必須先在官網上註冊一個帳號,才能下載安裝檔及映象檔,這部份就依官網的註冊步驟完成它。
Genymotion是以Oracle VirtualBox為平台所執行的虛擬機。測試的結果速度加快了許多,用adb安裝apk也沒有問題。
首先必須先在官網上註冊一個帳號,才能下載安裝檔及映象檔,這部份就依官網的註冊步驟完成它。
- Aug 22 Fri 2014 15:37
Phonegap 3.5的第一次測試
Phonegap的安裝請參考「Apache Cordova 3.5(PhoneGap)for Android在Win7上的安裝」一文。
差別只在用npm安裝Cordova時,改為安裝phonegap,語法如下:
C:\> npm install -g cordova改為C:\> npm install -g phonegap
雖然在安裝的方式一樣,但是Phonegap與cordova還有有些地方不同,例如:config.xml的存在路徑就不一樣。
差別只在用npm安裝Cordova時,改為安裝phonegap,語法如下:
C:\> npm install -g cordova改為C:\> npm install -g phonegap
雖然在安裝的方式一樣,但是Phonegap與cordova還有有些地方不同,例如:config.xml的存在路徑就不一樣。
- Aug 19 Tue 2014 16:33
修改/更換 Android APK的預設圖示(APK Icon Editor)
官方網址:http://kefir500.github.io/apk-icon-editor/
由上述的網址進入並下載APK Icon Editor到自己的電腦,接著安裝它。
開啟後的主畫面如下,按下中間的空白處後選擇要修改的apk檔案:
由上述的網址進入並下載APK Icon Editor到自己的電腦,接著安裝它。
開啟後的主畫面如下,按下中間的空白處後選擇要修改的apk檔案:
- Aug 19 Tue 2014 16:08
線上一次製作Android APP的各種尺寸圖示
網址:http://romannurik.github.io/AndroidAssetStudio/icons-launcher.html
Android Developer在圖示上有好幾種固定的尺寸,每次要更改圖示時都要一張一張以影像編輯軟體調整,
原來網路上已經有一次產生多種尺寸圖示的網站。
Android Developer在圖示上有好幾種固定的尺寸,每次要更改圖示時都要一張一張以影像編輯軟體調整,
原來網路上已經有一次產生多種尺寸圖示的網站。
- Aug 19 Tue 2014 15:53
EZoApp 雲端開發Android APP(HTML5 to APP)
網址:http://www.ezoui.com/app/
EZoApp使用HTML5、jQuery Mobile技術,以瀏覽器直接在線上編輯APP程式,由中冠資訊開發出來。
以「拖拉元件」完成UI的設計,也可以直接撰寫程式讓APP有更多的功能,還可以匯出APK來讓手機安裝。
官方網站上有教學、也有範例,因為是台灣的資訊廠商,所以官方網站上全部都支援中文,
EZoApp使用HTML5、jQuery Mobile技術,以瀏覽器直接在線上編輯APP程式,由中冠資訊開發出來。
以「拖拉元件」完成UI的設計,也可以直接撰寫程式讓APP有更多的功能,還可以匯出APK來讓手機安裝。
官方網站上有教學、也有範例,因為是台灣的資訊廠商,所以官方網站上全部都支援中文,
- Aug 07 Thu 2014 11:50
Apache Cordova 3.5 建立有keystore的apk
Apache Cordova 預設是以debug來編譯apk,所以在cordova build android之後,
在platforms/android/ant-build內看到的都是[APP_NAME]-debug*.apk。
Debug模式其實也是有keystore,位置在C:\Users\[USER_NAME]\.android,名稱是debug.keystore
如果想製作有自己keystore的apk,則必須依下列的步驟。
在platforms/android/ant-build內看到的都是[APP_NAME]-debug*.apk。
Debug模式其實也是有keystore,位置在C:\Users\[USER_NAME]\.android,名稱是debug.keystore
如果想製作有自己keystore的apk,則必須依下列的步驟。
- Aug 04 Mon 2014 13:40
Apache Cordova 3.5(PhoneGap)for Android 第一次測試
- Aug 01 Fri 2014 14:39
Apache Cordova 3.5(PhoneGap)for Android在Win7上的安裝
安裝上有一些麻煩,有一些必要的軟體需安裝及設定需要注意,所以記錄下來。
1、安裝JAVA(JDK)
2、安裝Android SDK
3、安裝node.js
4、安裝Apache Ant
1、安裝JAVA(JDK)
2、安裝Android SDK
3、安裝node.js
4、安裝Apache Ant
- Jul 09 Wed 2014 11:48
App Inventer2 Label 多行字串
如果想在Label元件輸入多行字串,可以在每一個斷行處加上「/n」,例如:
- Jul 08 Tue 2014 17:16
App Inventor2 Web Viewer元件簡單測試
利用WebViewer來顯示網頁的資料,先將WebViewer元件增加到畫面上。
在事件「Initalize」設定好URL的網址,再呼叫WebViewer的GoHome函數,就可以把遠端網頁的內容顯示出來
- Jul 07 Mon 2014 11:20
App Inventor2 與PHP的傳值與傳回值(HTTP Post)
下圖是Designer的畫面,共有四個元件
Button1:確認
Button2:清除,把Label1設為88888
Label1:顯示值
web1:web元件,可以POST或GET
- Jul 02 Wed 2014 16:25
App Inventor 2與PHP的傳值與傳回值(HTTP Get)
- Feb 27 Thu 2014 09:17
adb install 安裝APK常見錯誤列表
INSTALL_FAILED_ALREADY_EXISTS | 程式已存在,表示已安裝過 |
INSTALL_FAILED_INVALID_APK | 無效的APK,重新下載試試 |
INSTALL_FAILED_INVALID_URI | 無效的連結 |
INSTALL_FAILED_INSUFFICIENT_STORAGE | 儲存空間不足 |
INSTALL_FAILED_DUPLICATE_PACKAGE | 已存在同名的程式 |
INSTALL_FAILED_NO_SHARED_USER | 共享用戶不存在 |
INSTALL_FAILED_UPDATE_INCOMPATIBLE | 版本不能共存 |
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE | 共享用戶簽名錯誤 |
INSTALL_FAILED_MISSING_SHARED_LIBRARY | 共享程式庫已遺失 |
INSTALL_FAILED_REPLACE_COULDNT_DELETE | 無效的共享程式庫 |
INSTALL_FAILED_DEXOPT | dex優化檢證失敗 |
INSTALL_FAILED_OLDER_SDK | 系統版本太舊 |
INSTALL_FAILED_CONFLICTING_PROVIDER | 存在同名的內容提供者 |
INSTALL_FAILED_NEWER_SDK | 系統版本太新 |
INSTALL_FAILED_TEST_ONLY | 調用者不被允許測試的測試程式 |
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE | 本機代碼不相容 |
CPU_ABIINSTALL_FAILED_MISSING_FEATURE | 使用一個無效的特性 |
INSTALL_FAILED_CONTAINER_ERROR | SD卡讀取失敗 |
INSTALL_FAILED_INVALID_INSTALL_LOCATION | 無效的安裝路徑 |
INSTALL_FAILED_MEDIA_UNAVAILABLE | SD卡不存在 |
INSTALL_FAILED_INTERNAL_ERROR | 系統問題導致安裝失敗 |
DEFAULT | 未知錯誤 |
- Jan 29 Wed 2014 10:54
解決紅米adb devices出現offline,新版adb(支援Android 4.2.2)下載
感謝親愛的老婆幫我標到紅米機,所以就把LG P713給換掉了。
4.7吋的螢幕看起來很舒服,畫質也很好,C/P值超高。
首先將紅米機的開發人員選項解開,預設是看不到它的。
進入手機「設定」後,選擇「關於手機」,連續按5次Android版本,就可以在「設定」內看見「開發人員選項」
4.7吋的螢幕看起來很舒服,畫質也很好,C/P值超高。
首先將紅米機的開發人員選項解開,預設是看不到它的。
進入手機「設定」後,選擇「關於手機」,連續按5次Android版本,就可以在「設定」內看見「開發人員選項」
- Jan 28 Tue 2014 14:01
紅米機的 Driver 在Win7 x64下安裝成功
- Dec 15 Sun 2013 23:07
ifive mini root說明及下載
記得要開啟USB偵錯模式,再將ifive mini關機,按下menu鍵後插入usb,會開機到安全模式(左下角會出現)
此時我的裝置會出現一個ifive的問號裝置,再安裝驅動程式。
官網下載的驅動程式是USB Storage(外接磁碟)的驅動程式,不是ADB Interface的驅動程式。
此時我的裝置會出現一個ifive的問號裝置,再安裝驅動程式。
官網下載的驅動程式是USB Storage(外接磁碟)的驅動程式,不是ADB Interface的驅動程式。