Android开发之关于项目_Android

本系列文章会根据项目的进度进行相关介绍,其会分为多个模块,每个模块互不依赖,各个模块都是单独的学习内容,如sqlite学习模块,contacts联系人模块等。

新建项目

相信大部分童鞋都可以自定义项目了,那么在此,我简单介绍下android studio新建项目的过程。

最终,android studio会为你生成2个build.gradle文件,你可以选择android视图浏览文件,根据google最新提供的sdk版本,我们把项目设置为api 14~23,打开你的project项目的gradle文件,在dependencies中

classpath 'com.android.tools.build:gradle:1.5.0'

你不必在意这一版本是否和我一致,因为默认的jcenter仓库使用的是https且服务器在国外,我们将buildscript下的repositories和allprojects下的repositories添加

mavenLocal()
maven{ url 'http://maven.oschina.net/content/groups/public/'}

其含义为优先在本地仓库和开源中国maven仓库搜寻jar或者aar包。

子模块

你会发现,android studio会默认为你创建demo模块,其主要包含3部分:

  1. plugin android插件
  2. android android代码块,用于定义app的版本构建信息
  3. dependencies 该模块的依赖库

因为该项目会涉及到很多模块,而每个模块都会对应一个gradle文件,而每个gradle文件都会有对应的android构建信息,这些信息大部分重复,且维护起来非常困难,因此,我们提前修改:

subprojects{
  configure(allprojects - project(':demo')) {
    apply plugin: 'com.android.library'
    android {
      compileSdkVersion 23
      buildToolsVersion '23.0.2'

      defaultConfig {
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
      }
      lintOptions {
        abortOnError false
      }
    }
    dependencies {
      testCompile 'junit:junit:4.12'
      compile 'com.android.support:appcompat-v7:23.0.2'
    }
  }

这样,在你新建的模块中,你完全可以去除掉该模块对应的gradle文件中的代码,是不是很方便?

demo模块的搭建

该模块是运行在你手机上的app,所以基本骨架和UI部分需要在此编写。对应的相关模块将会如下图所示:

那么如何展示这些模块的特性呢?

在此,我向大家介绍AppCompatActivity和ButterKnife以及CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout,Toolbar,NestedScrollView的使用,当然也包括RecyclerView,CardView的使用。

其中大部分都是android v7包中的新组件,需要大家系统学习,ButterKnife则是jk大神的依赖注入框架。

ButterKnife的使用详解

神马是ButterKnife,利用注解,你不再使用findviewbyid初始化视图了。关于ButterKnife的详细介绍,在此就不多言了,那么如何使用它呢?

在使用它之前,你需要android studio的一个强大插件Zelezny,关于安装插件,可以翻看第一篇文章:

安装完成后重启android studio。

比如现在你在你的activity_main.xml中可以定义一个button,并赋值给其id。然后打开你的MainActivity.java文件,将光标移至R.layout.activity_main上,使用快捷键ALT + Insert键(注意我使用的eclipse快捷键),选择generate butterknife injections,选择确认,该插件会自动为你生成@Bind,以及Butterknife.bind(this),就像这样:

ButterKnife.bind(this)

当你在某activity或者某fragment中使用@Bind注解的时候,你需要在oncreate方法上添加该方法,其含义为绑定该视图,即@Bind中的id会自动在该视图对应的layout中寻找,所以其需要在setContentView方法之后添加。特别注意的是ButterKnife.bind(this)在fragment中并不适用,你需要使用:

public class FancyFragment extends Fragment {
   @Bind(R.id.button1) Button button1;
   @Bind(R.id.button2) Button button2;

   @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
          View view = inflater.inflate(R.layout.fancy_fragment, container, false);
          ButterKnife.bind(this, view);
          // TODO Use fields...
          return view;
         }

   @Override public void onDestroyView() {
          super.onDestroyView();
          ButterKnife.unbind(this);
         }
    }

可能你会问了,Butterknife是不是利用反射,那样将会导致性能问题。其实呢,大家不用担心,代码会在加载视图的时候自动生成,自动生成的代码如下所示:

public void bind(ExampleActivity activity) {
 activity.subtitle = (android.widget.TextView) activity.findViewById(2130968578);
 activity.footer = (android.widget.TextView) activity.findViewById(2130968579);
 activity.title = (android.widget.TextView) activity.findViewById(2130968577);
}

如果大家还是不放心的话,可以利用debug模式,查看bind方法。

监听绑定

比如你的视图里面有多个button,这时候,你肯定是先初始化这些button,然后再为每个button添加监听事件,然后该类实现onClick接口,重写该接口,利用switch方法,判断点击了哪个按钮。其实,你可以使用ButterKnife:

@OnClick(R.id.submit)
public void submit(View view) {
 // TODO submit data to server...
}

而对于的参数是可选的:

@OnClick(R.id.submit)
public void submit() {
 // TODO submit data to server...
}

定义一个特殊类型,其会为你自动转换:

@OnClick(R.id.submit)
public void sayHi(Button button) {
 button.setText("Hello!");
}

