安卓app基本开发 (一)基础学习

安卓app基本开发 (一)基础学习书:第一行代码纸质第3版,用的是kotlin电子版第2版,用的是Java编程,移动平台,实际应用为主结果:APPandroid平台,软件著作权,暂时不会涉及ios平台,APP:手机或者平板上层应用的APPandroid:系统剪裁移植,驱动开发NDK开发C,CPP,so动态库,dll动态库,静态库,APP开发APPCPP,cout,平台不相关ch5,js,UIAPP,UIjava->CPPJAVA是很简单的,相对Cpp来说多了inte

大家好,欢迎来到IT知识分享网。

书:第一行代码
纸质第3版,用的是kotlin
电子版第2版,用的是Java

编程,移动平台,实际应用为主

结果:APP

android平台,软件著作权,
暂时不会涉及ios平台,

APP: 手机或者平板上层应用的APP

android:

  1. 系统剪裁移植,驱动开发
  2. NDK开发 C,CPP, so动态库,dll动态库,静态库,
  3. APP开发

APP

  1. CPP, cout, 平台不相关
  2. c
  3. h5, js, UI
  4. APP,UI

java -> CPP

  1. JAVA 是很简单的,相对Cpp来说
  2. 多了interface

review

  1. android 开发 大概地位 和其他相关的开发的区别
  2. 开发环境
    • JAVA
    • SDK
    • android studio
    • 模拟器
  3. 第一个APP

App 工程结构

  1. 了解 文件的组成,以及相应的用途
  2. 编译软件gradle,去下载,放到用户目录 的 .gradle
  3. 根据编译脚本 工程 prject build.gradle 统御全局
    • 模块 app1 build.gradle 特殊 SDKVersion 引入第三库的依赖
    • app2 build.gradle

打开上次第一个app的工程

  1. 找到当前使用的gradle版本号
  2. 找到project的build.gradle, 看看仓库是指向哪里
  3. 找到app的build.gradle,看看最小兼容的SDK版本是多少
  4. 找一下,当前app的图标,看看在哪里
    • Androdimanifes.xml
    • res目录
  5. 看一下,当前你这个app的名字是什么
  6. 源代码在哪里
  7. apk在哪里

修改第一个app

  1. app的图标
  2. app的名字
  3. sdk版本 mini
  4. 编译运行到模拟器

尝试adb命令

  1. adb
    • devices
    • push
    • pull
    • shell
  2. 进入shell
    • linux命令

recap

  1. 工程文件
    • project
      • build.gradle
    • app
      • build.gradle
      • src
      • res
      • AndroidManifest.xml

调试

  1. adb
    • shell 进入模拟器后台
  2. Log
    • 静态类,直接调用其函数
    • Log.v(String tag, String msg) vervose 级别最低
    • Log.d debug
    • Log.i info
    • Log.w warn
    • Log.e error 级别最高
  3. AndroidStudio中Logcat用法
    • 选择模拟器
    • 选择app进程
    • 选择日志级别,级别越高,所看日志越少
  4. 日志组成
    2020-09-28 15:29:51.516 8900-8900/com.zsc.myapplication E/MainActivity: error hello world
    • 日期时间
    • PID进程ID
    • 包名
    • level级别
    • tag
    • msg
  5. Logcat过滤日志
    • filter
    • 不要勾选正则表达 Regex
    • 综合使用 tag, message, package, PID 等来过滤日志

任务 Log和Logcat使用

  1. Log写日志
  2. Logcat查看和过滤日志

Activity 组件

  1. 活动
    • java源代码
    • xml 布局layout文件, 在AS中有两种打开方式
      • text
      • design
    • 注册 AndroidManifest.xml
  2. 建立Activity的源代码和布局之间的联系
    • setContentView
    • 底层做的事情是,实例化布局中的所有UI控件,并且测量设置好位置关系

手动创建Activity

  1. 新建Activity
  2. 新建layout
  3. 建立二者联系
  4. 把手动创建的Activity设置成 第一个启动的Activity

Toast 的用法

  1. 静态类
  2. Toast.makeText(MyActivityFirst.this, // 上下文环境
    “面包烤焦了”, // 弹出提示的那条消息
    Toast.LENGTH_LONG).show(); // 消息维持long一点的时间
  3. 静态函数,直接用类名调用
    • Log.v
    • Toast.makeText 返回一个Toast的实例
  4. 非静态函数,就用实例(对象)来调用
    • Toast 的 show
    • Toast.makeText().show();

