文章

目前顯示的是 2016的文章

[Android]Android 7.1.1 Preview版可以更新囉!! 多了什麼功能??一起來看看!!

圖片
剛剛上班休息時間逛了一下G+ 發現 Android 7.1.1 開發預覽版開放更新啦!!!! 二話不說立馬來下載 Step 1: 用不管用電腦或手機輸入以下網址 http://www.android.com/beta 進入後會先請你登入Google帳號 Google會依據你所登入的帳號去找到你所使用的裝置 然後確認你的裝置是否符合升級條件 這次似乎只有 Nexus 5x / Nexus 6P 還有最新的 Pixel 可以更新 畫面如下: 當然小妹我已經下載安裝完畢了所以上面的按鈕顯示為 "為裝置取消註冊" 如果還沒下載的會顯示 "為此裝置註冊" 之類的字眼(小妹我記性不好啊!!><") Step 2: 當你按下註冊後 沒一會的時間馬上就會收到通知 進到設定後 會看到右下角有個下載後安裝 接著就會看到這個畫面囉!! Step 3: 等!!! 體驗囉!!! 下載完後 感覺有點小失望!! 因為以為會跟Pixel一樣 殊不知沒變化!!! 好吧!!還是得看看有那些小地方不一樣!! 1. 長按App Logo出現快選選單 可以看到每個App出現的快選選單都不一樣 要開發者針對自己的App做出相對應的快捷功能 這個功能有點像iPhone的3D Touch 更酷的是!!這些快捷功能還能在拖曳到桌面上建立捷徑喔!! 這樣就不用每次都要再長按Logo囉!! 因為才剛開放更新SDK也才剛可以下載 所以可以發現目前只有Google開發的App有這個功能喔 後面有機會再跟大家探討這個功能如何實現 2. 終於可以重新啟動手機啦!!!!! 有拿Nexus 5x的大大們一定對它有一個怨念 為什麼電源鍵長按卻只出現關機的選項呢?? 我想重開機不行嗎?? 真的是 " 藍瘦!! 香菇!! " (跟流行一下!!XD) 但終於!!在這次更新時出現了!!有點感人!! 3.

[Android]Android Studio 錯誤處理大全 The number of method references in a .dex file cannot exceed 64K

