這個認證計畫主要是讓使用者能對網路行銷有進一步的了解,由網路行銷的領導品牌Google AdWords來做認證。
相關介紹:官方介紹頁、1111人力銀行介紹頁 (說明文件)
其實,這次主要是參加「Google AdWords Challenge 活動」然後去上了兩天的密集培訓課程......說真的挺累的,一天五個小時,上完馬上考兩個小時的試。
在這邊跟大家分享一些上課的重點整理,和考試的小叮嚀。
Google AdWords 基本考試:文件檢視
Google AdWords 進階考試(搜尋聯播網):文件檢視
基本考試,其實只要一些基本名詞有讀熟,就會通過 85% 門檻,然後AdWords說明中心的內容有看熟就可以了。(總共95題。120分鐘)
進階考試(搜尋聯播網),裡面考了一些很活用的實際案例,和一些真實的計算題(雖然我放掉了幾題),然後很著重各項的工具介紹,所以每個工具在做什麼,一定要很熟,並且在廣告操作上,建議每個分頁都去點點看,或者自己實際去創建一個廣告熟悉一下,還有下載AdWords編輯器來實際操作看看。(總共100題。120分鐘)
然後以下是一些重點內容:
Google 認證計劃學習中心 連結
網上小學堂 連結 (這邊的每個影片都看看吧!會對實際操作有不錯的了解)
詞彙解釋 連結 (這邊的每個名詞,一定要讀熟,因為考題有時會問他們的定義)
入門手冊 連結
考題範例 連結
最後小叮嚀,由於AdWords考試是可以翻閱紙本文件和筆記的,但是依照經驗,如果每一題都翻翻找找,兩個小時其實會翻不太完,畢竟題目有點多,但是有不確定的幾題再來翻翻的話,時間上是允許的。還有AdWords考試是要用專門的瀏覽器,考試期間會佔住所有視窗,可別想做其他事啊~~~
2013年7月29日 星期一
2013年5月6日 星期一
[Android][JAVA] Android 與 PC JAVA 間的 Socket 連線(Android Client Java Server)
要讓 Android 與一般的 Java 程式透過網路溝通,我們最習慣的是使用 Socket 來做連線,而使用一般的 java 寫法可能會發現無法建立連線。
Java Server
因為兩端皆須透過 Thread 使用額外的執行緒來處理建立連線這塊,可以參考以下的做法:
(本範例僅供連線通訊端的程式碼,並無做加密的控制)
Android Clientpackage com.example.androidclient;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
static EditText ed;
static TextView tv1,tv2;
static Button btn ;
static String str1="0",str2="0";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//先建立好與XML的元件連結
ed = (EditText) findViewById(R.id.edt);
tv1 = (TextView) findViewById(R.id.show01);
tv2 = (TextView) findViewById(R.id.show02);
btn = (Button) findViewById(R.id.btn);
//撰寫一個按鈕事件,當按下按鈕時,才啟動一些功能
btn.setOnClickListener(new OnClickListener()
{public void onClick(View arg0)
{
//建立 thread 的物件
Thread t = new thread();
//啟動thread
t.start();
try {
//先讓他等待個 3 秒
t.sleep(3000);
} catch (InterruptedException e) {}
//之後在讓它顯示在銀幕上,有時網路不夠穩時,傳輸會較慢,而導致傳誦與接收都尚未完成,便顯示到銀幕上了
tv1.setText(str1);
tv2.setText(str2);
}});
}
class thread extends Thread{
public void run() {
try{
System.out.println("Waitting to connect......");
String server=ed.getText().toString();
int servPort=1025;
Socket socket=new Socket(server,servPort);
InputStream in=socket.getInputStream();
OutputStream out=socket.getOutputStream();
System.out.println("Connected!!");
byte[] rebyte = new byte[18];
in.read(rebyte);
str2 ="(Client端)接收的文字:"+ new String(new String(rebyte));
String str = "android client string";
str1 = "(Client端)傳送的文字:"+str;
byte[] sendstr = new byte[21];
System.arraycopy(str.getBytes(), 0, sendstr, 0, str.length());
out.write(sendstr);
}catch(Exception e)
{
System.out.println("Error: "+e.getMessage());
}
}
}
}
Java Server
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class jSer extends Thread {
public static void main(String[] argv) {
Thread t = new thread();
t.start();
}
}
class thread extends Thread{
public void run() {
try{
System.out.println("Waitting to connect......");
ServerSocket servSock=new ServerSocket(1025);
Socket clntSock=servSock.accept();
InputStream in=clntSock.getInputStream();
OutputStream out=clntSock.getOutputStream();
System.out.println("Connected!!");
String str = "java server string";
System.out.println("(Server端)傳送的字串:"+str);
byte[] sendstr = new byte[18];
System.arraycopy(str.getBytes(), 0, sendstr, 0, str.length());
out.write(sendstr);
byte[] re = new byte[21];
in.read(re);
String s = new String(re);
System.out.println("(Server端)接收的字串:"+s);
}catch(Exception e)
{
System.out.println("Error: "+e.getMessage());
}
}
}
專案檔下載:file
2013年4月11日 星期四
[JAVA] Sun JAVA 認證考試官方教材 (Oracle適用)
全名:Sun Certified Java Programmer
簡稱:SCJA (後改 OCPJA)
官方教材:SL-110
及格分數:(我不知道QQ)
心得:其實這張可以不用考,它裡面僅包含基礎概念。
全名:Oracle Certified Professional Java Programmer
原名:SCJP (後改 OCPJP)
官方教材:SL-275
及格分數:61%
心得:這張是普遍業界面試門檻的證照,考試內容涵蓋整個JAVA SE 的內容,還蠻扎實的。
全名:Sun Certified Web Component Developer
原名:SCWCD (後改 OCWCD)
官方教材:SL-314
及格分數:72%
心得:(還沒去考) 這張主要是進階考試,需要有SCJP才可參與此考試,內容涵蓋到JAVA EE & Servlet 的內容。
----------------------2014.03.01更新----------------------
在昨天(2/28)考完OCPJWCD,簡單的分享一下
這張認證老實說沒有特別的難(相較於OCPJP),畢竟他的內容主要侷限於網頁這塊領域,相較於OCPJP的內容,就比較廣了,從程式邏輯到檔案I/O都有。麻煩的是OCPJWCD的進階考試,及格分數比OCPJP高一些,72%及格,所以要讀熟一點倒是真的。
簡稱:SCJA (後改 OCPJA)
官方教材:SL-110
及格分數:(我不知道QQ)
心得:其實這張可以不用考,它裡面僅包含基礎概念。
全名:Oracle Certified Professional Java Programmer
原名:SCJP (後改 OCPJP)
官方教材:SL-275
及格分數:61%
心得:這張是普遍業界面試門檻的證照,考試內容涵蓋整個JAVA SE 的內容,還蠻扎實的。
全名:Sun Certified Web Component Developer
原名:SCWCD (後改 OCWCD)
官方教材:SL-314
及格分數:72%
心得:
----------------------2014.03.01更新----------------------
在昨天(2/28)考完OCPJWCD,簡單的分享一下
這張認證老實說沒有特別的難(相較於OCPJP),畢竟他的內容主要侷限於網頁這塊領域,相較於OCPJP的內容,就比較廣了,從程式邏輯到檔案I/O都有。麻煩的是OCPJWCD的進階考試,及格分數比OCPJP高一些,72%及格,所以要讀熟一點倒是真的。
2013年4月8日 星期一
[Android] Candy Crush 愛心用不完~
從 Facebook 蔓延要手機平台的火紅遊戲:Candy Crush !!!
只是它有些限制,如果沒有愛心了,就要在稍等一些時間才能繼續玩下去了,挖勒QQ
不過之前和同學討論後,它仍有一些正常程序的漏洞 =______=+
APP名稱:Candy Crush Saga
費用:免費應用程式
Google Play 資訊:連結
以下供大家參考看看:
Step1:
愛心沒有了,還要等十分鐘才能玩,那麼來作弊一下吧,嘿嘿!

