Android Studio Activity模版開發
為什麼要使用模版開發
在開發之中,我們總會遇到一些比較通用的模組,比如啟動頁,登陸功能,網路請求,MVP模式等等。有些功能甚至需要重複使用多次,我們通常的做法是把之前的模組拷貝過來,修改名字,再修改內容。如果使用了程式碼模板的話,會減少很多重複的工作。
我們經常使用的系統的模版的結構如下圖所示。如果你想自定義一個Activity模版或其他類模版,你可以把這2個檔案拷貝過去,修改一下就行了。
這種方式稍微複雜一些,因為新手大都對這幾個檔案不熟悉,不知道怎麼修改。
模板檔案字尾名都是以【.ftl】結尾。
- globals.xml.ftl 全域性變數檔案 存放的是一些全域性變數
- recipe.xml.ftl 配置要引用的模板路徑以及生成檔案的路徑
- template.xml 模板的配置資訊,以及要輸入的引數.定義了模板的流程框架 基本結構
- template_blank_activity.png 顯示的縮圖(只是展示用)
-root Activity模板檔案
globals.xml.ftl
<?xml version="1.0"?> <globals> <global id="resOut" value="${resDir}" /> <global id="srcOut" value="${srcDir}/${slashedPackageName(packageName)}" /> <global id="relativePackage" value="<#if relativePackage?has_content>${relativePackage}<#else>${packageName}</#if>" /> </globals>
定義一些全域性的變數,可以看到其內部有<global>
標籤,分別定義id,type,預設值。同理,我們可以通過id的值訪問到該值。
recipe.xml.ftl
<?xml version="1.0"?> <recipe> <instantiate from="root/src/app_package/MVPActivity.java.ftl" to="${escapeXmlAttribute(srcOut)}/${activityName}Activity.java" /> <merge from="root/AndroidManifest.xml.ftl" to="${escapeXmlAttribute(manifestOut)}/AndroidManifest.xml" /> <merge from="root/${resIn}/values/strings.xml.ftl" to="${escapeXmlAttribute(resOut)}/values/strings.xml" /> </recipe>
-
instantiate : 把Activity模版或其他模版拷貝到我們的專案中,並且會更改我們自定義的引數。
-
merge : 合併的意思,比如將我們使用到的strings.xml合併到我們的專案的stirngs.xml中
-
copy :從root中copy檔案到我們的目標目錄,比如drawable、anim等資料夾。
-
open:在程式碼生成後,開啟指定的檔案,比如我們新建一個Activity後,預設就會將該Activity開啟。
template.xml
<?xml version="1.0"?>
<template
format="5"
revision="5"
name="MVPActivity"
minApi="7"
minBuildApi="14"
description="mvp">
<category value="Activity" />
<formfactor value="Mobile" />
<!-- input data -->
<parameter
id="activityName"
name="Activity Nme"
type="string"
default="MVP"
help="" />
<!-- 128x128 thumbnails relative to com.puke.template.xml -->
<thumbs>
<!-- default thumbnail is required -->
<thumb>template_cover.png</thumb>
</thumbs>
<globals file="globals.xml.ftl" />
<execute file="recipe.xml.ftl" />
</template>
- <template>中的
name
屬性,對應新建Activity
時顯示的名字 - <category>對應
New
的類別為Activity
parameter,部分屬性介紹:
id
:唯一標識,最終通過該屬性的值,獲取使用者輸入值(文字框內容,是否選中)name
:介面上的類似label的提示語type
: 輸入值型別constraints
:填寫值的約束suggest
:建議值,比如填寫ActivityName的時候,會給出一個佈局檔案的建議值。default
:預設值help
:底部顯示的提升語
template.xml的最下面的部分引入了globals.xml.ftl和recipe.xml.ftl。
最後給大家分享一份非常系統和全面的Android進階技術大綱及進階資料,及面試題集
想學習更多Android知識,請加入Android技術開發企鵝交流 7520 16839
進群與大牛們一起討論,還可獲取Android高階架構資料、原始碼、筆記、視訊
包括 高階UI、Gradle、RxJava、小程式、Hybrid、移動架構、React Native、效能優化等全面的Android高階實踐技術講解效能優化架構思維導圖,和BATJ面試題及答案!
群裡免費分享給有需要的朋友,希望能夠幫助一些在這個行業發展迷茫的,或者想系統深入提升以及困於瓶頸的
朋友,在網上部落格論壇等地方少花些時間找資料,把有限的時間,真正花在學習上,所以我在這免費分享一些架構資料及給大家。希望在這些資料中都有你需要的內容。
相關推薦
Android Studio Activity模版開發
浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>
使用Android Studio進行NDK開發
ndk開發 開發 ews ret split c++基礎 ndk 給定 註意 Step1:創建native方法 很easy,僅僅須要給定義好的方法加上native關鍵詞就可以 註意:由於該方法的詳細實現是在c++中詳細實現的。所以相似於接口方法不
Android Studio多Module開發需要註意的問題
CI 完成 xen icon and schema In tools targe 多module開發,其中的一個為入口module,其他module為獨立的“應用”(library) 1.在原有的項目導入另外個項目的module為主項目的次module,即在A項目
Android studio 下 JNI 開發實例
ndk create void 上層 執行效率 約束 添加 src 傳輸協議 在AS中進行 NDK 開發之前,我們先來簡單的介紹幾個大家都容易搞懵的概念: 到底什麽是JNI,什麽是NDK? 何為“交叉編譯”? 先看什麽是 JNI?JNI 的全稱就是
Android studio 下 JNI 開發例項
在AS中進行 NDK 開發之前,我們先來簡單的介紹幾個大家都容易搞懵的概念: 到底什麼是JNI,什麼是NDK? 何為“交叉編譯”? 先看什麼是 JNI?JNI 的全稱就是 Java Native Interface,即java本地開發介面。可能大家和我一樣,一聽到介面什麼的就犯懵:“
Android studio中NDK開發(一)——使用CMake構建NDKDemo
一、前言 NDK可以支援使用C/C++來編寫Android程式,不但可以接入C/C++中優秀的庫資源,而且處理效率高,在音視訊方面有著廣泛的應用。本篇主要以CMake的方式來構建NDK,主要以最常規的方式建立一個NDKImportDemo,並對自動建立官方例子進行分析構建的過程以及CMakeLi
Android Studio下Ndk開發踩過的坑以及解辦法決
Android studio在2.2之後是開始相容ndk的開發,嚐鮮用來本地開發,各種坑,不相容。之前用得好好的,一個升級AS或者NDK版本都會一不小心導致了編譯失敗,或者成功之後,載入不成功。故隨手筆記記錄下自己踩過的坑,也方便其他人查詢。 Trap One :
Android studio中NDK開發(一):CMakeLists.txt編寫入門
自定義變數 主要有隱式定義和顯式定義兩種。 隱式定義的一個例子是PROJECT指令,它會隱式的定義< projectname >_BINARY_DIR和< projectname >_SOURCE_DIR兩個變數;顯式定義使用SE
windows下 android studio 的NDK開發環境配置(1)(2)
參考博主文章連結: 開發環境: windows10 AS2.1.2 首先安裝NDK, 安裝完後,新建一個空專案。 點選下一步,知道新建一個新專案。 新建好的專案如下: 檢測local.properties 檔案裡面是否有ndk的路徑,沒有加上。
使用android studio進行ndk開發時如何定位crash錯誤
使用android studio進行ndk開發時如何定位crash崩潰錯誤 在ndk開發時, jni層的程式碼一旦出現問題, 就會列印如下資訊, 然後直接閃退, 這時候讓人非常抓狂, 只能過在各個jni函式中列印日誌來跟蹤問題,但是效率實在是太低,碰到有多
Android Studio 藍芽開發流程
1. 許可權關於藍芽的許可權主要涉及到下面三個:BLUETOOTH:允許配對的裝置進行連線BLUETOOTH_ADMIN:允許搜尋和配對裝置ACCESS_COARSE_LOCATION:廣播接收器接收BluetoothDevice.ACTION_FOUND廣播需要改許可權&l
使用Android Studio與Eclipse開發NDK的對比
最近開發的一個專案中用到了JNI,所以針對Android的兩大IDE開發NDK做了一下對比。 Android Studio開發NDK的配置 我使用的是穩定版的2.0的外掛,預設情況下它是不支援NDK的,即如果你在build.gradle中配置了ndk屬性
Android Studio配置CMake開發NDK
1.在SDK Tools中勾選安裝CMake、LLDB、NDK 2.配置一些快捷方式 引數講解 javah 用於生成標頭檔案 Program:$JDKPath$/bin/javah Parameters:-d
ubuntu 16.04 Android studio 2.3開發環境搭建
1、下載軟體 Android studio 社群下載:http://www.android-studio.org/ 百度雲網盤下載連結: https://pan.baidu.com/s/1Mc_X5D5QItk1tA02_LT-gQ 密碼: rem2 個人認為An
Android Studio新增NDK開發能力的兩種方法
第一種方法:新建的專案(new project)的時候使用Include C++ Support選項 第二種方法:使用外掛(Plugin)-- Experimental Plugin 這裡我演示一下,瞭解具體內容請科學上網,去檢視詳情 試驗環境: java jdk
Android Studio 進行NDK開發入門
一.開發前準備 Android Studio 最好升級到2.2 Jdk1.7 api24 Gradle2.2.2 二.下載NDK和cMake 三.配置
使用Android Studio進行NDK開發和除錯(gradle-experimental之官方文件的翻譯說明)
版本更新 環境要求 Gradle(參照三裡邊的版本要求) Android NDK r10e Build Tool在19.0.0以上的SDK Gradle版本要求 不同版本的Experimental Plugin需要不同版本的gradle
Android Studio 3.0 開發AndroidInstantApps(免安裝應用)
InstantApps(免安裝應用) 今年的GoogleIO大會之後,開始Android免安裝應用對所有開發者開放 利用 Android Studio 3.0,現在可以在專案中建立免安裝應用。免安裝應用是一種輕巧的 Android 應用,使用者無需安
Android Studio的NDK開發環境搭建
目標 由於要涉及到音視訊的開發,所以要用到JNI,之前一直用AS2.0的,發現用這個做NDK開發太麻煩了,後來看到動腦學院老師的一個教學視訊,android studio的NDK開發配置,做了一個學習筆記,視訊可以百度搜索的到。 配置要求 Android
Android Studio NDK/JNI開發
前言 我們在一步一步學習JNI(一)學習了怎麼進行Jni開發,當時說道了怎麼編寫native函式,怎麼進行載入,怎麼進行so生成,當時的都是在eclipse下生成的。這裡我們就來說說Android Studio下怎麼程序開發。 下載NDK