咖啡伴侶

          呆在上海
          posts - 163, comments - 156, trackbacks - 0, articles - 2

          Android 2.1 API變更概要:
          Live Wallpapers 動態(tài)桌面
          以下增加的API可以提供你開發(fā)動態(tài)的桌面:
          · android.service.wallpaper.
          · WallpaperInfo.
          · 升級的WallpaperManager.

          附加說明, 如果你的應(yīng)用相提供Live Wallpapers的功能, 你必須記得增加一個 <uses-feature> 元素到你的應(yīng)用manifest里面. 宣布這個屬性android:name="android.software.live_wallpaper". 舉例:<uses-feature android:name="android.software.live_wallpaper" />


          電話

          · 新的SignalStrength 類提供當(dāng)前網(wǎng)絡(luò)信號的一些信息這些信息可以從onSignalStrengthsChanged(SignalStrength) 回調(diào).


          · 新的onDataConnectionStateChanged(int, int) 回調(diào).
          Views
          · 新的View 方法isOpaque()onDrawScrollBars(Canvas).
          · 新的RemoteViews 方法addView(int, RemoteViews)removeAllViews(int).

          · 新的ViewGroup 方法isChildrenDrawingOrderEnabled()setChildrenDrawingOrderEnabled(boolean).


          WebKit
          · 新的WebStorage 方法操作網(wǎng)頁數(shù)據(jù)緩存.
          · 新的GeolocationPermissions 方法獲取 Geolocation permissions 的出處, 把他們設(shè)置到 WebView.
          · 新的WebSettings 方法管理軟件緩存, 網(wǎng)頁緩存 和屏幕的縮放.
          · 新的WebChromeClient 方法處理視頻, 歷史記錄, 自定義view, 軟件緩存限制還有其他

          Android 2.0.1 API變更概要:
          · 新的快速聯(lián)系人標(biāo)記風(fēng)格(quickContactBadgeStyle)* 屬性,讓應(yīng)用的QuickContactBadge 組件接收必要的風(fēng)格.
          · 當(dāng)在manifest里面宣布了filter,取消了支持 ACTION_CONFIGURATION_CHANGED 廣播 ,如果想要去接收這個廣播, 這個應(yīng)用必須注冊 registerReceiver(BroadcastReceiver, IntentFilter).
          性能上的改變:
          Bluetooth
          改變了 ACTION_REQUEST_ENABLEACTION_REQUEST_DISCOVERABLE的返回值
          · ACTION_REQUEST_ENABLE 如果藍(lán)牙是成功開啟的,現(xiàn)在返回RESULT_OK .如果使用者拒絕開啟藍(lán)牙的請求,則會返回RESULT_CANCELED .
          · ACTION_REQUEST_DISCOVERABLE 如果使用者拒絕啟動藍(lán)牙或者藍(lán)牙的可發(fā)現(xiàn)功能,則返回 RESULT_CANCELED .
          通訊
          The ACTION_INSERT Intent returns RESULT_CANCELED in cases where the contact was not persisted (例如剪切保存到一個空的操作里面).
          修復(fù)錯誤:
          資源
          現(xiàn)在framework可以正選擇應(yīng)用資源的根據(jù)API等級劃分的文件夾(drawable-v4API level4版本用的資源).現(xiàn)在的版本這個功能不能正常工作的問題已經(jīng)修復(fù).
          Contacts
          The ACTION_INSERT Intent now returns the appropriate kind of URI when the request is made using the (now deprecated) Contacts APIs.
          Other Framework fixes
          · getCallingPackage() 現(xiàn)在正確的報(bào)告包名, 而不是進(jìn)程名.

          Android 2.0 API變更概要:
          Bluetooth
          · 開啟關(guān)閉藍(lán)牙
          · 設(shè)備和服務(wù)發(fā)現(xiàn)
          · 使用 RFCOMM連接一個可插拔的設(shè)備收發(fā)數(shù)據(jù)
          · 公布RFCOMM 服務(wù)和監(jiān)聽接收 RFCOMM 連接
          Sync adapters
          · 新的APIs, 同步橋接器連接任何backend
          Account Manager
          · 集中的帳戶管理器 API ,安全的儲存和使用可信的tokens/passwords
          Contacts
          · 新的通信APIs 允許獲取多個賬戶的數(shù)據(jù).
          · 新的快速通信framework APIs 允許開發(fā)者在他們的應(yīng)用中創(chuàng)建通信標(biāo)記, 一鍵點(diǎn)擊標(biāo)記打開一個新的窗口展示一個如何聯(lián)系當(dāng)前人的列表.
          WebView
          · 不贊成使用的類: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.
          Camera
          · 顏色模式, 場景模式 閃光模式, 焦點(diǎn)模式, 白平衡 旋轉(zhuǎn)和其他設(shè)置的新的特征.
          · 當(dāng)縮放級別改變的時候,會回調(diào)新的縮放回調(diào)接口.
          Media
          · MediaScanner現(xiàn)在為所有圖片生成縮微圖when they are inserted into MediaStore.
          · 新的縮微圖 API : 檢索需要的圖片和視頻的縮微圖.
          Other Framework
          · android.R.style 中新的系統(tǒng)主題,能夠更加簡單的顯示當(dāng)前acitivities的系統(tǒng)壁紙或者保持之前的activity在后臺.新的壁紙管理器API 取代并且增加了wallpaper APIs ,我們可以允許我們的應(yīng)用要求設(shè)置系統(tǒng)壁紙.
          · 新的Service APIs幫助應(yīng)用準(zhǔn)確的處理Service 生命周期 ,在指定的低內(nèi)存狀態(tài)下service將會被關(guān)閉.
          o Service.setForeground() 不推薦使用,并且現(xiàn)在這個方法并沒有實(shí)際執(zhí)行. .他被一個新的API所取代, startForeground(), that helps (and requires) associating an ongoing notification with the foreground state.
          · MotionEvent 如果設(shè)備允許的話,MotionEvent 會返回多點(diǎn)觸摸信息.最多可同時獲取3點(diǎn)
          · KeyEvent 現(xiàn)在有了新的按鍵發(fā)送 APIs,去幫助實(shí)現(xiàn) action-on-up 和長按鍵行為, 一個新的機(jī)制取消按鍵 (虛擬按鍵).
          · WindowManager.LayoutParams 現(xiàn)在有了新的常量允許窗口能夠在被鎖或者其他的狀況中喚醒屏幕,這個允許程序能夠讓例如鬧鐘等的應(yīng)用實(shí)現(xiàn)喚醒設(shè)備.
          · New Intent APIs 廣播設(shè)備的對接狀態(tài),當(dāng)這個設(shè)備放在桌面或者停車場,允許程序啟動特殊的activity.
          Key events executed on key-up
          Android 2.0能夠使用虛擬按鍵HOME, MENU, BACKSEARCH,而非物理按鍵,為了讓用戶在他們的設(shè)備中獲得最好的用戶體驗(yàn),android平臺現(xiàn)在把這些按鍵執(zhí)行加入到了key-up,做了 key-down/key-up 配對,而非只有key-down.,這有助于防止意外按鈕事件,并讓使用者按下按鈕區(qū)域,然后拖動而不生成一個事件出來。
          這種改變只會影響你的應(yīng)用程序一點(diǎn),如果它是攔截按鈕事件,最好用key-down,而不是key-up.特例,如果您的應(yīng)用程序攔截BACK 鍵,你應(yīng)該確保你的應(yīng)用妥善處理按鍵事件
          Android 1.6 API變更概要:
          UI framework
          · 新的類 android.view.animation 控制動畫行為:
          o AnticipateInterpolator
          o AnticipateOvershootInterpolator
          o BounceInterpolator
          o OvershootInterpolator
          · 新的XML 屬性android:onClick ,從一個layout文件描述一個viewView.OnClickListener.
          · 對不同分辨率的屏幕的新的支持. 對于BitmapCanvas會執(zhí)行有針對性的縮放行為.該框架會根據(jù)屏幕分辨率和其他內(nèi)容自動縮放bitmap.
          要在你的應(yīng)用中使用Android 1.6包含的API的話你必須要設(shè)置 "4"屬性在manifest<uses-sdk> 元素中
          Search framework
          · 應(yīng)用程序現(xiàn)在可以公開的有關(guān)內(nèi)容,作為建議放入快速搜索框,新的設(shè)備范圍內(nèi)的搜索功能,是可從主屏幕搜索。為了支持這一點(diǎn),搜索框架增加了新的屬性,可搜索的元數(shù)據(jù)文件。有關(guān)完整的信息,請參閱SearchManager
          文檔。
          Accessibility framework
          · New android.accessibility package that includes classes for capturing accessibility events and forwarding them to an AccessibilityService handler.
          · New AccessibilityService package that lets your application track user events and provide visual, audible, or haptic feedback to the user.
          Gesture Input
          · 新的gesture API :創(chuàng)建,識別,讀取,保存手勢.
          Text-to-speech
          · 新的android.speech.tts 包提供了TTS文本朗讀功能,從一個文本生成一個聲音文件的回放.
          Graphics
          ·
          android.graphics 中的類,現(xiàn)在支持為不同的屏幕尺寸進(jìn)行縮放.
          Telephony
          · 新的SmsManager 發(fā)送和接受短信.
          Utilities
          · 新的DisplayMetrics 字段決定當(dāng)前設(shè)備屏幕的密度.
          Android Manifest elements
          o 新的<uses-feature> 元素
          o 新的<supports-screens> 標(biāo)簽
          o glEsVersion: 指定最小openGL ES的版本
          ·
          <uses-sdk> 元素的新的屬性:
          o 目標(biāo)SDK版本: 應(yīng)用程序能夠指定目標(biāo)版本. 它能夠運(yùn)行在舊版本(低至minSdkVersion, 他是按照應(yīng)用程序的指定版本開發(fā)的. Specifying this version allows the platform to disable compatibility code that is not required or enable newer features that are not available to older applications.
          o maxSdkVersion: 指定設(shè)計(jì)這個程序運(yùn)行的最高版本 重要: 當(dāng)使用 <uses-sdk> 這些屬性前請認(rèn)真閱讀文檔.
          New Permissions
          · CHANGE_WIFI_MULTICAST_STATE: 允許應(yīng)用進(jìn)入Wi-Fi 多點(diǎn)傳送模式.
          · GLOBAL_SEARCH: 允許全局搜索系統(tǒng),以便精確確定 content provider.
          · INSTALL_LOCATION_PROVIDER: 允許應(yīng)用在Location Manager.安裝一個location provider.
          · READ_HISTORY_BOOKMARKS: 允許應(yīng)用讀取(并不能寫) 用戶的瀏覽記錄和書簽
          · WRITE_HISTORY_BOOKMARKS: 允許應(yīng)用寫入 (并不能讀) 用戶的瀏覽記錄和書簽
          · WRITE_EXTERNAL_STORAGE: 允許程序?qū)懭胪獠看鎯ζ?/font>.應(yīng)用程序使用API級別3下將默認(rèn)授予此權(quán)限 (這對用戶可見); 應(yīng)用程序使用API level4 或者更高的,必須要明確的宣告此權(quán)限.

          Android 1.5 API變更概要:
          UI framework
          · Framework for easier background/UI thread interaction
          · SlidingDrawer 組件
          · HorizontalScrollview 組件
          AppWidget framework
          · 一些關(guān)于創(chuàng)建桌面AppWidget API.
          · 提供根據(jù)自定義的內(nèi)容創(chuàng)建LiveFoldersAPI
          Media framework
          · 原聲錄音和回放 APIs
          · 交互式的MIDI 回放引擎
          · 開發(fā)者使用的視頻錄像API (3GP format).
          · 視頻相片分享 Intents
          · 媒體搜索Intent
          Input Method framework
          · 輸入法服務(wù)framework
          · 文本預(yù)測引擎
          · 提供具有下載能力的IME給使用者
          Application-defined hardware requirements
          應(yīng)用可定義硬件需求,應(yīng)用程序可以定義 <uses- configuration> 說明此程序需要什么硬件需求.比如是否需要物理鍵盤或者軌跡球.
          Speech recognition framework
          · 支持語音識別庫.
          Miscellaneous API additions
          · LocationManager -應(yīng)用可以接收到位置改變的信息.
          · WebView - 觸摸start/end/move/cancel  DOM 事件的支持
          · 重建Sensor Manager APIs
          · GLSurfaceView - 創(chuàng)建OpenGL 應(yīng)用更加方便的framework .
          · 軟件升級安裝成功的Broadcast Intent - 更加平和優(yōu)秀的軟件升級體驗(yàn)

          posted @ 2010-08-02 13:29 oathleo 閱讀(696) | 評論 (1)編輯 收藏

          很明顯UI上的線程安全在Android上控制的也很嚴(yán)格

          如果需要做大運(yùn)算,取網(wǎng)絡(luò)數(shù)據(jù)等,得用AsyncTask



          AsyncTask

          首先AsyncTask是一個抽象類,子類繼承AsyncTask必須實(shí)現(xiàn)其抽象方法doInBackground(Params…)。同時我們還需要實(shí)現(xiàn)onPostExecute(Result),因?yàn)榻Y(jié)果會在Result中返回。

          AsyncTask的生命周期

          AsyncTask的生命周期分為四部分,每部分對應(yīng)一回調(diào)方法,我們只需實(shí)現(xiàn)這些方法中的某些需要用到的方法。程序執(zhí)行過程中這些會自動調(diào)用它們。

          • onPreExecute():任務(wù)執(zhí)行之前執(zhí)行,可在這顯示進(jìn)度條。
          • doInBackground(Params…):后臺執(zhí)行,主要用于完成需要任務(wù)。執(zhí)行過程中可以調(diào)用publicProgress(Progress…)來更新任務(wù)的進(jìn)度。
          • onProgressUpdate(Progress…):主線程執(zhí)行,用于顯示任務(wù)執(zhí)行的進(jìn)度。
          • onPostExecute(Result):主線程執(zhí)行,任務(wù)執(zhí)行的結(jié)果作為此方法的參數(shù)返回。

          AsyncTask中的三種泛型

          AsyncTask中的三種泛型類型為Params、Progress、Result。

          • Params:啟動任務(wù)參數(shù),比如請求的資源地址。
          • Progress:顧名思義,后臺任務(wù)執(zhí)行的百分比。
          • Result:后臺執(zhí)行任務(wù)返回的結(jié)果。

          AsyncTask的執(zhí)行

          AsyncTask只能在在主線程中創(chuàng)建實(shí)例,創(chuàng)建實(shí)例后使用execute(params)執(zhí)行。任務(wù)僅會執(zhí)行一次,如果想再調(diào)用就必須創(chuàng)建新的實(shí)例。

          具體實(shí)現(xiàn)

          首先我們先繼承實(shí)現(xiàn)AsyncTask,然后在主線程的getView()里創(chuàng)建其實(shí)例execute().

          1、實(shí)現(xiàn)AsyncTask

          public class DownImageTask extends AsyncTask {
          private ImageView gView;
           
          protected Bitmap doInBackground(ImageView... views) {
          Bitmap bmp = null;
          ImageView view = views[0];
          HotelListData.Item item;
          // 根據(jù)iconUrl獲取圖片并渲染,iconUrl的url放在了view的tag中。
          if (view.getTag() != null) {
          try {
          item = (HotelListData.Item) view.getTag();
          URL url = new URL(item.getI().toString());
          HttpURLConnection conn = (HttpURLConnection) url
          .openConnection();
          conn.setDoInput(true);
          conn.connect();
          InputStream stream = conn.getInputStream();
          bmp = BitmapFactory.decodeStream(stream);
          Data.imageMap.put(item.getId(), bmp);
          stream.close();
          } catch (Exception e) {
          Log.v("img", e.getMessage());
          return null;
          }
          }
          this.gView = view;
          return bmp;
          }
           
          protected void onPostExecute(Bitmap bm) {
          if (bm != null) {
          this.gView.setImageBitmap(bm);
          this.gView = null;
          }
          }

          2、在UI主線程中創(chuàng)建其實(shí)例并execute()執(zhí)行

          HotelListData dlData = new HotelListData();
          HotelListData.Item item = dlData.new Item();
           
          item = (HotelListData.Item) infoVector.getLs().elementAt(position);
          holder.text0.setText(item.getN());
           
          holder.star.setImageDrawable(getResources().getDrawable(
          imageIndex[Integer.parseInt(item.getS().toString())]));
           
          holder.text2.setText(item.getP());
          holder.text3.setText(item.getA());
           
          if (item.getI() != null &amp;&amp; (!item.getI().equals(""))) {
          Bitmap bm = returnBitMap(item.getId());
          if (bm != null) {
          holder.image.setImageBitmap(bm);
          } else {
          if (!holder.image.isDrawingCacheEnabled()
          || !holder.image.getTag().equals(item.getI())) {
          holder.image.setImageResource(R.drawable.img_loading);
          holder.image.setTag(item);
          try {
          new DownImageTask().execute(holder.image);
          holder.image.setDrawingCacheEnabled(true);
          } catch (Exception e) {
          Log.e("error",
          "RejectedExecutionException in content_img: "
          + item.getI());
          }
          }
          }
          }

          簡要

          首先創(chuàng)建了DownImageTask,該類繼承實(shí)現(xiàn)了AsyncTask的doInBackground()和onPostExecute(), 如上面所介紹,當(dāng)在getView中創(chuàng)建實(shí)例并execute()傳入需要獲取資源地址URL(地址在TAG中)執(zhí)行異步線程任務(wù)后,程序首先調(diào)用 doInBackground()。

          doInBackground()從傳入的Image TAG中獲取資源的URL地址進(jìn)行圖片的獲取,獲取完畢Retrun結(jié)果給onPostExecute(),onPostExecute()里再去做相應(yīng)的結(jié)果處理。



          posted @ 2010-07-30 11:59 oathleo 閱讀(1346) | 評論 (1)編輯 收藏

          Android Emulator是一款功能非常齊全的模擬器,電話本、通話等功能都可進(jìn)行模擬。甚至其內(nèi)置的瀏覽器和Google Maps都可以聯(lián)網(wǎng)。用戶可以使用鍵盤輸入,擊模擬器按鍵輸入,甚至還可以使用鼠標(biāo)擊、拖動屏幕進(jìn)行操

          1.模擬器和真機(jī)的不同之處

              * 不支持呼叫和接聽實(shí)際來電但可以通過控制臺模擬電話呼叫(呼入和呼出)

              * 不支持USB連接

              * 不支持相機(jī)/視頻捕捉

              * 不支持音頻輸入(捕捉)但支持輸出(重放)

              * 不支持?jǐn)U展耳機(jī)

              * 不能確定連接狀態(tài)

              * 不能確定電池電量水平和交流充電狀態(tài)

              * 不能確定SD卡的插入/彈出

              * 不支持藍(lán)牙

           

          2.參數(shù)大全

          Android模擬器emulator.exe文件包含了很多參數(shù),平時在Eclipse IDE中模擬器運(yùn)行自動調(diào)用的,如果僅僅使用Android emulator或采用NetBean這樣的開放環(huán)境又如何設(shè)置呢? 我們總結(jié)了一下模擬器的所有參數(shù)及使用方法,具體如下所示。 

           

           Android Emulator usage: emulator [options] [-qemu args]
            options:
              -system <dir>       read system images from <dir>
              -datadir <dir>      write user data into <dir>
              -kernel <file>      emulated kernel
          指定內(nèi)核文件
              -ramdisk <file>     ramdisk image (default <system>/ramdisk.img) 創(chuàng)建內(nèi)存磁盤
              -image <file>       system image (default <system>/system.img)
              -initdata <file>    initial user image (default <system>/userdata.img)
              -data <file>        working user image (default <datadir>/userdata-qemu.img)

             
              -nocache            disable the cache partition 禁止分區(qū)緩存
              -sdcard <file>      SD card image (default <system>/sdcard.img) 使用SD卡映像
              -skindir <dir>      search skins in <dir> (default <system>/skins) 搜索外觀皮膚路徑
              -skin <skin>        select a given skin 選擇Android模擬器皮膚ID
              -noskin             don't use any emulator skin 不使用任何模擬器外觀,這樣有助于提高模擬器速度,內(nèi)存小的用戶可以嘗試

              -netspeed <speed>   maximum network download/upload speeds 設(shè)置網(wǎng)絡(luò)速度如GPRS、EDGE、3G更多詳細(xì)的
          內(nèi)容下面有介紹
              -netdelay <delay>   network latency emulation 網(wǎng)絡(luò)延時設(shè)置
              -netfast            disable network shaping (full speed, no latency) 網(wǎng)絡(luò)全速工作
              -trace <name>       enable code profiling (press F9 to start) 跟蹤調(diào)試
              -debug-kernel       send kernel output to the console 內(nèi)核調(diào)試
              -console            enable console shell on current terminal 啟用控制臺
          Shell在當(dāng)前中端
              -nojni              disable JNI checks in the Dalvik runtime 禁用JNI檢查
              -logcat <tags>      enable logcat output with given tags 設(shè)置log輸出標(biāo)簽
              -noaudio            disable android audio support 禁用音頻支持
              -useaudio           enable android audio support (default) 啟用音頻支持
              -mic <file>         WAV file for audio input 使用wav文件模擬mic麥克輸入
              -flash-keys         flash key presses on the device skin
              -raw-keys           disable Unicode keyboard reverse-mapping
              -radio <device>     redirect radio modem interface to character device
              -oldradio           enable old VM-based simulated radio
              -onion <image>      use overlay image over screen
              -onion-alpha <%age> specify onion skin translucency (default 50)
              -http-proxy <proxy> make TCP connections through a HTTP/HTTPS proxy
          代理服務(wù)器設(shè)置
              -verbose            enable verbose output
              -verbose-keys       enable verbose key presses
              -verbose-proxy      enable proxy debug messages
              -version            display emulater version number

              -qemu               pass arguments to qemu
              -qemu -h            display qemu help
              -help               print this help

             Default network latency is 'none'

            <proxy> can be one of the following:

              http://<server>:<port>
              http://<username>:<password>@<server>:<port>

            the 'http://' prefix can be omitted. If '-http-proxy <proxy>' is not used,
            the 'http_proxy' environment variable is looked up and any value matching
            the <proxy> format will be used automatically

          3.快捷鍵 

          Android模擬器同樣存在很多快捷鍵,當(dāng)模擬器運(yùn)行時,可以使用下面的快捷鍵來操作Android emulator,這樣比鍵盤和鼠標(biāo)操作更高效,不妨試一下:

          D:"unsetup"android-sdk-windows-1.1_r1"tools>emulator.exe -help-keys

           

            When running the emulator, use the following keypresses:

           

              HOME                    Home button 主界面鍵

              F2, PAGEUP              Menu (Soft-Left) button 左軟鍵

              Shift-F2, PAGEDOWN      Star (Soft-Right) button 右軟鍵

              ESCAPE                  Back button 后退鍵

              F3                      Call/Dial button 撥號/呼叫鍵

              F4                      Hangup/EndCall button 結(jié)束通話

              F4                      Power button 電源鍵

              F5                      Search button 搜索鍵

              KEYPAD_PLUS, Ctrl-F5    Volume up button 增大音量鍵 

              KEYPAD_MINUS, Ctrl-F6   Volume down button 減小音量鍵

              Ctrl-KEYPAD_5, Ctrl-F3  Camera button 相機(jī)鍵

              KEYPAD_7, Ctrl-F11      switch to previous layout 返回鍵

              KEYPAD_9, Ctrl-F12      switch to next layout 后一個界面

              F8                      toggle cell network on/off 禁止/啟用所有網(wǎng)絡(luò)

              F9                      toggle code profiling 開始跟蹤

              Alt-ENTER               toggle fullscreen mode 打開/關(guān)閉全屏模式

              F6                      toggle trackball mode 打開/關(guān)閉軌跡球

              DELETE                  show trackball 顯示軌跡球

              KEYPAD_5                DPad center 導(dǎo)航中建/OK鍵

              KEYPAD_4                DPad left 左鍵

              KEYPAD_6                DPad right 右鍵

              KEYPAD_8                DPad up shang 上鍵

              KEYPAD_2                DPad down 下鍵

              KEYPAD_MULTIPLY         increase onion alpha

              KEYPAD_DIVIDE           decrease onion alpha

             Ctrl+F11 對模擬器的屏幕切換。

          4.模擬器使用注意事項(xiàng)

          平時使用emulator測試開發(fā)程序時,可能會遇到系統(tǒng)關(guān)于C盤空間不足之類的提示,這是由于Android模擬器每次運(yùn)行時會臨時生成幾個.tmp后綴的臨時文件,一段時間后,其可能占用幾G的磁盤空間。所以需要手工定期清理下C:"Documents and Settings"sh"Local Settings"Temp"AndroidEmulator文件夾下的內(nèi)容。

          posted @ 2010-07-29 15:39 oathleo 閱讀(548) | 評論 (0)編輯 收藏

              如果有一天,技術(shù)高度發(fā)達(dá),發(fā)達(dá)到生產(chǎn)了一種機(jī)器,可以接通人的大腦,產(chǎn)生所有人類可以感知的感覺。
          人戴上這種帽子樣的機(jī)器,就進(jìn)入幻想世界,在幻想的世界里面所有感覺都和真實(shí)的一模一樣。
              想吃就吃,想睡就睡,想買房就買房,想干壞事就干壞事,想有美女就有美女...
          有了這玩意,人類還能進(jìn)步嗎?

             

          posted @ 2010-07-27 16:20 oathleo 閱讀(1787) | 評論 (7)編輯 收藏

          Google獲準(zhǔn)在中國運(yùn)營Google.cn域名的ICP牌照于6月30日到期。在美國西部時間6月28日晚間10點(diǎn)(北京時間6 月29日下午1點(diǎn)),Google通過官方博客發(fā)布“關(guān)于谷歌中國的最新聲明”稱,在與中國有關(guān)部門的溝通中已明確獲知,自動指向的做法是不可接受的,繼 續(xù)進(jìn)行自動指向,域名Google.cn的ICP牌照將無法通過年檢。

          感謝google.cn!是我們自己命運(yùn)不濟(jì),出生卑微。

          posted @ 2010-07-01 09:45 oathleo 閱讀(1982) | 評論 (7)編輯 收藏

          應(yīng)用:javax.script 包

          javascrip 操作 java對象。

          GEllipse ellipse = new GEllipse();//自定義java對象
          //添加上下文綁定數(shù)據(jù)
          SimpleBindings bindings = new SimpleBindings();
          bindings.put("ellipse", ellipse);
          ScriptEngine engine = sem.getEngineByExtension("js");
          engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
          try{
               engine.eval(" ellipse.setX(101);");//腳本里設(shè)置自定義java對象對象屬性
               System.out.println(ellipse.getX());//輸出101,測試OK
          }catch(Exception ex){
              ex.printStackTrace();
          }

          posted @ 2010-06-30 17:09 oathleo 閱讀(1483) | 評論 (1)編輯 收藏

          Web的功能會越來越強(qiáng)大,這點(diǎn)基本上沒有多少人會反對。想想那么多在各種操作系統(tǒng)下跑的五花八門的應(yīng)用程序,今天基本都能在Web上找到類似的應(yīng)用,原因太簡單了,現(xiàn)在的客戶要求已經(jīng)隨著PC和互聯(lián)網(wǎng)的發(fā)展慢慢提高了,他希望能在iphone里看股票,希望在imac上辦公,在blackberry里收郵件,誰能跨這么多復(fù)雜而多變的各類系統(tǒng)?

          只有Web

          Web就離不開瀏覽器,當(dāng)然如果更加激進(jìn)些,哪天整個操作系統(tǒng)都是web,那可能就沒有瀏覽器一說了。就時下來說,Web真的已經(jīng)發(fā)展的很強(qiáng)大了。我們可以在瀏覽器里看新聞,逛論壇,采購物品,收發(fā)郵件,在線協(xié)同工作,操作office,游戲等等等等。如果說Web相當(dāng)于桌面應(yīng)用程序還有什么軟肋的話,那就是瀏覽器里的圖形展示。

          說到這篇文章的重點(diǎn),先大概梳理一下。目前瀏覽器端的圖形展示解決方案。Web里的圖形解決方案筆者自己給他大概分兩種,一種叫無插件,一種叫有插件。無插件嘛就是瀏覽器原生支持,就像打開html一樣。有插件嘛當(dāng)然就是要裝插件的,插件就類似ActiveX等。

          先說說有插件的,里面按使用人數(shù)又有大眾版和專業(yè)版,大眾版筆者羅列了幾個

          1.  FlashFlex

          2.  Java Swing,JavaFX

          3.  Silverlight

          4.  VRML

           

          在這幾項(xiàng)技術(shù)FlashFlex感覺是個比較有前途的方向,面向?qū)ο蟮恼Z言,動靜結(jié)合的對象,基本各類瀏覽器都兼容的插件和現(xiàn)實(shí)效果,豐富的動態(tài)效果和絢麗的展示等,都是目前Web里圖形展示的Top one。唯一讓人感覺缺憾的是adobe這個設(shè)計(jì)師出生的公司,總讓程序員感覺不爽(要是IBM出的這技術(shù)該多好)。所以筆者是對Flex的源碼實(shí)現(xiàn)比較不齒,這哪里像個精品代碼應(yīng)有的樣子。如果說還有什么缺陷,效率是一個,無法集成入搜索是一個,回退算是一個吧。

          Swing要在Web展示,只能Applet了,這項(xiàng)被千萬java程序員唾罵的技術(shù)還是有頑強(qiáng)的生命力。為什么?實(shí)在是沒有辦法,除了它還能誰?(相對java程序員) 其實(shí)swing是個很不錯的技術(shù),可惜了Sun好像不在意Applet的巨大潛力,只關(guān)系它的J2EE去了。唉!好在亡羊補(bǔ)牢,來了個新的JavaFX,只是java程序員已經(jīng)對Applet心有余悸,JavaFx發(fā)展如何,再看看吧。

          微軟的程序員有大奔頭了,因?yàn)樗麄冇辛?/span>SL,看看SL剛剛出來時候,那聲勢浩大的場面,真的是……如果我是微軟程序員,我肯定會搞搞SL,雖然它組件依舊很少,客戶端依舊安裝率不高。我就不怕,等的就是內(nèi)置SL,絕對可以秒掉很多Flash的市場。

          VRML最近才了解到的一個技術(shù),看了下效果還是很震撼,可能程序員不是很熟原因也是它支持的公司基本都是設(shè)計(jì)軟件的公司。插件的安裝率估計(jì)是最低的,不了解的不說,一筆帶過。

           

          上面說完了有插件,下面輪到無插件了,無插件的估計(jì)就那幾個:

          1.       VML

          2.       SVG

          3.       Canvas

          VML(Vector Markup Language) 微軟的早期瀏覽器支持的圖形展示的一種格式。最大的特點(diǎn)就是只有IE支持,微軟估計(jì)當(dāng)年根本沒想到IE的占有率會跌到60%,唉千萬不要低估消費(fèi)者。你不行就靠邊,我用鼠標(biāo)說話。

          SVG(Scalable Vector Graphics) 我在無插件里最看好的技術(shù),XML的子集,W3C下的一個項(xiàng)目,早幾年不瘟不火的,這幾年起來了,何以見得?HTML5的標(biāo)準(zhǔn),IE9原生支持,看看各大廠家,誰希望被AdobeFlash把持這么大一塊市場。當(dāng)然由于微軟的原因IE9以前的版本還都需要插件才能支持SVG

          Canvas HTML5里另外一個重頭戲,介紹也是很多了,至于為什么會既有SVG又有Canvas我還真的不甚明白,誰知道W3C每天都在琢磨什么呢。最大的特點(diǎn)是2d的方式繪畫圖形,而不像SVG是標(biāo)簽式的。

          posted @ 2010-06-21 21:36 oathleo 閱讀(1781) | 評論 (1)編輯 收藏

          version jdk1.6

          很早就聽說了這個功能一直沒仔細(xì)看看,嘗試了下 功能不錯!

              public static void main(String[] args) {
                  ScriptEngineManager sem = new ScriptEngineManager();
                 
                  //添加上下文綁定數(shù)據(jù)
                  SimpleBindings bindings = new SimpleBindings();
                  bindings.put("aaa_av", new Double(10000.1));
                  bindings.put("bbb_av", new Double(20000.2));
                 
                  ScriptEngine engine = sem.getEngineByExtension("js");
                  engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
                  try{
                      //直接解析
                      Object res = engine.eval(" res =  Math.max(aaa_av , bbb_av) + aaa_av");
                      System.out.println(res);
                     
                     
                      //創(chuàng)建腳本
                      String script = "function getMax() "
                          + "{ return Math.max(aaa_av , bbb_av)}";
                      //執(zhí)行腳本
                      engine.eval(script);
                      Invocable inv = (Invocable) engine;
                      //執(zhí)行方法并傳遞參數(shù)
                      Object obj = inv.invokeFunction("getMax", null);
                      //打印結(jié)果
                      System.out.println(obj);

                  }catch(Exception ex){
                      ex.printStackTrace();
                  }
              }

          posted @ 2010-06-03 15:04 oathleo 閱讀(3403) | 評論 (3)編輯 收藏

          如果能把大量的swingUI 與畫圖 結(jié)合在一起,可以任意保存成xml或者二進(jìn)制的文件, 那大量的swing程序,會簡化成大量的工程人員畫圖而成的文件。
          當(dāng)然復(fù)雜的UI還是需要編程,而編程完不再需要打包進(jìn)產(chǎn)品或者項(xiàng)目,而是讓工程人員做成文件的方式,保存下來。
          這樣的思路是否能運(yùn)用到實(shí)際的swing項(xiàng)目,還未可知,但某些特定的項(xiàng)目,也許可以使用。

          廢話不說了,看看效果: 畫圖工具里,從文件里讀取了兩個table。

          posted @ 2010-05-31 11:18 oathleo 閱讀(2828) | 評論 (4)編輯 收藏

              微軟IE團(tuán)隊(duì)總經(jīng)理迪恩·哈克莫維奇(Dean Hachamovich)今天發(fā)表聲明稱,IE 9與以往的IE版本有很大不同。他表示,微軟將每8周對預(yù)覽版IE 9進(jìn)行一次升級,第一次升級將在5月中期。但哈克莫維奇沒有披露正式版IE 9的發(fā)布時間。

          下 載:Internet Explorer 9 預(yù)覽版

          微軟稱,預(yù)覽版IE 9還不是一款完整的瀏覽器,目前還不包括地址欄等用戶導(dǎo)航工具以及安全功能。微軟發(fā)布了一個它稱之為“Test Drive”的網(wǎng)站,方便網(wǎng)站設(shè)計(jì)人員、應(yīng)用開發(fā)者了解預(yù)覽版IE 9的功能。

          預(yù)覽版IE 9只支持Windows 7、Windows Vista SP2和Windows Server R2。IE 9可以利用圖形處理器的處理能力加速文本和圖形的渲染。

          用戶可以從Test Drive網(wǎng)站下載大小為31MB的預(yù)覽版IE 9。


          =============================================================

          里面圖形的Demo 包括Graphics 里面的幾個例子,都是用SVG實(shí)現(xiàn),包括了Map Chart等。有了IE支持,看樣子SVG又要發(fā)第二春了。

          Canvas暫時還沒有看到使用例子。

          posted @ 2010-03-17 09:02 oathleo 閱讀(1666) | 評論 (0)編輯 收藏

          僅列出標(biāo)題
          共17頁: First 上一頁 7 8 9 10 11 12 13 14 15 下一頁 Last 
          主站蜘蛛池模板: 海城市| 万盛区| 政和县| 华亭县| 东安县| 长海县| 安达市| 青神县| 鹿泉市| 福安市| 仙游县| 美姑县| 溆浦县| 兴山县| 新兴县| 苍溪县| 眉山市| 隆回县| 武汉市| 惠州市| 长岛县| 南昌县| 乐亭县| 红桥区| 贵定县| 方山县| 黔西| 中山市| 侯马市| 亚东县| 诸暨市| 黄大仙区| 沙洋县| 萨嘎县| 丁青县| 杭州市| 贵州省| 连南| 宜宾市| 元氏县| 苗栗市|