Android Studio for Experts:Edit

jopen 9年前發布 | 29K 次閱讀 Android Studio開發工具 Android Studio

冒死總結!有些地方不知道怎么描述,自己動手感受一番吧。

我只總結了前面五分多鐘講的快捷方式。后面的高級技巧我還在學習中,坑慢慢填。

已將 Tor Norbye 演講的編輯技巧補充完。

昨天@陳啟超同學發了 Android Studio for Experts (Android Dev Summit 2015) 的視頻,我也跟著學習了一下。這個視頻講的非常好!做點小結,分享交流。

completion

  1. 使用 Tab 補全,會自動編輯光標之后的字符串,如下,你在光標處鍵入 c 然后選擇contentEquals然后回車,magic!

    Android Studio for Experts:Edit

    c.png

  2. 使用 ctrl + shift + space 智能補全,比如下圖,按下組合鍵,magic!可以按兩次哦!

    Android Studio for Experts:Edit

    c2.png

  3. 補充一個,嘗試在編輯器中輸入:new Bitmap().var

selection

  1. ctrl+ w 選中,繼續操作會擴大選中范圍,相反的操作是 ctrl + shift + w

  2. 選中后可以使用 Extra 快捷鍵重構為變量、方法等,這個可以在 Refactor -> Extra 下看到。

    ctrl+ alt+ v:變量

    ctrl+ alt+ c:常量

    ctrl+ alt+ f:域值

    ctrl+ alt+ p:參數

    ctrl+ alt+ m:方法

  3. 這里我有一個快捷鍵沒有聽出來,就是從構造函數提取 parameters 為 fields,

    public static class Init {
     public Init(String first, boolean second, int third) {
     }
    }

LiveTemplates

這個內容極度豐富,我以前發過微博,可以在 Setting -> Editor -> Live Templates 下查看。舉幾個例子:

  1. fori和foreach,在需要使用for循環時,嘗試輸入這兩種for試試;

  2. 你還可以在數據集合變量后輸入.for,例如list.for,這時候你看一下補全,會列出三種for循環形式讓你選擇;

  3. logt,logd,logm,在方法外輸入logt,在方法內輸入logd試試;

  4. 另外還有fbc,gone,iter等等,感興趣的話可以在 Setting -> Editor -> Live Templates 下看看。

接下來可以說是牛哄哄的技巧了,同時也說明 Android Studio 真是強大!

Replace Structurally

這里就不得不貼上很多代碼了。比如以下資源文件,現在你想去掉所有的translation_description,技巧是使用 雙擊 shift 或者 ctrl + shift + a 調出搜索框然后搜索并選擇 replace structurally ,編輯規則,選擇 find,然后就可以十分便捷的批量修改了。

<resources>
    <string name="a_fragment" translation_description="false">Hello blank fragment</string>
    <string name="s_fragment" translation_description="false">Hello blank fragment</string>
    <string name="d_fragment" translation_description="false">Hello blank fragment</string>
    <string name="f_fragment" translation_description="false">Hello blank fragment</string>
</resources>

Android Studio for Experts:Edit

rs.png

另外你還可以把這個加入設置中,由編輯器自動檢查,不符合規則的代碼就會變黃,alt + enter 組合鍵進行修改。

Android Studio for Experts:Edit

ssi.png

這個方法對 java 源碼同樣適用,只需要修改 file type。

Search Structurally

這個和 Replace Structurally 大同小異,不再贅述,請自行嘗試一下吧,^_^。

Designtime  Attributes

在寫好布局文件后,我們可能想要直接看一下 preview 效果,但是不想在編譯時還預設這些屬性和值,這個時候可以使用 tools 這個強大的工具。

首先我們要在布局文件中聲明xmlns:tools="http://schemas.android.com/tools",放在最外層的 layout 就好。

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    ...

使用起來跟xmlns:android沒有什么差別。

<TextView
    android:id="@+id/tv"
    android:text="Hello World!"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:visibility="visible"
    tools:text="tools"
    />

這里面比較逆天的是tools:listitem,看下面這段代碼!

<GridView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:numColumns="4"
    tools:listitem="@android:layout/simple_list_item_2" />

猜到了嗎?它可以直接讓我們 preview GridView的效果!

Android Studio for Experts:Edit

tools.png

如果你夠細心的話一定會發現異常:那就是那個ToolBar 和 FAB 哪來的?!因為有tools:showIn。這個屬性聲明在最頂層的 layout,值是 include 了本布局的一個父布局,它使得預覽本布局時同時會渲染該父布局。

更多的 tools attributes 可以訪問官方文檔 Android Tools Project Site: Tools Attributes

Private Resources

Android studio 默認 library 的所有 resource 為 public,如果想保護某些 resources 不被外部訪問,可以創建 res/values/public.xml,因為 public 是關鍵詞,所以需要用 new file 的方式創建。至少要添加一行,未添加的則視為 private。

<resources>
    <public name="mylib_app_name" type="string"/>
</resources>

參考: Public and Private Resources

另外,如果在 library 的 build.gradle 中添加resourcePrefix,則所有資源必須以此 prefix 開頭,否則會報錯。

android {
    ...

    buildTypes {
        ...
    }

    resourcePrefix 'my_prefix_'
}

Resource Shrinking

這一段講解了一個減少未使用的資源文件的技巧,可以參考官方文檔: Android Tools Project Site: Resource Shrinking ,我就不做二次消化了。

原文  http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1126/3724.

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!