任务 Toast使用

  1. layout 加一个Button
  2. java 操作这个Button
    • 能够响应click操作
  3. 加入Toast

Activity之间的跳转

  1. 借助Intent
  2. 两种方式
    • 显式 构造一个Intent(first, second), startActivity
    • 隐式

Activity之间的跳转

  1. 借助Intent
  2. 两种方式
    • 显式 构造一个Intent(first, second), startActivity
    • 隐式 根据Activity注册的时候(AndroidManifest.xml),指定intent-filter,Action,Category, data
    • 不需要指定类名,而是去匹配 Action,Category, data

任务 Activity隐式跳转

  1. 修改AndroidManifest.xml,第二个Activity,增加intent-filter
  2. 在第一个Activity的代码里面,用itent来指定action,增加category,
  3. 设置data(待选)
  4. Intent使用

Activity之间的数据传递

  1. A1 -> A2
    • 还是利用intent,把数据附着在intent上传递过去
    • A1 Intent.putExtra
    • A2 onCreat 里面 Intent.getXXXExtra
  2. A2 -> A1
    • A1 启动A2 要求A2给我返回结果,startActivityForResult
    • A2 Intent.putExtra, setResult
    • A1 重写回调函数 onActivityResult,在其中getXXXExtra

关于override 函数

  1. 菜单 Code -> Override Methods -> 直接打出 onActivityResult -> 选中即可
  2. 在类内部,右击鼠标 -> Generate -> Override Methods -> 直接打出 onActivityResult -> 选中即可

任务 Activity之间相互传递数据

  1. A1 -> A2
  2. A2 -> A1
  3. 从A2返回到A1,也可以不用按钮,而是override onBackPressed

关于 adb 的路径

  1. 在cmder中无法直接运行adb
  2. 需要把要在命令行下 执行的 程序的路径 添加到path这个环境变量
  3. win 我的电脑-右击-属性-高级-环境变量-path
  4. linux 编辑文件 ~/.bashrc, 设置PATH环境变量

一个实际的项目

  1. yeyunxiaopan.xyz:8003
  2. 体会一下从原始需求到实现APP的过程

Activity 生命周期

任务 体会Activity生命周期

  1. 运行源码 helloworld-lifecycle
  2. 体会生命周期
  3. 注意对话框风格的Main3Activity 需要把父类改成Activity
  4. 尝试销毁第一个Activity,能够看到onDestory

UI布局

UI控件

  1. 最基本的用法
  2. 普通控件的用法
    • Button
    • ImageView
  3. 复杂的控件
    • ListView
    • RecyclerView

使用Button和ImageView

  1. Button setOnClickListener 三种设置接口的方法
    • 匿名类
    • 实名类
    • MainActivity implemnts View.OnclickListener
  2. ImageView
    • 静态设置一个src 的图片
    • 在代码里动态修改图片
    • 图片放在工程的src\main\res\drawable目录下
  3. 其它的控件
  4. UI 布局

线性布局

  1. LinearLayout
  2. 方向 orintation
  3. 控件对齐方式 layout_gravity
    • 注意和方向配合: 横向设置纵向的对齐,纵向设置横向的对齐
    • 注意与控件内容对齐gravity的区别
  4. 权重 layout_weight
    • 按照一定比例分配宽高
  5. 嵌套使用

相对布局

  1. RelativeLayout
  2. 相对父元素
  3. 相对兄弟元素

任务 线性布局

  1. 三个按钮,纵横方向
  2. 对齐方式
  3. 权重的用法
  4. 嵌套布局

任务 相对布局

  1. 相对父元素,5个按钮
  2. 相对兄弟元素,5个按钮

帧布局

  1. FrameLayout
  2. 默认每个元素堆叠在左上角

约束布局

  1. ConstraintLayout
  2. 尽量减少嵌套,提高性能
  3. 类似相对布局,不过更加灵活
  4. 可以按照角度来设置相对位置
    • circle 相对某一个控件
    • 半径
    • 角度 0度是垂直方向

布局重用

  1. layout 被 其它layout包含 include

自定义控件

  1. 自定义一个View,从Layout派生
    • 实现构造函数
      • inflate 一个静态的布局
  2. 使用自定义控件
    • 代码里使用,直接new出来,比如 定制 toast
    • layout里静态使用,和普通控件用法一样,注意包名是完整的

自定义控件

  1. 自定义View, inflate 之前的嵌套布局
  2. 定制toast,使用自定义的控件
  3. layout中静态使用自定义控件

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/11171.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信