那么你有多个按钮呢:

@OnClick({ R.id.door1, R.id.door2, R.id.door3 })
public void pickDoor(DoorView door) {
 if (door.hasPrizeBehind()) {
  Toast.makeText(this, "You win!", LENGTH_SHORT).show();
 } else {
  Toast.makeText(this, "Try again", LENGTH_SHORT).show();
 }
}

是不是超级方便!!!

关于ButterKnife的详细介绍和使用方法,你可以查看:http://jakewharton.github.io/butterknife/

好了,今天就讲这么多了,下一篇,将会为你带来项目的搭建和AppCompatActivity,CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout,Toolbar,NestedScrollView的使用!!!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
开发项目
android项目开发详解、android项目开发流程、android项目开发文档、android项目开发、android开发项目实战,以便于您获取更多的相关知识。

时间: 2024-11-01 04:15:46

Android开发之关于项目_Android的相关文章

仅5步搞定Android开发环境部署 Android开发环境搭建教程_Android

在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助. 本教程将分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK. 第二步:配置Windows上JDK的变量环境 . 第三步: 下载安装Eclipse . 第四步:下载安装Android SDK . 第五步:为Eclips

Android开发常见错误小结_Android

本文实例总结了Android开发的常见错误.分享给大家供大家参考.具体如下: 错误1: 在intent中添加了一个内容,在调用getStringExtra读取的时候,总是报错.代码如下: // back按钮 Button btnBack = (Button) findViewById(R.id.btnActivity2Back); btnBack.setOnClickListener(new OnClickListener() { @Override public void onClick(Vi

Android开发常用标签小结_Android

本文较为详细的总结了Android开发常用标签.分享给大家供大家参考.具体如下: android中inputType android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用.这也大大的方便的操作.有时需要虚拟键盘只为字符或只为数字.所以inputType尤为重要. android:paddingLeft与android:layout_marginLeft的区别 当按钮分别设置以上两个属性时,得到的效果是不一样的. android:paddingLeft

分享40条Android开发的优化建议_Android

以下是开始Android编程的好方法:         1.找一些与你想开发的功能类似的代码:         2.调整它,尝试让它变成你想要的:         3.回顾开发中遇到的问题         4.使用StackOverflow来解决遇到的问题 对每个你想实现的东西重复上述过程.采用这种方法能够激励你,因为你在保持不断迭代更新,在这个过程里面你会学到很多.当然,当你发布应用的时候你还要去做一些更深入的东西. 从一些能够正常编译的代码到成为一个应用程序,这是一个质的飞跃,比起iOS,A

详解MVP模式在Android开发中的应用_Android

一.MVP介绍  随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Model只关系数据的处理,基于MVC概念的MVP(Model-View-Presenter)模式应运而生. 在MVP模式里通常包含4个要素:  (1)View:负责绘制UI元素.与用户进行交互(在Android中体现为Activity); (2)View interface:需要View实现的接口,Vi

详解Java编程中的反射在Android开发中的应用_Android

反射定义 "反射"(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为.为何需要反射 反射带来的好处包括:     在运行时检测对象的类型.     动态构造某个类的对象.     检测类的属性和方法.     任意调用对象的方法.     修改构造函数.方法.属性的可见性. 反射方法Method getDeclaredMethod方法 声明如下: public Method getDeclaredMethod(String name, Class<?>

Android开发之关于项目

本系列文章会根据项目的进度进行相关介绍,其会分为多个模块,每个模块互不依赖,各个模块都是单独的学习内容,如sqlite学习模块,contacts联系人模块等. 新建项目 相信大部分童鞋都可以自定义项目了,那么在此,我简单介绍下android studio新建项目的过程. 最终,android studio会为你生成2个build.gradle文件,你可以选择android视图浏览文件,根据google最新提供的sdk版本,我们把项目设置为api 14~23,打开你的project项目的gradl

Android开发性能优化总结_Android

一. 加载 预加载:1.反射注解框架Reflect信息,在Application内多线程预加载至缓存.2.资源预加载 懒加载:1.Fragment懒加载2.资源懒加载 二. 缓存 1. Http缓存,淘汰时间 2. 图片缓存,bitmap压缩,Lru淘汰,持久化二级缓存 3. 反射注解框架Reflect信息缓存,防止多次反射操作 三. 异步防止Anr 1. 避免在UI线程做太多耗时操作,IntentReceiver > 10s Anr 2. 并发操作多用读写锁,少用synchronized,An

用Eclipse搭建Android开发环境并创建第一个Android项目(eclipse+android sdk)_Android

一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 1.安装和配置JAVA开发环境:   ①把准备好的Eclipse和JDK安装到本机上(最好安装在全英文路径下),并给JDK配置环境变量,其中JDK的变量值为JDK安装路径的根目录,如我的为:D:\Program Files\Java\jdk1.7.0_02: ②打开命令提示符(cmd),输入java -version命令,显示如下图则说明JAVA环境变量已经配置好了. 2.安装ADT插件: