目前分類:Android (71)

瀏覽方式: 標題列表 簡短摘要
在使用Genymotion Android來測試APP時,APP需要輸入資料,使用鍵盤直接keyin是沒有問題,
但是如果想要像手機一樣彈出輸入法來測試時,必須修改Genymotion的設定
img_004

img_005

keven 發表在 痞客邦 留言(0) 人氣()

<!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>

keven 發表在 痞客邦 留言(0) 人氣()

以Phonegap的window.openDatabase產生了sqlite資料庫,但是它究竟是在哪裡,於是有了下列的測試。

用adb進入Android的命令列
c:\adb shell

keven 發表在 痞客邦 留言(0) 人氣()

例如:專案名稱為com.phonegap.helloworld,位置如下:
/data/data/com.phonegap.helloworld/app_webview/databases/

可以直接用sqlite3指令來查詢關係,例如Database名稱為Databases.db
sqlite3 Databases.db

keven 發表在 痞客邦 留言(0) 人氣()

實在是受不了Android SDK的模擬器,開機非常慢,操作速度也很慢,所以就下載了另一套模擬器「Genymotion」。
Genymotion是以Oracle VirtualBox為平台所執行的虛擬機。測試的結果速度加快了許多,用adb安裝apk也沒有問題。
img_001

首先必須先在官網上註冊一個帳號,才能下載安裝檔及映象檔,這部份就依官網的註冊步驟完成它。

keven 發表在 痞客邦 留言(0) 人氣()

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的存在路徑就不一樣。

keven 發表在 痞客邦 留言(0) 人氣()

官方網址:http://kefir500.github.io/apk-icon-editor/

由上述的網址進入並下載APK Icon Editor到自己的電腦,接著安裝它。

開啟後的主畫面如下,按下中間的空白處後選擇要修改的apk檔案:

keven 發表在 痞客邦 留言(1) 人氣()

網址:http://romannurik.github.io/AndroidAssetStudio/icons-launcher.html

Android Developer在圖示上有好幾種固定的尺寸,每次要更改圖示時都要一張一張以影像編輯軟體調整,
原來網路上已經有一次產生多種尺寸圖示的網站。

keven 發表在 痞客邦 留言(0) 人氣()

網址:http://www.ezoui.com/app/

EZoApp使用HTML5、jQuery Mobile技術,以瀏覽器直接在線上編輯APP程式,由中冠資訊開發出來。
以「拖拉元件」完成UI的設計,也可以直接撰寫程式讓APP有更多的功能,還可以匯出APK來讓手機安裝。
官方網站上有教學、也有範例,因為是台灣的資訊廠商,所以官方網站上全部都支援中文,

keven 發表在 痞客邦 留言(0) 人氣()

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,則必須依下列的步驟。

keven 發表在 痞客邦 留言(0) 人氣()



1、建立一個專門放專案的資料夾
c:\ mkdidr test_hello

keven 發表在 痞客邦 留言(0) 人氣()

安裝上有一些麻煩,有一些必要的軟體需安裝及設定需要注意,所以記錄下來。
1、安裝JAVA(JDK)
2、安裝Android SDK
3、安裝node.js
4、安裝Apache Ant

keven 發表在 痞客邦 留言(0) 人氣()

如果想在Label元件輸入多行字串,可以在每一個斷行處加上「/n」,例如:
img_007
img_008

keven 發表在 痞客邦 留言(0) 人氣()

利用WebViewer來顯示網頁的資料,先將WebViewer元件增加到畫面上。
img_008  
 
 
在事件「Initalize」設定好URL的網址,再呼叫WebViewer的GoHome函數,就可以把遠端網頁的內容顯示出來

keven 發表在 痞客邦 留言(0) 人氣()

下圖是Designer的畫面,共有四個元件
Button1:確認
Button2:清除,把Label1設為88888
Label1:顯示值
web1:web元件,可以POST或GET

keven 發表在 痞客邦 留言(0) 人氣()

首先設計一個簡單的PHP程式,並且將程式傳到支援PHP的網站空間上去。
例如網址空間:http://test.ccc.com.tw/

PHP檔名:test.php

keven 發表在 痞客邦 留言(0) 人氣()

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 未知錯誤

keven 發表在 痞客邦 留言(0) 人氣()

感謝親愛的老婆幫我標到紅米機,所以就把LG P713給換掉了。
4.7吋的螢幕看起來很舒服,畫質也很好,C/P值超高。

首先將紅米機的開發人員選項解開,預設是看不到它的。
進入手機「設定」後,選擇「關於手機」,連續按5次Android版本,就可以在「設定」內看見「開發人員選項」

keven 發表在 痞客邦 留言(0) 人氣()

試了幾個Driver,這個Driver可以成功安裝在Win7 x64中,所以記錄下來以備用

驅動程式位置如下:
按我下載

keven 發表在 痞客邦 留言(0) 人氣()

記得要開啟USB偵錯模式,再將ifive mini關機,按下menu鍵後插入usb,會開機到安全模式(左下角會出現)

此時我的裝置會出現一個ifive的問號裝置,再安裝驅動程式。

官網下載的驅動程式是USB Storage(外接磁碟)的驅動程式,不是ADB Interface的驅動程式。

keven 發表在 痞客邦 留言(0) 人氣()