Step2:
先到「設定」的「應用程式」裡面,找到「Candy Crush Saga」這支程式。
將它強制停止。(其實就是在停止它背後的計時執行序)
Step3:
來到時間設定這邊,先把「網路校時」的功能取消,手動去設定時間。
Step4:
往後調大概三個小時多即可。(半小時一顆愛心)
Step5:
回到遊戲,即可回到五顆全滿的狀態。
補充:
平時調的時候,僅需要把時間往後調即可,可先不用到「設定」>「應用程式」將「Candy Crush Saga」強制停止,除非真的失效,才需要將它停止。
(這支程式防作弊的功能沒有寫在這邊。不過它移動步數的數值,有防作弊去修改它,所以還是乖乖玩就好,哈哈)
只是它有些限制,如果沒有愛心了,就要在稍等一些時間才能繼續玩下去了,挖勒QQ
不過之前和同學討論後,它仍有一些正常程序的漏洞 =______=+
APP名稱:Candy Crush Saga
費用:免費應用程式
Google Play 資訊:連結
以下供大家參考看看:
Step1:
愛心沒有了,還要等十分鐘才能玩,那麼來作弊一下吧,嘿嘿!

Step2:
先到「設定」的「應用程式」裡面,找到「Candy Crush Saga」這支程式。
將它強制停止。(其實就是在停止它背後的計時執行序)
Step3:
來到時間設定這邊,先把「網路校時」的功能取消,手動去設定時間。
Step4:
往後調大概三個小時多即可。(半小時一顆愛心)
Step5:
回到遊戲,即可回到五顆全滿的狀態。
補充:
平時調的時候,僅需要把時間往後調即可,可先不用到「設定」>「應用程式」將「Candy Crush Saga」強制停止,除非真的失效,才需要將它停止。
(這支程式防作弊的功能沒有寫在這邊。不過它移動步數的數值,有防作弊去修改它,所以還是乖乖玩就好,哈哈)
2013年4月6日 星期六
TQC+ 物件導向程式語言 (Java6) 考試心得分享
筆者從 2012.04 開始學JAVA歷經了一年的時間,期間不免想測試一下自己的學習效果。
於是在 2012.10 去參與了第一次的TQC+ JAVA6考試,那時真的是太小看它了,它的考題真的是很活耶!!跟題庫的題目真的是「 不 太 一 樣 耶 !!」,連難度真的也不太一樣O_Q
於是那次的考試大概解一半的題目就沒時間了,也是因為那次讓筆者有動力來撰寫解題密技
經過了幾個月後,筆者突然需要JAVA的證照(原本不太想考的說,就是怕沒準備好),於是在2013.03再度去挑戰,也在前幾天成績揭曉了,可真是開心啊~沒有白白投資了。不過這次在準備的過程中,翻到之前寫的code......這是啥= ="
砍 掉 重 練 比 較 快 !! 這 解 法 .......(delete......)
大概跟大家分享一下兩次的考試有哪些題號有出現(題目只能說跟題庫類似,但解法不一定一樣)
209 沒什麼改。
30x (忘了)
402 數字不一樣。(那時筆者還不知道什麼是遞迴,就用迴圈解了,當然,錯!)
50x (忘了)
604 當時只解到它的第二小題,就沒時間了QQ
210 指示輸入的字元不同罷了。
303 沒什麼改。
401 沒什麼改。(考卷題目答案有錯= =)
508 未排序的陣列數字不一樣,請確定排序的方法任何數據皆可用。
604 還真幸運,又是這題,但是這題請小心,它算較為偏難的題目,整題的數據跟題庫完全不一樣,方法會有不同,並且注意 double 和 int 之間轉換時,小數點造成的誤差。
寫完加檢查完,大概還有3分鐘多一點。
結論:請把書本題庫的難度 x1.5倍看待吧~然後基本上,題庫分類為易的,好像沒什麼考耶!!
於是在 2012.10 去參與了第一次的TQC+ JAVA6考試,那時真的是太小看它了,它的考題真的是很活耶!!跟題庫的題目真的是「 不 太 一 樣 耶 !!」,連難度真的也不太一樣O_Q
於是那次的考試大概解一半的題目就沒時間了,也是因為那次讓筆者有動力來撰寫解題密技
經過了幾個月後,筆者突然需要JAVA的證照(原本不太想考的說,就是怕沒準備好),於是在2013.03再度去挑戰,也在前幾天成績揭曉了,可真是開心啊~沒有白白投資了。不過這次在準備的過程中,翻到之前寫的code......這是啥= ="
砍 掉 重 練 比 較 快 !! 這 解 法 .......(delete......)
大概跟大家分享一下兩次的考試有哪些題號有出現(題目只能說跟題庫類似,但解法不一定一樣)
2012.10:
110 考試改成計算Android 人偶的面積。209 沒什麼改。
30x (忘了)
402 數字不一樣。(那時筆者還不知道什麼是遞迴,就用迴圈解了,當然,錯!)
50x (忘了)
604 當時只解到它的第二小題,就沒時間了QQ
2013.03:
104 原本是算使用者輸入的兩個座標距離,考試會提供第三個座標(1,1)並個別到該點的距離,並比較誰比較遠。210 指示輸入的字元不同罷了。
303 沒什麼改。
401 沒什麼改。(考卷題目答案有錯= =)
508 未排序的陣列數字不一樣,請確定排序的方法任何數據皆可用。
604 還真幸運,又是這題,但是這題請小心,它算較為偏難的題目,整題的數據跟題庫完全不一樣,方法會有不同,並且注意 double 和 int 之間轉換時,小數點造成的誤差。
寫完加檢查完,大概還有3分鐘多一點。
結論:請把書本題庫的難度 x1.5倍看待吧~然後基本上,題庫分類為易的,好像沒什麼考耶!!
2013年4月5日 星期五
[JAVA] 字串 相加 相減
在JAVA中,我們要將兩個字串相加是非常容易的事情,僅需要一個「+」號便可將兩個字串串起來,但字串要相減可沒這麼容易。
我們可以利用 substring 這個方法來達到相減的效果
JAVA檔下載:file
我們可以利用 substring 這個方法來達到相減的效果
public class stringaddsub {
public static void main(String[] args)
{
String a = "I am living ";
System.out.println("A字串內容:"+a);
String b = "in Taipei.";
System.out.println("B字串內容:"+a);
String a_add_b = a+b;
System.out.println("A+B字串內容:"+a_add_b);
//要減掉的部分在前面的做法
//利用substring擷取a字串長度後的字串
String a_add_b_sub_a = a_add_b.substring(a.length());
System.out.println("\nA+B字串 減 A字串:"+a_add_b_sub_a);
//要減到的部分在後面的做法
////利用substring擷取從 0 到 a字串的字串
String a_add_b_sub_b = a_add_b.substring(0,a.length());
System.out.println("\nA+B字串 減 B字串:"+a_add_b_sub_b);
}
}
JAVA檔下載:file
2013年3月8日 星期五
[JAVA] 隨機長度的陣列
在製作密碼學的程式時,最常遇到的功能不免是加密與解密,但是其實加密時有時為了其安全性,每次產生的byte[]陣列長度不一定會一樣,所以在程式碼裡面,我們無法將他的陣列長度寫死。
以下介紹此方法,可以彈性的存儲陣列與還原陣列:
JAVA檔下載:file
以下介紹此方法,可以彈性的存儲陣列與還原陣列:
public class debyte {
public static void main(String[] args)
{
String str1 = "qwertyuiop3456";
//假設這個字串每次產生出來byte[]陣列長度每次都不同
byte[] byt1 = str1.getBytes();
//我們先取得他的長度(此方法較為彈性,這樣可以每次皆取得該陣列的長度)
int byt1LN = byt1.length;
//我們先來宣告一個較長的陣列
byte[] solongbyte = new byte[5000];
//然後將byt1陣列寫入這個陣列中(我們從位置0開始寫),長度也一併寫進去(我們從位置4900開始寫)
System.arraycopy(byt1, 0, solongbyte, 0, byt1LN);
//先把長度值轉換成byte[]寫入
System.arraycopy(String.valueOf(byt1LN).getBytes(), 0, solongbyte, 4900, String.valueOf(byt1LN).getBytes().length);
System.out.println("======還原測試======");
//還原方法參數介紹:原文的第一個位置,原文長度的第一個位置,要解開的陣列
byte[] backtest = getB(0,4900,solongbyte);
System.out.println(new String(backtest));
}
//ini起始讀取值得位置,ls讀取該數值長度的起始位置,byte[]要拆解的陣列
public static byte[] getB(int initial,int ls,byte[] Len400)
{
int pl=0;
int le = ls +5;
for(int i=ls;i<le;i++)
{
int temp = (int)Len400[i];
if(temp == 0)
{
pl=i;
break;
}
}
pl = pl - ls;
byte[] plb = new byte[pl];
System.arraycopy(Len400, ls, plb, 0, pl);
int reback_plen = Integer.parseInt(new String(plb));
byte[] backp = new byte[reback_plen];
System.arraycopy(Len400, initial, backp, 0, reback_plen);
return backp;
}
}
JAVA檔下載:file
訂閱:
文章 (Atom)





