Android菜鸟饭团#Udacity Android#第一课 活动笔记
我们的课程: 1:课程将介绍Android的设计模式与原则,我们要学会到如何使用框架,专注于如何让应用独一无二而不是重复制造,理解如何为移动设备做出最佳的用户体验 2:首先我们会一起学习一个天气的应用程序,因为它比较简单而且包含了大量我们要学习的核心API 3:这里面并不教我们如何做一个具体的应用,而是在锻炼我们像一个移动开发者一样思考。Android移动开发者与普通开发者不同,一些固化的经验和直觉对我们的作用是相反的 4:我们的学习将要用到Android studio,Android Studio是基于Intellij的专门为Android应用开发定制的IDE course,Android SDK是已经包含在内的 建立一个Android项目: 1:打开android studio后,选择“start a new android studio project” 2:application name是应用程序的名字,package name是包名,它应该在所有能在android上安装的包这个范围内都是独一无二的,我们习惯以域名反过来写作为包名,但这种包名不能发布到Google play上,我们通常就让其保持默认,并且我们需要注意包名后缀是否为“.app” 3:我们需要选择最小SDK版本,也许你因版本问题还需要选择目标SDK(目标SDK的android版本应该是设备使用数最多的那个版本),旧版本可以运行新版本,我们应该设置froyo为最低SDK是他能够适配所有>=froyo的机型 4:App我们支持的最早的版本是Gingerbread,这样在Google Play Store激活的设备范围内我们可以覆盖99%的设备, 5:模板我们选择Blank Activity with Fragment 6:我们的Activity名是MainActivity,它的布局由activity_main所定义的,这是一个XML文件,Fragment的布局来自fragment_main,也是一个XML文件 7:创建后,在android studio中,左边是文件目录,默认情况下我们看见的文件是基于 android视图的平面式项目结构,并且高亮显示了我们需要编辑的android源代码文件 8:在不使用android移动设备时我们需要创建一个android SDK中的模拟器(AVD),对于我们来说我们配置一个虚拟的Nexus 5就行了,其中的配置选项默认就行了。这个模拟器实际上是运行Android虚拟机,我们可以在不同的硬件和软件配置上测试和调试程序,可以使用屏幕或者虚拟按键来与应用程序进行交互, 9:Android系统由多个层次组成,Adspace 是 Linux 内核,负责底层任务,像是硬件总线和面板管理,在它上面是C/C++核心库,例如 Libsc SQLite和 Android Runtime。 这里面包含一些库,和Android的虚拟机,Dalvik或者最近出的ART 10:当我们在Android Studio点击运行你的程序时,首先我们的代码会被编译成字节码,然后才会在虚拟机上运行。在项目的根目录中我们可以用 ./gradlew tasks 查看所有能运行的任务。在我们建立一个Android项目时gradle会将字节码和其他资源(如图片、字符串、UI的XML文件)一起编译打包到一个APK应用程序包里(APK包其实是一个特殊格式的zip文件),准备好APK包后给它签上名 然后通过Android Debug Bridge(ADB)推送到设备上,我们可以通过终端界面用ADB和设备交互、debug,还可以做例如推进、拉出文件、查看logcat输出,甚至运行一个远程的shell,一旦Android的GDO被ADB安装了APK,它会再次用ADB发送一个命令 通过远程shell来启动这个App 11:在我们将应用程序安装在手机上时,除了USB数据线的连接我们还要开启手机上的开发者选项中的USB调试,我们可以通过设置_关于手机_版本号(轻触七次)后找到 12:fragment是Activity一个模块化的容器,FrameLayout适合简单的布局(Linear Layout使子视图水平或垂直排列,Relativr Layout 相对布局) 13:ListView把所有可见条目显示出来,可见条目数量取决于手机屏幕的大小,会在上下两头初始化一对条目 14:Context 列表条目布局的id 描述一个应用程序环境的信息,从而获取应用程序的资源和类R.java是自动生成用来统一定义我们所有资源文件。./gradlew tasks 查看所有能运行的任务,Placehelder是创建项目的时候生成的静态内部类,XML文件项目在res目录下可以看到各种各样的资源文件 Activity 简单来说就是一个界面,手机的一个桌面就是一个activity,软件的一个界面都是activity 1.Activity特点 通过后退键和home键返回activity 通过一个activity进入另一个activity 建议通过@string配置activity文字,f3快捷键进入配置文件中, 通过这种字符串输入方式可以很容易支持多语言,更方便 摘自论坛: android:text=""引号里的一般直接显示,但是@string就表示引用了string资源。你去res\values\下应该能找到一个 string.xml的文件。里面有<string name="hello_world">Hello World</string>这行代码,当然不一定是写的Hello World。这就是定义了一个string资源。你可以吧两个尖括号中的字改了,再运行就会发现变成你改了之后的字。 Android Studio基本操作 通过模拟器执行程序 2.Activity绑定自定义视图 选中常量按快捷键f4进入R.java R.java由资源文件动态生成 Android程序是从onCreate函数开始执行的 Activity通过setContentView来指定一个视图用来呈现内容
通过右键Refacto->Rename改名 发现R.java全自动的根据layout文件里的activity文件改名 可以把activity绑定其他自定义的布局(layout), 生成全新布局 MainActivity.java文件中已经生成了自定义的my_layout新布局
通过这种方式修改activity所绑定的布局
Project的目录结构 1.manifests 包涵文件AndroidMainifest.xml 是程序的配置文件 2.java 程序所有源代码存放的目录 3.res 资源文件存放目录 3.启动自定义的activity 在my_layout上创建一个Button按钮 进入text更改button名字,和id
之后在mainActivity通过findViewById()访问button的id 可以发现只要在布局文件中定义了btnStarAnotherAty这个id,我们就可以在mainactivity中直接访问这个id 设置一个setOnClickListener事件处理监听器,处理点击事件的接口?不清楚 new一个onclicklistener,按回车系统自动帮助生成 在onclick函数中启动一个activity 首先先创建一个activity, 可以创建一个java class,然后继承activity 还可以通过系统给的默认设定好的activity模板, new->activity 用模板的话,系统全自动的为我们提供layout文件,和一个类文件,在AndroidMainifest.xml文件中帮我们配置一个activity的标签 其他开发环境都需要手动操作 通过一个api:startActivities(); 创建一个new intent Intent括号里应当传进一个context 通过starActivity传一个intent实例,通过这个实例配置启动的目标activity 解决的一个问题: [Test3Project] AndroidManifest.xml file not found. Please, check Android facet settings. 这个最后发现是工程的文件路径配置不正确,不知道怎么搞的配置搞错了。 按照如下步骤检查: 在Project窗口的工程名称上点击右键,选择“Open Module Settings“(或者使用快捷键 Command+下箭头),检查如下路径是否与实际一致。 此处为贴图,检查 Module--》android--》Structure 中的文件路径。 修改与实际一致后问题解决。 说明一下,在TextView控件中修改了两个地方 android:text="@string/input_file_name_cn" //修改了text属性,更改了显示的文本内容。 android:id="@+id/label" // 增加了id属性,在相对布局中描述组建之间的相对关系是需要用到id属性,所以这里增加了id属性 EditText控件,接收用户的需要查找的文件名输入。 android:id="@+id/file_name_edit" //设置id属性 android:layout_width="fill_parent" //设置宽度为填满父组件 android:layout_height="wrap_content" //设置高度为根据内容调整 android:layout_below="@id/label"/> //设置组件位置为在组件label(也就是上面的TextView)的下方 Button和ListView同上,没有什么特别的地方。 TextView中android:text="@string/input_file_name_cn"这里表示TextView的显示内容是引用的字符串input_file_name_cn的内容。这个字符串定义在 res/values/string.xml这个目录中。
【书记员:鲁登科】 每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。 Android菜鸟饭团由南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
|