Temp

cucumber
robitium
bitbar
aapt
monkey

AAPT - Android Asset Packaging Tool

  1. Usage:  
  2.  aapt l[ist] [-v] [-a] file.{zip,jar,apk}  
  3.    List contents of Zip-compatible archive.  
  4.   
  5.  aapt d[ump] WHAT file.{apk} [asset [asset ...]]  
  6.    permissions      Print the permissions from the APK.  
  7.    resources        Print the resource table from the APK.  
  8.    configurations   Print the configurations in the APK.  
  9.    xmltree          Print the compiled xmls in the given assets.  
  10.    xmlstrings       Print the strings of the given compiled xml assets.  
  11.   
  12.  aapt p[ackage] [-f][-u][-m][-v][-x][-M AndroidManifest.xml] \  
  13.         [-I base-package [-I base-package ...]] \  
  14.         [-A asset-source-dir] [-P public-definitions-file] \  
  15.         [-S resource-sources] [-F apk-file] [-J R-file-dir] \  
  16.         [raw-files-dir [raw-files-dir] ...]  
  17.   
  18.    Package the android resources.  It will read assets and resources that are  
  19.    supplied with the -M -A -S or raw-files-dir arguments.  The -J -P -F and -R  
  20.    options control which files are output.  
  21.   
  22.  aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...]  
  23.    Delete specified files from Zip-compatible archive.  
  24.   
  25.  aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 ...]  
  26.    Add specified files to Zip-compatible archive.  
  27.   
  28.  aapt v[ersion]  
  29.    Print program version.  
  30.   
  31.  Modifiers:  
  32.    -a  print Android-specific data (resources, manifest) when listing  
  33.    -c  specify which configurations to include.  The default is all  
  34.        configurations.  The value of the parameter should be a comma  
  35.        separated list of configuration values.  Locales should be specified  
  36.        as either a language or language-region pair.  Some examples:  
  37.             en  
  38.             port,en  
  39.             port,land,en_US  
  40.        If you put the special locale, zz_ZZ on the list, it will perform  
  41.        pseudolocalization on the default locale, modifying all of the  
  42.        strings so you can look for strings that missed the  
  43.        internationalization process.  For example:  
  44.             port,land,zz_ZZ  
  45.    -d  one or more device assets to include, separated by commas  
  46.    -f  force overwrite of existing files  
  47.    -j  specify a jar or zip file containing classes to include  
  48.    -m  make package directories under location specified by -J  
  49.    -u  update existing packages (add new, replace older, remove deleted files)  
  50.    -v  verbose output  
  51.    -x  create extending (non-application) resource IDs  
  52.    -z  require localization of resource attributes marked with  
  53.        localization="suggested"  
  54.    -A  additional directory in which to find raw asset files  
  55.    -F  specify the apk file to output  
  56.    -I  add an existing package to base include set  
  57.    -J  specify where to output R.java resource constant definitions  
  58.    -M  specify full path to AndroidManifest.xml to include in zip  
  59.    -P  specify where to output public resource definitions  
  60.    -S  directory in which to find resources  
  61.    -0  don't compress files we're adding

