(第一行代码)笔记(一)

Android系统四层架构

  1. Linux内核层
  2. 系统运行库层
  3. 应用框架层
  4. 应用层

目录结构

  1. src目录
  2. gen目录
  3. assets目录
  4. bin目录
  5. libs
  6. res
  7. androidmanifest.xml
  8. project.properties

四大组件

  1. Activity 活动
  2. Service 服务
  3. BroadcastReceiver 广播接收器
  4. Content Provider 内容提供者

intent意图

  • 显示意图
  • 隐式意图
    category

intent-filter data标签

  • scheme 指定协议的数据协议部分,如http
  • host 数据的主机名部分,如www.baidu.com
  • port 数据的端口部分,一般紧随主机名后
  • path 主机和端口之后的内容
  • mimeType 指定可以处理的数据类型

intent传递数据

  • putExtra支持多种类型数据

返回数据给上一个activity

  • startActivityForResult
  • onActivityResult
  • setResult
  • resultCode返回结果码
  • requestCode请求码

活动的生命周期

  • onCreate
  • onStart
  • onResume
  • onPause
  • onStop
  • onDestroy
  • onRestart

完整生存期 onCreate->onDestroy
可见生存期 onStart->onStop
前台生存期 onResume->onPause

处于onStop阶段的activity。当另一个优先级更高的程序,则会杀掉进程,返回上一个activity,会从onCreate方法开始执行。


activity被回收,之前所填写的数据怎么办?onSaveInstanceState


活动的启动模式

  • standard 默认启动模式,每启动一个新activity都会新建,不管返回栈中是否有此activity实例。
  • singleTop 如果返回栈栈顶已是此activity则认为可以直接使用,不会再创建新的activity,如果当前栈顶不是此activity还是会创建新的activity
  • singleTask 查询当前返回栈中是否已存在此activity,如已存在则清空此activity之前所有的activity,并执行此activity onStart,否则创建新实例。

返回栈,getTaskId获取当前activity所处返回栈的id

知晓当前是在哪一个活动
新建BaseActivity继承Activity,重写onCreate方法,增添打印方法内容为getClass().getSimpleName()
Activity启动小技巧
如有需要传数据activity可增添方法actionStart传参context和需要参数,静态

控件属性

  • layout_width
  • layout_height
  • 三种值,match_parent fill_parent wrap_parent官方推荐使用match_parent
  • 控件内容对齐方式使用gravity:center 可用 | 来同时指定多个值
添加点击事件

匿名类的方式注册监听器实现对应空间的通常为View.OnClickListener 通过 v.getId() 对不同控件的注册监听做不同处理

  • TextView
  • Button
  • EditText
  • ImageView
  • ProgressBar
    可指定style属性,更换ProgressBar样式
  • AlertDialog
    创建使用AlertDialog.Builder setTitle标题 setMessage 提示内容setCancelable 是否按返回键消除setPositiveButton setNegativeButton 最后调用show() 方法显示
  • progressDialog
    类似AlertDialog

本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:

  • Markdown和扩展Markdown简洁的语法
  • 代码块高亮
  • 图片链接和图片上传
  • LaTex数学公式
  • UML序列图和流程图
  • 离线写博客
  • 导入导出Markdown文件
  • 丰富的快捷键

快捷键

  • 加粗 Ctrl + B
  • 斜体 Ctrl + I
  • 引用 Ctrl + Q
  • 插入链接 Ctrl + L
  • 插入代码 Ctrl + K
  • 插入图片 Ctrl + G
  • 提升标题 Ctrl + H
  • 有序列表 Ctrl + O
  • 无序列表 Ctrl + U
  • 横线 Ctrl + R
  • 撤销 Ctrl + Z
  • 重做 Ctrl + Y

Markdown及扩展

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]

使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。

本编辑器支持 Markdown Extra ,  扩展了很多好用的功能。具体请参考Github.

表格

Markdown Extra 表格语法:

项目价格
Computer$1600
Phone$12
Pipe$1

可以使用冒号来定义对齐方式:

项目价格数量
Computer1600 元5
Phone12 元12
Pipe1 元234

定义列表

Markdown Extra 定义列表语法: 项目1 项目2
定义 A
定义 B
项目3
定义 C

定义 D

定义D内容

代码块

代码块语法遵循标准markdown代码,例如:

@requires_authorization
def somefunc(param1='', param2=0):
    '''A docstring'''
    if param1 > param2: # interesting
        print 'Greater'
    return (param2 - param1 + 1) or None
class SomeClass:
    pass
>>> message = '''interpreter
... prompt'''

脚注

生成一个脚注1.

目录

[TOC]来生成目录:

数学公式

使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.

  • 行内公式,数学公式为: Γ(n)=(n1)!nN
  • 块级公式:

x=b±b24ac2a

更多LaTex语法请参考 这儿.

UML 图:

可以渲染序列图:

Created with Raphaël 2.1.0 张三 张三 李四 李四 嘿,小四儿, 写博客了没? 李四愣了一下,说: 忙得吐血,哪有时间写。

或者流程图:

Created with Raphaël 2.1.0 开始 我的操作 确认? 结束 yes no
  • 关于 序列图 语法,参考 这儿,
  • 关于 流程图 语法,参考 这儿.

离线写博客

即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.csdn.net/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。

用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。

博客发表后,本地缓存将被删除。 

用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。

注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱

浏览器兼容

  1. 目前,本编辑器对Chrome浏览器支持最为完整。建议大家使用较新版本的Chrome。
  2. IE9以下不支持
  3. IE9,10,11存在以下问题
    1. 不支持离线功能
    2. IE9不支持文件导入导出
    3. IE10不支持拖拽文件导入


  1. 这里是 脚注内容.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值