安卓-零碎知识点

安卓 tools 标签使用

查看假数据, 只会出现在设计模式(预览)中。 tools:text="fake data"

安卓逻辑分辨率 小知识

华为 8 寸平板 1920*1200 16:10 283PPI xdpi 逻辑像素密度 1.76875

逻辑分辨率 1086 * 678

虚拟按键占 96px 除去虚拟按键则分辨率 1824 1200
虚拟按键占 96px 除去虚拟按键则分辨率 1200 1824

华为 10.1 寸平板 1920*1200 16:10 224PPI hdpi 逻辑像素密度 1.4

逻辑分辨率 1371 * 857
1920 1128 虚拟按键占72px
1200 1848 虚拟按键占72px

获取 density 和 densityDpi 的代码

1
2
3
4
5
6
7
8
private void getDisplayInfo(){
Resources resources=getResources();
DisplayMetrics displayMetrics = resources.getDisplayMetrics();
float density = displayMetrics.density;
int densityDpi = displayMetrics.densityDpi;
System.out.println("----> density=" + density);
System.out.println("----> densityDpi=" + densityDpi);
}

iOS 的屏幕规格可以列举处理,iPhone 4 及更新的设备,只有 4 种规格,他们的逻辑分辨率像也是固定的。Android 这边就比较复杂了,理论上可以出现无数种逻辑分辨率。

Android 的逻辑分辨率可以通过三个步骤推导得到:

  1. 获取屏幕像素密度。
  2. 计算逻辑像素密度 = 屏幕像素密度 / 基准屏幕像素密度。
  3. 计算逻辑分辨率 = 物理分辨率 / 逻辑像素密度。

以 Nexus 5 为例:

  1. 屏幕像素密度 480dpi。
  2. 除以基准屏幕像素密度 480dpi / 160dpi基准,得到density倍数3。
  3. 计算逻辑分辨率:(1920, 1080) / 3 = (640, 360)。

我们可以总结出一个结论:Android设备,虽然屏幕分辨率不同,但是通常相同大小屏幕的设备具有相同的逻辑分辨率。

有什么指导意义呢?Android 设备虽然有数不清的屏幕规格,但是逻辑分辨率的规格就没有那么多啦,而且可以方便的找到几个参考值:360×640(大部分720P及以上手机屏幕)、411×731(部分2K屏幕)等,基准设计稿就可以参考这些值。

安卓 keystore 小知识

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
命令:
-certreq 生成证书请求
-changealias 更改条目的别名
-delete 删除条目
-exportcert 导出证书
-genkeypair 生成密钥对
-genseckey 生成密钥
-gencert 根据证书请求生成证书
-importcert 导入证书或证书链
-importpass 导入口令
-importkeystore 从其他密钥库导入一个或所有条目
-keypasswd 更改条目的密钥口令
-list 列出密钥库中的条目
-printcert 打印证书内容
-printcertreq 打印证书请求的内容
-printcrl 打印 CRL 文件的内容
-storepasswd 更改密钥库的存储口令

查看密钥信息:
keytool -list -v -keystore debug.keystore

  1. 更改密钥库的存储口令为**android**
    keytool -storepasswd -keystore my.keystore

  2. 更改条目的别名为**androiddebugkey**
    keytool -changealias -keystore my.keystore -alias myOldAlias -destalias androiddebugkey

  3. 更改条目的密钥口令为**android**
    keytool -keypasswd -keystore my.keystore -alias androiddebugkey

A, B 两个应用

  • 包名(appid)相同,签名相同,这不用说肯定会认为是覆盖安装,手机认为这是同一个应用。
  • 包名(appid)相同,签名不同,手机同样认为这是同一个应用,假设A先在手机上,安装B时会安装不上, 解决办法是卸载当前已安装版本, 再重装。

安卓调试设备 小知识

前提: 一定要在 开发者选项中 开启USB调试

通过 use 连接

除了可以通过 USB 连接设备与电脑来使用 adb,也可以通过无线连接,一定范围内摆脱 USB 连接线的限制啦!

操作步骤:
将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。将设备与电脑通过 USB 线连接。

应确保连接成功(可运行 adb devices 看是否能列出该设备)。

让设备在 5555 端口监听 TCP/IP 连接:

开发者选项,点允许usb调试

1
adb tcpip 5555

当需要连接多个设备时,可重复上面的操作,但是端口号需要变一下。

我的安卓的书签

https://blog.csdn.net/hty1053240123/article/details/52486319

前端基础(二)–快速布局神器 Flexbox 布局 | w4lle’s Notes
http://w4lle.com/2016/05/08/Flexbox/

wrap_content 的困惑_Wood_Water_Peng 的博客-CSDN 博客_wrap_content计算方式
https://blog.csdn.net/wood_water_peng/article/details/46633967

对Android应用被强杀重回应用的优化处理(重走应用流程)_hoofi.xyz-CSDN博客
https://blog.csdn.net/Heartyhu/article/details/54892148

Activity 启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance - 泡在网上的日子
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0520/2897.html

Android 通过 HTTP协议实现断点续传下载_epeaktop的专栏-CSDN 博客_androidhttp 断点续传
https://blog.csdn.net/epeaktop/article/details/74931997

Android 中一个 Activity 关闭另一个 Activity 或者在一个 Activity 中关闭多个 Activity - 泡在网上的日子
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2017/0629/8124.html

简单明了,彻底地理解 Binder_huachao1001 的专栏-CSDN博客_谈谈你对binder的理解
https://blog.csdn.net/huachao1001/article/details/51504469

参考

ADB连接Android设备的三种方法_移动开发_c1063891514的博客-CSDN博客
https://blog.csdn.net/c1063891514/article/details/79039384