Android instruction and Android Emulator parameter

  • Android模擬器命令列啟動模式
    在android-sdk-windows-1.1\tools執行emulator以執行模擬器
    加上-skin參數,指定顯示模式為HVGA-L,則可轉為橫向
    emulator - skin HVGA-L (480*320,水平顯示)
    emulator - skin HVGA-L (320*480,垂直顯示,模擬器預設模式)
    emulator - skin HVGA-L (320*240,水平顯示)
    emulator - skin HVGA-L (240*320,垂直顯示)


  • 使用mksdcard指令模擬1GB的記憶卡
    mksdcard 1024M sacard.img

  • 模擬插入 SD 卡的模擬器
    emulator - sdcard sdcard.img

  • 使用 adb+push 上載檔案到SD記憶卡
    adb push 001.jpg /sdcard (複製檔案到 /sdcard 目錄下)
    adb push pictures /sdcard (複製 picture 照片目錄到 /sdcard 目錄下)
    adb push mp3 /sdcard (複製 mp3 音樂目錄到 /sdcard 目錄下)
    adb shell (Android 模擬器啟動命令列模式)
    #cd /sdcard (進入 /sdcard 目錄)
    #ls (查看 SD 記憶卡中的檔案) 


  • 使用 adb+pull 從 SD 記憶卡下載檔案
    adb pull /sdcard/001.jpg . (下載 /sdcard 目錄下的檔案)
    adb pull /sdcard/pictures . (下載 sdcard 目錄下的 pictures 目錄)


  • 刪除 SD 卡裡面的檔案
    adb shell
    #ced /sdcard
    #rm 001.jpg (刪除 SD 記憶卡裡的檔案)
    #rm -r * (刪除 SD 記憶卡裡所有檔案與目錄)


  • Android模擬器影片播放方法
    mksdcard 4096M video.img (製作一個影像檔的 SD 記憶卡)
    adb push video.avi /sdcard (從電腦複製影像檔到 SD 卡中)
    emulator -sdcard video.img (啟動模擬器並載入 SD 卡)

    下載免費的影片播放軟體,ex: Meridian Video Player (iiivpa.apk)
    http://sites.google.com/site/eternalsandbox/Home/meridian-video-player
    adb install iiivpa.apk (安裝Meridian Video Player)
    接下來就可以用裝上去的player播放.mp4、3gp與.wmv三種檔案格式

  • 安裝 APK 應用程式
    adb install filename.apk (安裝filename.apk)
    adb install -r filename.apk (保留已設定資料,重新安裝filename.apk)
    adb -s emulator-5554 install filename.apk (指定安裝 APK 套件在 5554 的 Android 模擬器中)


  • 移除 APK 應用程式
    adb uninstall package
    adb uninstall -k package (移除程式時,保留資料)

    此package名稱不是安裝APK套裝時的檔名或顯示在模擬器中的應用程式名稱
    可以先到/data/data或data/app目錄下,查詢想移除的package名稱
    adb shell
    ls /data/data 或 /data/app (查詢 Package 名稱)
    exit
    adb uninstall package (移除查詢到的 Package)


  • ADB 系統除錯與連結工具
    $adb devices (顯示目前有多少個模擬器正在執行) 
    $adb -s (指定模擬器來操作)
    adb -s emulator-5554 install email.apk

    $adb install apkfile (安裝 APK 應用程式套件)
    adb install email.apk
    $adb uninstall package (移除 APK 應用程式套件)
    adb uninstall com.android.email

    $adb shell (進入 Android 系統指令列模式)
    $ls
    $dmesg (查看 Android Linux Kernel 運作訊息)

    ls - 顯示檔案目錄
    cd - 進入目錄
    rm - 刪除檔案
    mv - 移動檔案
    mkdir - 產生目錄
    rmdir - 刪除目錄

    $adb push (複製檔案到 SD 卡)
    adb push mp3 /sdcard
    $adb pull . (從 Android 系統下載檔案)
    adb pull /data/app/com.android.email

    $adb logcat (監控模擬器運作紀錄,以Ctrl + c 離開監控模式)
    $adb bugreport (產生 adb 除錯報告)
    $adb get-state (獲得 adb 伺服器運作狀態)
    $adb start-server (啟動 adb 伺服器)
    $adb kill-server (關掉 adb 伺服器)

    $adb forward tcp:6100 tcp:7100 (更改模擬器網路 TCP 通訊埠)
    $adb shell ps -x (顯示 Android 上所有正在執行的行程)
    $adb version (顯示 adb 版本)
    $adb help (顯示 adb 指令參數)

  • Emulator 命令列啟動參數
    emulator -timezone Asia/Taipei (指定時區)
    emulator -no-boo-anim (省略開機小機器人動畫畫面)
    emulator -scale auto (調整模擬器視窗大小)
    emulator - scale factor (factor: 0.1-3.0)

    emulator -dpi-device 300 (更改模擬器的解析度,default為 165dpi)
    emulator -skin (更改模擬器顯示模式) 
    emulator -help-keys (顯示鍵盤快速鍵說明)
    emulator -shell (相當於adb shell 功能)
    emulator -data data.img (使 /data 目錄使用 data.img 的檔案空間)
    emulator -sdcard sdcard.img (使 /sdcard 目錄使用 sdcard.img 的檔案空間)
    emulator -cache cache.img (瀏覽器暫存檔儲存空間)

    emulator -wipe-data (使模擬器恢復到原廠設定)
    emulator -help (顯示 emulator 指令參數)
  • 大鎖

    被幹走了~~~
    拿走他意義在哪??
    我心愛的大鎖!!!

    使用 cscope + ctags + taglist 來閱讀sourcecode

    ctags + taglist

    1) Install ctags

    $   sudo apt-get install exuberant-ctags

    2)Download and install taglist
    https://sourceforge.net/projects/ctags/files/
    http://vim-taglist.sourceforge.net/

    $   unzip taglist_45.zip
    #it will generate plugin and doc

    $   mv plugin/   ~/.vim
    $   mv doc/   ~/.vim

    3)turn on/off the taglist in vim

    $   sudo vim /etc/vim/vimrc

    Add the following line:

    map <f9> :Tlist<CR>


    4)check the target directory and create the tags

    $   ctags -R *.c *.h

    OR

    $   find 'pwd' -type f -name "*.[ch]" -o -name "*.cc" -o -name "*.[sS]"  | sed -e 's/^/"/' -e 's/$/"/' | xargs /usr/bin/ctags -a

    5)Open the vim and press F9
    #The window will divide by two part, use the Ctrl-W-W to switch the window
    #The left window: Jump to the correspond function or definition
    #The right window:
       Ctrl+]:Jump to function implement position, the cursor should be the function name's front
       Ctrl+t:return to the original position

    cite:http://stenlyho.blogspot.com/2008/11/ubuntuvim-plugin-ctagstaglist.html

    Cscope




    Call Graph
    CCTree: http://www.vim.org/scripts/script.php?script_id=2368

    網站壓力測試

    AppPerfect Load Tester


    http://www.appperfect.com/products/load-test.html

    * detect the form's domain name *

    表單的action都會先偵測是不是從他們主機域名出來的:
    如果他們已設定111.com , 
    那麼從你的網站222.com 發出去的表單是會被禁止的!
    可能表面上已經送出去,但是他們不會收到!!

    Top 25 Most Dangerous Software Errors

    1 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') 
    2 Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') 
    3 Buffer Copy without Checking Size of Input ('Classic Buffer Overflow') 
    4 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') 
    5 Missing Authentication for Critical Function 
    6 Missing Authorization 
    7 Use of Hard-coded Credentials 
    8 Missing Encryption of Sensitive Data 
    9 Unrestricted Upload of File with Dangerous Type 
    10 Reliance on Untrusted Inputs in a Security Decision 
    11 Execution with Unnecessary Privileges 
    12 Cross-Site Request Forgery (CSRF) 
    13 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') 
    14 Download of Code Without Integrity Check 
    15 Incorrect Authorization 
    16 Inclusion of Functionality from Untrusted Control Sphere 
    17 Incorrect Permission Assignment for Critical Resource 
    18 Use of Potentially Dangerous Function 
    19 Use of a Broken or Risky Cryptographic Algorithm 
    20 Incorrect Calculation of Buffer Size 
    21 Improper Restriction of Excessive Authentication Attempts 
    22 URL Redirection to Untrusted Site ('Open Redirect') 
    23 Uncontrolled Format String 
    24 Integer Overflow or Wraparound 
    25 Use of a One-Way Hash without a Salt

    Legal Document Type Declarations

    http://www.chweng.idv.tw/w3cguide/htmladvanced/declarations.php

    文件類型聲明(Document Type Declarations)

    在你每一個頁面的頂端,你需要文件聲明。是的,必須。
    如果不指定文件類型,你的HTML不是合法的HTML,並且大部分瀏覽器會用“怪癖模式(quirks mode)”來處理頁面,這意味著瀏覽器認為你自己也不知道究竟在做什麼,並且按瀏覽器自己的方式來處理你的原始碼。你可以是一個HTML大師,在地球上打遍天下無敵手,或者你的HTML可以無瑕疵,CSS可以很完美,但如果沒有文件聲明,或者錯誤的文件聲明,你的網頁與一個短視的,獨眼的長臂猿嬰兒十分艱難地堆砌起來的沒兩樣。
    XHTML 1.0 Strict(嚴格)的文件聲明是這樣的:

    下面的是XHTML 1.1的文件聲明,作為XHTML的最新版本,看起來更完美,但還是有一些問題,隨後我們會稍微講解……


    "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    如果你不願放棄HTML 4或者你還有Netscape 4死忠用戶,你可以使用XHTML 1.0 Transitional(過渡):


    "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    你使用這的唯一理由是你還要相容老版本的、少用的瀏覽器。過渡XHTML 1.0允許HTML 4的表現元素,其也可能在如Netscape 4的瀏覽器中表現更好。但使用這些元素將對你網頁的效率和可用性有害。
    最後,如果你是使用框架的怪人之一,可以使用像下面一樣的XHTML 1.0 Frameset(框架)文件類型聲明:


    "-//W3C//DTD XHTML 1.0 Frameset//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
    注意DOCTYPE標籤必須大寫和前置一個英文半型驚嘆號!。它是唯一一個打破規則的標籤,它不需要關閉。

    語言聲明(Language Declarations)

    即使HTTP頭或者在html起始標籤內設置了xml:lang屬性,你也必須為文件指定一個主要語言。儘管處理一個合法的XHTML文件這不是必須的,但也是一個易用性的考慮。值是縮寫的,比如en(English,英語)、fr(French,法語)、de(German,德語)或者mg(Malagasy,這是什麼語?譯者也不知道,呵呵。——譯者注)。
    聲明一個主要用英語內容的文件,例子是這樣的:


    xml:lang="en">
    在聲明主要語言之後,假如還需要使用其他語言,你還可以在內聯中使用xml:lang屬性(比如HTML Hund)。

    內容類型(Content Types)

    HTML文件的媒體類型和字體集也許要指定,可以使用HTTP header來完成,比如:
    Content-Type: text/html; charset=UTF-8
    HTTP header的第一部分(如text/html)是文件MIME類型,讓瀏覽器知道文件的媒體類型因此可以知道怎麼處理。所有的文件都有MIME類型。JPEG圖片是image/jpeg,CSS文件是text/css和HTML一般使用text/html
    HTTP header的第二部分(如UTF-8部分)是字元集。
    也許設置HTTP header的最簡易方法是在HTML中使用“HTTP同義(HTTP-equivalent)”的head標籤,像這樣:


    http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    些微複雜當然也更好的方法是使用伺服器端腳本語言來發送header。用php的話,你可以這樣做:


    header("Content-Type: text/html; charset= UTF-8"); ?>
    如果你不願意(或不能)使用伺服器端腳本語言,你也許可以直接給伺服器設置一個“.htaccess”文件。大部分伺服器(Apache相容)可以在根目錄使用一個“.htaccess”的小文字文件,寫入下面的內容,你就可以把所有副檔名為“html”的文件都與MIME類型和字元集關聯:
    AddType text/html;charset=UTF-8 html
    字元集包括大部分西方基於拉丁文語言的“ISO-8859-1”,日語的“SHIFT_JIS”,簡體中文的“GB18030”和UTF-8,一個 Unicode Transformation Format版本,提供大範圍的多種語言的單個字元。基本上,你應該使用一個你知道的,能為你使用者清楚認知的字元集。除非你使用基於拉丁語的語言(包括英語,ISO-8859-1被普遍接受的),你應該使用UTF-8,因為它可以顯示大多數語言的大多數字元,使用它也是安全的,因為它可以在大部分的電腦上使用。

    注意

    XHTML應該當作application/xhtml+xml的MIME類型來使用,再清楚不過,這是XML程序。不幸的是,大部分瀏覽器對這沒有第一線索,所以,一般認為使用text/html的MIME類型是不錯的。根據W3C的建議Web Standards Project的強詷,調味的XHTML 1.0也許可以作text/html使用,但XHTML 1.1不應該。這也是本站以XHTML 1.0 Strict(嚴格)作為例子的原因。假定text/html的MIME類型。但是你仍然可以(或許不應該)為它們設置正確的MIME類型給瀏覽器,輕微的調整一下伺服器端即可。
    這個網站使用PHP為XHTML 1.1設置application/xhtml+xml的MIME類型給那些能夠理解和處理這個類型的瀏覽器(如Mozilla),為XHTML 1.0 Strict設置text/html給其他瀏覽器(如IE)。為每一個頁面的頂部加入如下代碼:


    if(stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")){
    header("Content-Type: application/xhtml+xml; charset=UTF-8");
    echo('');
    } else {
    header("Content-Type: text/html; charset=UTF-8");
    echo ('');
    }
    ?>
    這些檢查確認瀏覽器是否接受application/xhtml+xml的MIME類型,如果接受,就發送這個MIME類型並把XHTML 1.1文件類型寫到HTML中。如果這個MIME類型不被接受,就發送text/html的MIME類型並把XHTML 1.0 Strict(嚴格)的文件類型寫入HTML。
    除了你知道你正在做著正確的事情和為自己準備將來的路的平和想法外,最直接的益處就是,使用這個方法,Mozilla瀏覽器把你的文件當作XML程式對待並且如果你的XHTML還沒有抓癢,就是說不合式的,Mozilla就不會工作。然後你就可以除錯了,而不需要用校驗器來檢驗你的文件了。



    DOCTYPE使用方法

    DOCTYPE 切換運作的方式:
    • 若有完整 URI 的 XHTML DOCTYPE,則切到標準模式,用 W3C 規則來讀網頁裡的 CSS 與 XHTML。
    • 若有不完整或過時的 DOCTYPE 或沒有 DOCTYPE,就切成相容模式,
      用傳統方法來處理網頁。
    完整的長得像這樣,會讓瀏覽器切到標準模式:
    "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    這是 XHTML 1.0 Strict DOCTYPE,還有 Transitional 跟 Frameset DOCTYPE。

    不完整的像這樣,會切到相容模式:"/DTD/xhtml1-strict.dtd">
    兩者差異只在於前者用絕對路徑,後者用相對路徑。
    當然,這是個正確的網址,你可以連去下載到該份 DTD,可是瀏覽器看到它時,不會真的去下載這 DTD,它只是用來判斷要切換成哪種模式罷了。
    (另,IE 並不守規矩,網頁中只要出現 XHTML DOCTYPE,不論是否是完整網址,IE 都會切成標準模式。 但為了其他瀏覽器,建議還是用完整路徑)
    (但,就算有完整路徑,只要網頁開頭有 這東東,稱為 XML Prolog,IE6就會切成相容模式 =.=)




    以下列出各 DTD。


    XHTML 1.0 Strict
    可讓所有支援 DOCTYPE 的瀏覽器切成標準模式
    但是對 Opera 7.0 之前的版本,或 IE6 之前的版本無效。
    "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    XHTML 1.0 Transitional
    讓 IE6+/Win 及 IE5+/Mac 切成標準模式。
    使第一代 Gecko 瀏覽器(Mozilla 1.0Netscape 6)切成標準模式。
    使第二代 Gecko 瀏覽器(Mozilla 1.01Netscape7+Chimera 0.6+)切成
    近乎標準模式。
    對 Opera 7.0 之前的版本,或 IE6 之前的版本無效。
    "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    XHTML 1.0 Frameset 讓 IE6+/Win 及 IE5+/Mac 切成標準模式。
    使第一代 Gecko 瀏覽器(Mozilla 1.0Netscape 6)切成標準模式。
    使第二代 Gecko 瀏覽器(Mozilla 1.01Netscape7+Chimera 0.6+)切成
    近乎標準模式。
    對 Opera 7.0 之前的版本,或 IE6 之前的版本無效。
    "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
    XHTML 1.1此規格等同於 Strict,可讓所有支援 DOCTYPE 的瀏覽器切成標準模式
    但是對 Opera 7.0 之前的版本,或 IE6 之前的版本無效。
    "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">
    HTML 4.01 Strict
    會讓 IE 切成標準模式,新版的 Gecko 切成近乎標準模式。
    "
    http://www.w3.org/TR/html4/strict.dtd">
    但若用完整的 HTML 4.0 DOCTYPE,卻會使 IE 跟 Gecko 切成相容模式!
    所以講了這麼多,目前的最佳解就是採用 XHTML (Transitional)。

    PHP,Ecommerce

    Magento:
    看了這篇文章後:
    Which Shopping Cart Should I use?
    http://www.itwebexperts.com/oscommerce_zencart_xcart_comparison.php
    它下面的功能列表幾乎都是 yes,osCommerce很多 no,
    有中文論壇,不過是簡體的。
    而且裝起來後,覺得…真的很慢。
    在自己 local 端的電腦上跑也這麼慢,有點誇張。
                                                                                 
    osCommerce
    這個應該是最流行的吧。市面上有好幾本中文書。
    google 也有好幾篇文章。不過驚訝的是,連一個中文論壇都沒有!!!
    Magento 是有論壇,沒有書,osCommerce是有書,沒論壇 !!!!!
                                                                                 
    UberCart
    官方網站說"中文翻譯檔未全部完成".
    使用者網站的人不一定英文都很ok,
    加上這個沒有書,也沒有論壇。所以…應該不會用這個。

    Time and Patience

    Time and Patience ,  Patience and Time .

    藍契斯特法則(Lanchester's Law)


    藍氏法則主要包含以下要素:
       1、營銷力量的基本分配關係。根據經濟界和管理界的研究分析,企業以最低成本獲得最高利潤的前提條件是戰略力與戰術力的比例至少為2:1.這決定了企業營銷戰略中營銷力的基本分配關係。企業應以此比例為指導原則配置營銷戰略力與營銷戰術力,分配營銷力量和營銷資源,避免偏重戰術而忽視戰略和只注重短期利益而忽視長遠利益的偏頗,創造最優成本——利潤組合。營銷戰略力屬於看不見的決策範圍,包括品牌企業形象產品開發價格廣告營銷渠道等;而營銷戰術力則指看得見的可直接溝通的銷售力,諸如銷售組織、推銷方式、終端促銷銷售人員素質等方面。
       2、“三·一”理論與占有率的目標管理競爭雙方戰鬥力的關係在局部戰中發展到了3:1,機率戰中達到1.732:1,弱者反敗為勝已不可能。該比值範圍稱為射程距離。當兩競爭對手之間市場佔有率之比超過射程距離時,弱方應及時放棄經營,保存實力,另闢蹊徑。該模式還提供了市場佔有率的目標管理指標,包括上限目標、下限目標和相對安全指標。上限目標為73.88%,此時不論對手的個數和實力,佔有率平均在該公司的射程距離之外,所以該指標構成市場獨占條件。26.12%是市場佔有率的下限目標,即使此時公司的市場佔有率名列榜首,也極不穩定,隨時有受到進攻的可能,它是劣勢的上限。當市場佔有率達到41.7%時,企業進入相對安全圈,這是各企業參與競爭的首要目標。
       3、第一位主義。在射程距離內,為提高市場佔有率,企業必須盡力創造第一位置。這包括:第一位的商品,如新產品或差異化產品;第一位的零售定貨率,這是流通戰略中最關鍵的步驟;第一位地域,即將市場細分後,逐個擊破,從各區域第一進而追求整體佔有率的第一。根據藍氏法則,強者與弱者戰略實施的優先順序不同。實力弱的公司宜開展局部戰,方向為區域→進貨率→商品,先限定區域創造據點,將易銷商品集中,以地域進攻為先決條件而實力較強的企業,其戰略順序正好相反,方向為商品→進貨率→區域,即通過有力的商品作為戰略武器,展開大規模總體進攻,擊破弱者支配的地域,從而最終實現第一位地域。這種根據實力決定戰略排序的方法,已被國外企業廣泛運用。
       4、三點攻戰略。企業在發展某一區域市場時,首先按照自然的和人為的地理條件、人口集中度、人口移動規律等情況對區域進行細分,隨後選擇可連成三角形包圍該區域的三個最有利點,個個攻破,使佔有率達到40%的相對安全值。面積形成後,從三個方向向最終目標的正中央推進,使競爭對手瓦解在空中的環形區域中。此法又稱點、線、面法則,它提供了區域戰略的基本原理和實施步驟。
       5. 競爭目標與攻擊目標。在爭奪市場的競爭戰中,強者多處於守勢,而弱者趨向於進攻。防守與進攻的戰略互不相同,因此首先應區分攻擊目標和競爭目標。比自己實力強的是攻擊目標,反之為競爭目標。對攻擊目標應採用差異化戰略進行攻擊,通過品牌形象、技術工藝、產品性能顧客服務的獨特性來提高市場佔有率;而對競爭目標則應用防守戰略,密切注意對方行動意圖,搶先實施模仿戰術,擾亂對方計劃。在這裡,確立雙方戰略態勢是採取恰當戰略的首要步驟。
       6、強者與弱者的差異。實力弱小的公司在戰略上應以一對一為中心,創造單打獨鬥的戰略區域和戰略性產品,避免以所有產品和所有區域為目標。選定特定的階層對象,展開局部戰鬥,以點的反敗為勝,連線為面,取得最終勝利。
       7、地位差異戰略。營銷過程中,必須考慮企業在產業和市場中的位置。在許多攻擊目標中,首先集中力量對付射程範圍內的足下之敵,避免多方樹敵。第一位企業應經常推出新產品,並及時了解第二位可能的差異化戰略,從而在時間上搶先一步。所以,其情報能力、情報管理制度和開發創新能力,是維持企業地位的關鍵。第二位的企業必須以獨創性開闢生存空間,通過差異化一決勝負。總之,各類企業應結合具體產品的地區、流通特性,靈活運用各種戰略。