URL
从Android9开始,Android默认要求使用加密连接,因此不推荐使用HTTP协议发送或接收数据(这种方式会采用明码传送数据,因此可能导致安全问题),需要使用传输层安全协议(Transport Layer Security)。但如果目标网站就是使用HTTP协议,那么App确实需要使用HTTP协议与目标网站通信,在AndroidManifest.xml文件中有两种配置方式。
- 在<application.../>元素中通过android:networkSecurityConfig属性指定网络安全配置,通过该配置文件将目标网站加入白名单中。
- 将<application.../>元素的android:usesCleartextTraffic属性指定为true,该App将完全不受加密连接的限制。
多线程下载
为了实现多线程下载,程序可按如下步骤进行。
- 创建URL对象。
- 获取指定URL对象所指向资源的大小(由getContentLength()方法实现),此处用到了HttpURLConnection类。
- 在本地磁盘上创建一个与网络资源相同大小的空文件。
- 计算每条线程应该下载网络资源的哪个部分(从哪个字节开始,到哪个字节结束)。
- 依次创建、启动多条线程来下载网络资源的指定部分。
OKHttp
涉及Sessiion、Cookie的处理了,如果使用HttpURLConnection来处理这些细节,处理起来难度大.
为了更好地处理向Web站点请求,包括处理Session、Cookie等细节问题,Apache开源组织
提供了一个HttpClient项目,后来随着HttpClient的升级,Android不愿意继续升级它,于是就删除了HttpClient(但又没有删干净,可以通过legacy库继续使用老版本的HttpClient)。
OkHttp可被视为Apache HttpClient的替代品。在Android开发中另一个常用的网络框架Retrofit就是基于OkHttp 做的封装,Retrofit封装之后更符合RESTful风格,但Retrofit也丢失了部分灵活性。
Hybird(混合)开发方式
Android App既可使用WebView展示HTML5页面内容,也可解释、执行JS来实现简单的动态交互;反过来,JS又可调用原生AndroidAPI的功能。这种方式就是典型的Hybird(混合)开发方式。
Hybird开发方式的优势在于:App的大量开发工作实际上由HTIML 5和JS完成,而HTML 5与JS实现的功能具有跨平台的优势,因此通过这种方式开发的,App可以迅速移植到iOS平台上。
此外,由于WebView所显示的内容只是一个HTML页面,而这个HTML页面可能保存在远程服务器端,因此开发者只要更新远程HTML页面,该WebView所显示的内容就会即时更新,所以具有很高的实效性。
系统桌面
Android系统提供了一个桌面--也就是用户启动后第一次看到的界面。在Android桌面上首先看到的壁纸,接着可以看到桌面上规则排列的多个图标,这些图标就是Android桌面控件,包括快捷方式与桌面控件。每个快捷方式只占用桌面的一个摆放位置;桌面控件则可以很大,一个桌面控件就可以占据多个摆放位置。
Android系统提供了很好的可扩展性,开发者完全可以在程序序中管理Android桌面,包括改变系统壁纸、管理快捷方式与创建桌面控件。
传感器
Android系统提供了对传感器的支持,如果手机设备的硬件提供了这些传感器,Android应用可以通过传感器来获取设备的外界条件,包括手机设备的运行状态、当前摆放方向、外界的磁场、
温度和压力等。Android系统提供了驱动程序去管理这些传感器硬件,当传感器硬件感知到外部环
境发生改变时,Android系统负责管理这些传感器数据。
对于Android应用开发者来说,开发者只要为指定传感器注册一个监听器即可,当外部环境发生改变时,Android系统会通过传感器获取外部环境的数据,并将数据传给监听器的监听方法。
Android系统为传感器支持提供了强大的管理服务,开发传感器应用的步骤如下。
- 调用Context的getSystemService(Context.SENSOR_SERVICE)方法获取SensorManager 对象,SensorManager对象代表系统的传感器管理服务。
- 调用SensorManager的getDefaultSensor(int type)方法来获取指定类型的传感器
- 通常选择在Activity的onResume()方法中调用SensorManager的registerListener()方法为指定传感器注册监听器,程序通过实现监听器即可获取传感器传回来的数据。
GPS
GPS定位系统由三部分组成,即GPS卫星组成的空间部分、若干地球站组成的控制部分和普
通用户手中的接收机这三个部分。
GPS的空间部分由GPS卫星组成,覆盖于全球上空的GPS卫星星座,必须保证在各处能时时观测到高度角为15°以上的4颗卫星,这样才能保证GPS系统的准确定位。目前,GPS卫星星座共有24颗GPS卫星,均匀分布在倾角为55°的6个轨道上,保证在地面的任意一点都可同时观测到24颗卫星。
就像AAndroid为电话管理支持提供了TelephonyManager类、为音频管理支持提供了AudioManager类,Android为支持GPS则提供了LocationManager类,通过LocationManager类及其他几个辅助类开发人员可以非常方便地开发出GPS应用。
Android 9新增的室内 Wi-Fi 定位
Android9新增了对RTTWi-Fi协议的支持,因此运行Android9的设备可支持室内Wi-Fi定位。
如果设备要测量与3个或更多Wi-Fi接入点的距离,则可以使用多点定位算法来对该设备进行定位。
室内Wi-Fi定位的管理器是WifiRttManager,与其他管理器一样,程序可通过Context来获取该类的实例。
临近警告
LocationManager API提供了一个addProximity Alert(double latitude,double longitude, float radius, long expiration, PendingIntent intent)方法,该方法用于添加一个临近警告。
所谓临近警告也就是当用户手机不断地临近指定固定点,与该固定点的距离小于指定范围时,系统可以触发相应的处理。
Android Jetpack 概述(系列入口)
https://blog.youkuaiyun.com/indeedes/article/details/156562707
8645



被折叠的 条评论
为什么被折叠?



