Android屏幕适配 px,dp,dpi及density的关系与深入理解

PX(pixel):

即传统计算机语言中描述的像素,在Android则代表绝对像素。

之所以Android中不推荐使用这种单位,正是因为不同生产厂商,不同品牌,不同屏幕的设备,其分辨率亦不一。

举例来说,我们现在将某个Button的width设为160px,则会出现如下情况:

在分辨率为“320宽”的设备里,该按钮显示占屏幕宽度一半;

在分辨率为“640宽”的设备里,该按钮显示占屏幕宽度的四分之一;

Android 知识点总结(一)

Handler

  1. Handler 的回调方法是在 Looper.loop()所调用的线程进行的;

  2. Handler 的创建需要先调用 Looper.prepare() ,然后再手动调用 loop()方法开启循环;

  3. App 启动时会在ActivityThread.main()方法中创建主线程的 Looper ,并开启循环,所以主线程使用 Handler 不用调用第2点的逻辑;

Android Boardcast 权限的使用

1. 广播的接收权限

设置广播接收权限的目的在于避免自己应用发送的广播被其他恶意应用接收到。简单来说就是定义谁能接收我的广播,用法如下:

首先发送方的应用在清单文件里自定义一个权限:

1
2
<permission android:name="cn.qiracle.RECEIVER"
android:protectionLevel="signature" />

这里 protectionLevel 选择 signature 或者 signatureOrSystem 更加安全。

读《深入理解Java虚拟机》总结<二.java内存模型与线程>

主内存与工作内存

java内存模型规定了所有变量都存储在主内存中。此处的变量是指实例字段,静态字段和构成数组对象的元素。但不包括局部变量与方法参数。因为后者是线程私有的,不会被共享。除主内存之外,每个线程还有自己的工作内存,线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取,赋值)都必须在工作内存中进行,而不能直接读写主内存中的变量。不同线程之间也无法之间访问对方工作内存中的变量。线程间变量值得传递均需要通过主内存来完成。

java IO流总结

java IO流简介

java IO流可 分为输入流 和 输出流。这里的输入和输出是相对于程序而言的,外部数据输入到程序中时,我们用输入流,程序中的数据输出到外部时,我们用输出流。

输入流又可分为字节输入流和字符输入流。字节输入流的基类为InputStream,我们常用到它的子类FileInputStream, 字符输入流的基类为Reader,我们常用到它的子类FileReader。

输出流又可分为字节输出流和字符输出流。字节输出流的基类为OutputStream,我们常用到它的子类FileOutputStream, 字符输出流的基类为Writer,我们常用到它的子类FileWriter。

|