圖片
今天小妹我在Build APK的時候遇到了這個問題 原來是我所使用的Library加上自身APP內的Method數量太多,超過65535個了!!也太驚人了吧!!!要找時間好好瘦身一下!! 解決方式如下: Step 1: 在你的build.gradle加入以下幾行 android {     defaultConfig {         ...         // Enabling multidex support.         multiDexEnabled true     }     ... } dependencies {     compile 'com.android.support:multidex:1.0.0' } Step 2: 如果你有自己的Application的話將它改成extends MutiDexApplication 如果還沒有自己的Application的話就新建一個吧 然後複寫attachBaseContext這個類別 程式碼如下: public class MyApplication extends MultiDexApplication {     @Override     public void onCreate() {         super.onCreate();     }     @Override     protected void attachBaseContext(Context base) {         super.attachBaseContext(base);         MultiDex.install(this);     } } Step 3: 把你自己Application加到Manifest.xml的這個Tag中 Ex: <application android:name="example.cindy.MyApplication"/> Step 4: 如果你有gradle.properties這個檔案的話 請你在這個檔案內加入一行 org.gradle.jvmargs=-Xmx2048m 如果沒有這個檔案的話請自己

[Android]Android Studio 2.2 Preview版下載及體驗

圖片
今天!!就在今天!!! Google I/O 2016發表會結束後 Android Studio 2.2 Preview版出來啦!! 趕快來安裝看看吧 Step 1: 至官網下載2.2 Preview版 網址: 點我去官網 選擇你的平台之後下載(小妹我是用Windows) Step 2: 解壓縮 Step 3: 開始使用 Preview版的不像正式版的是用安裝的,而是直接解壓縮後就可以用囉~ exe檔路徑如下: /android-studio/bin/ 32位元選studio.exe 64位元選studio64.exe Step 4: 建立新專案 建立新專案後第一個感到不一樣的就是設置Layout的部分 而且仔細看起來...是不是給他有點像iOS開發工具XCode中Storyboard拉Layout的方式呢?? (左圖為Preview版 右圖為舊版) (左圖為Android Studio 2.2 Preview版 右圖為XCode Storyboard) 原來是Android新增了一個叫做ConstraintLayout的元件並向下相容至2.3的版本 據說是能方便工程師製作Layout,用拖拉的方式就能輕易完成Layout的布局 目前還沒有任何的官方文件,不過已經可以在Preview版上使用 呼叫的方式如下: 一些效果如下: 我們可以看到有許多相關的屬性是我們從前沒看過的 這幾天玩完再跟大家說明 大家要持續關注唷!!! 參考資料: http://tools.android.com/tech-docs/layout-editor http://tools.android.com/download/studio/builds/android-studio-2-2-preview-1

[Android]判斷手機或平板

哈囉大家~ 今天小妹我在程式上需要判斷目前的裝置是手機或平板 網路上找了找 判斷螢幕尺寸、分辨率、能不能打電話、有沒有IMEI等等方式 都沒辦法正確的判斷出手機或平板 因為現在有的大尺寸的手機或平板都能打電話也都有IMEI 繼續在網路上找答案 發現其實官方有釋出判斷方法 如下: public static boolean isPad(Context context) {     return (context.getResources().getConfiguration().screenLayout         & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; } 回傳true就是平板 回傳false就是手機囉 目前試過幾種裝置都蠻正確的 如果大家有更好的方法也歡迎大家提出唷~ 感恩~

[iOS]如何使用Keychain

圖片
由於蘋果對於使用者的隱私像當重視, 因此iOS 5以後對於許多用來取得裝置的唯一值的API例如:IP_Address, Mac, IMEI等等都漸漸列為禁止使用, 直到iOS9問世後對於安全機制的設計也更加嚴謹. 於是 當我們需要取得這些資料時, iOS的限制簡直讓人抓狂呀!!為什麼在Android平台可以輕易取得的資料到了iOS竟然像是在破解金庫密碼一樣的困難重重呀!! 米羅我為此頭疼不已的時候, 偶然發現了一線曙光, 原來蘋果還替我們留了一條唯一的生路這個東西叫做UUID, 這個數值在每支手機上取得的資料都不一樣.(PS:有消息指出未來可能連UUID都會封殺掉!NO~) 話不多說了先來貼上取得UUID的程式碼唄 透過這樣簡單的一行程式碼我們就可以簡單取得UUID的資料, 正當米羅以為一切問題終於迎刃而解的時候, 卻發現了一件事情讓米羅猶如五雷轟頂般的驚嚇不已!!! 原來UUID雖然是唯一值但是卻不是手機的唯一值, 而是APP創建時所產的一組認證編碼, 也就是說一般來講只要使用者更新或刪除APP那麼每一次取得的UUID就是不相同的, 登愣~~這是什麼鬼呀!?竟然還有這個坑爹的玩意是想摔死所有開發者是吧, 瞬間髒話全部梗在喉嚨(在公司還是要注重形象的...汗)差點呼嘯而出呀, 可惡的蘋果呀!!老子跟你拼了 於是米羅我不死心再次拜請萬能的谷歌大神出來助陣, 在廣闊無邊的資訊苦海中, 經過了幾天的尋訪終於知道了一個秘密的終極武器他就是 KeyChain!!! 為什麼要使用KeyChain不是有NSUserDefault可以用嗎!?這個問題...問得好 米羅在此簡單地告訴你 所謂NSUserDefault他是類似Android的SharedPreferences, 專門用來儲存我們想透過程式存放在手機的資料, BUT!!!它只是儲存而已, 一旦使用者手癢還是手指頭扭到將我們辛苦撰寫的APP抹掉!!它就GG惹(不要問我什麼意思 乖~自己去查嘿) 也就是說NSUserDefault不是一個可靠的存在呀. 說了一堆廢話(不要扁我), 接下來米羅就要告訴大家為什麼要使用KeyChain來儲存資料了 所謂 KeyChain 顧名思義就是鑰匙圈的意思, 身為iOS的開發者應該對這個名詞都不陌生 沒錯!!這是我們要成為iOS的初心者之前一