丙午🐎年

acc8226 的博客

图

  1. 根据资源文件和 AndroidManifest.xml 生成 R.java 文件
  2. 处理 aidl,生成对应的 java文件,如果没有 aidl,则跳过
  3. 编译工程源码(主项目,库)src 目录下所有的源码,同时上边生成的 R.jav a和 aidl 生成的 java 文件也会被编译生成相应的 class 文件
  4. 将第 3 步生成的 class 文件打包生成 .dex 文件
  5. 将资源文件打包,生成初始的 apk
  6. 将第 4 步生成的 .dex 文件加入到apk中生成未签名的包
  7. apk 签名

1. aapt(Android Asset Packaging Tool) - Package the android resources得到R.java文件

命令 build-tools/安卓某个版本/aapt.exe package

1
2
set path=%path%;D:\Android\android-sdk\build-tools\25.0.2
aapt package -f -m -M AndroidManifest.xml -I D:/Android/android-sdk/platforms/android-22/android.jar -S res -J gen
阅读全文 »

if 逻辑判断

<if> 标签没有任何的标签内属性,在 <if> 标签下紧跟着嵌套一个条件判断任务,如果条件判断为真,则直接处理 <then> 标签的内容;如果条件为假,则跳转到 <elseif> 标签中,接下判断该标签内的条件判断并根据结果选择去处理接下来的 <then> 内容或者再跳转出来处理 <else> 标签的内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<property name="what.is.your.name" value="mobile.qq"/>
<if>
<equals arg1="${what.is.your.name}" arg2="mobile"/>
<then>
<echo message="My name is mobile."></echo>
</then>
<elseif>
<equals arg1="${what.is.your.name}" arg2="qq"/>
<then>
<echo message="My name is qq."></echo>
</then>
</elseif>
<else>
<echo message="I don't know your name."/>
</else>
</if>
阅读全文 »

要点:如果不是必须, 用系统控件

RxJava

线程切换需要注意的地方
RxJava 内置的线程调度器的确可以让我们的线程切换得心应手,但其中也有些需要注意的地方。

  • 简单地说,subscribeOn() 指定的就是发射事件的线程,observerOn() 指定的就是订阅者接收事件的线程。
  • 多次指定发射事件的线程只有第一次指定的有效,也就是说多次调用 subscribeOn() 只有第一次的有效,其余的会被忽略。
  • 但多次指定订阅者接收线程是可以的,也就是说每调用一次 observerOn(),下游的线程就会切换一次。

RxJava 中,已经内置了很多线程选项供我们选择,例如有:

  • Schedulers.io() 代表io操作的线程, 通常用于网络,读写文件等 IO 密集型的操作;

  • Schedulers.computation() 代表CPU计算密集型的操作, 例如需要大量计算的操作;

  • Schedulers.newThread() 代表一个常规的新线程;

阅读全文 »
0%