安卓零碎知识点

安卓 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 的代码

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 小知识

命令:
 -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调试

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容