![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 93
沐雨花飞蝶
这个作者很懒,什么都没留下…
展开
-
Android应用程序的核心组件Activity
SingleTop(单顶模式):如果要启动的Activity已经位于栈顶,那么不会创建新的实例,而是调用已存在的实例的onNewIntent()方法。singleTask:如果要启动的Activity已经存在于任务栈中,则将该Activity上的所有Activity都出栈,使其成为栈顶的Activity,并调用其onNewIntent()方法。singleTop:如果要启动的Activity已经位于任务栈的顶部,则不会创建新的实例,而是调用已存在的实例的onNewIntent()方法。原创 2023-11-01 21:23:06 · 198 阅读 · 0 评论 -
Android广播BroadcastReceiver
有序广播(Ordered Broadcast):有序广播是一种按照优先级顺序依次传递的广播,每个接收者都有机会处理广播消息,并且可以中断广播的传递。标准广播(Normal Broadcast):标准广播是一种完全异步的广播,发送广播后,所有的接收者几乎同时收到广播消息。Android广播的实现原理是通过广播发送者发送广播,AMS根据广播过滤器的匹配条件选择合适的广播接收者,并将广播传递给它们。广播传递:当广播发送时,广播管理器会根据广播过滤器的匹配条件选择合适的接收者,并将广播传递给它们。原创 2023-11-01 21:22:24 · 380 阅读 · 0 评论 -
Android系统为什么采用Binder作为IPC机制
Android采用Binder作为IPC进程间通信机制有以下几个原因:高效性:Binder是一种基于内核的轻量级IPC机制,相比其他IPC机制(如Socket、管道等),Binder具有更高的性能和更低的资源消耗。它通过共享内存和零拷贝技术,实现了高效的进程间通信。安全性:Binder提供了安全的IPC机制,可以确保不同进程间的数据传输是可信的。它通过权限验证和沙箱机制,防止恶意进程对系统造成危害。原创 2023-10-09 20:14:51 · 175 阅读 · 0 评论 -
Android事件分发机制
它是ViewGroup类中的一个方法,用于将触摸事件传递给子View或处理自身的触摸事件。触摸事件的传递是通过触摸事件分发机制来实现的。当用户触摸屏幕时,系统会将触摸事件传递给顶层的ViewGroup,然后由ViewGroup负责将触摸事件传递给子View或处理自身的触摸事件。方法的作用是将触摸事件分发给子View或处理自身的触摸事件。它会根据触摸事件的类型和位置来确定是将触摸事件传递给子View,还是处理自身的触摸事件。原创 2023-10-09 20:14:00 · 168 阅读 · 0 评论 -
Jetpack生命周期感知组件ViewModel
ViewModel是一种用于存储和管理与UI相关的数据的类,它的生命周期与Activity或Fragment的生命周期无关,因此可以在多个Fragment之间共享数据。当Activity重建时,ViewModel保存的数据没有丢失的原因是ViewModel的生命周期与Activity的生命周期不同步。这样可以确保数据的持久性,并且不会因为配置变化而丢失。当Fragment被销毁时,ViewModel的实例会被保留,下次再创建相同的Fragment时,可以通过ViewModel的实例来获取之前保存的数据。原创 2023-09-28 01:14:45 · 360 阅读 · 0 评论 -
Jetpack视图绑定ViewBinding
总结来说,ViewBinding是一种方便、高效的视图绑定方式,可以减少代码的冗余和错误,并提高开发效率。它是Android开发中的一个很好的工具,值得开发者们去尝试和使用。通过使用ViewBinding,可以减少代码量,提高开发效率,并且避免了因为使用findViewById()方法而可能导致的类型转换错误。原创 2023-09-24 01:59:15 · 195 阅读 · 0 评论 -
Android性能优化(中)
Android性能优化在上一篇中介绍了性能优化的概念、内存泄漏和性能优化方式Android性能优化(上)我们继续说说Android性能优化数据库性能优化索引简单的说,索引就像书本的目录,目录可以快速找到所在页数,数据库中索引可以帮助快速找到数据,而不用全表扫描,合适的索引可以大大提高数据库查询的效率。(1). 优点大大加快了数据库检索的速度,包括对单表查询、连表查询、分组查询、排序原创 2017-12-14 11:18:32 · 209 阅读 · 0 评论 -
Android性能优化(上)
性能优化的概念响应时间响应时间: 从用户操作开始到系统给用户以正确反馈的时间。一般包括逻辑处理时间 + 网络传输时间 + 展现时间。对于非网络类应用不包括网络传输时间。展现时间即网页或App界面渲染时间。响应时间是用户对性能最直接的感受。TPS(Transaction Per Second)TPS为每秒处理的事务数,是系统吞吐量的指标,在搜索系统中也用QPS(Query Per原创 2017-12-14 11:18:29 · 424 阅读 · 0 评论 -
Android基础之Activity与Intent
Task和BackStack的基本概念Task的理解Task是多个Activity的集合,用户进行操作时将与这些Activity进行交互。 这些 Activity 按照启动顺序排队存入一个栈(即“back stack”)。Back Stack大部分Task都启动自Home屏幕。当用户触摸application launcher中的图标(Home屏幕上的快捷图标)时,应用程序的Task就进入原创 2017-12-14 11:18:25 · 437 阅读 · 0 评论 -
Android第三方推送
极光推送开发者集成 JPush Android SDK 到其应用里,JPush Android SDK 创建到 JPush Cloud 的长连接,为 App 提供永远在线的能力。 当开发者想要及时地推送消息到达 App 时,只需要调用 JPush API 推送,或者使用其他方便的智能推送工具,即可轻松与用户交流。图中红色部分,是 JPush 与 App 开发者的接触点。手机客户端侧,Ap原创 2017-12-14 11:19:39 · 1797 阅读 · 0 评论 -
Android开发之加密解密
加密算法主要作用就是隐藏信息,让信息不可见,也用于提高网络访问的安全。常见加密算法BASE64 用于二进制内容转换为可编辑的文本内容MD5 信息摘要算法SHA 安全散列算法HMAC 散列消息鉴别码DES 数据加密算法PBE 基于密码验证RSA 非对称加密算法SSL SSL加密 - https协议DH 密钥一致协议DSA 数字签名ECC 椭圆曲线密码编码学BASE64原创 2017-12-14 11:19:36 · 1267 阅读 · 1 评论 -
Android开发之推送
工信部将统一安卓推送标准,我们暂且先抛开(还没统一嘛_)推送,目前几乎是APP的标配了。我们来看看推送这件事。推送的实现方案总结一下几种推送实现方式(历史解决方案),目前已经被废弃掉了,了解一下还是有必要的。1.轮询应用程序阶段性的与服务器进行连接并查询是否有新的消息到达,必须自己实现与服务器之间的通信,例如消息排队等。而且还要考虑轮询的频率,如果太慢可能导致某些消息的延迟,如果太快,原创 2017-12-14 11:19:33 · 453 阅读 · 0 评论 -
Android开发之自定义View
自定义控件使用场景: 在实际开发中经常会遇到现有的UI控件不能满足项目需求,或一个功能涉及到多个UI控件的组合,或实现某一特效的UI,这时必须通过自定义View的方式,实现这些功能,例如股票的实时统计图、电子书等。分类绘制控件 - 自绘控件1.继承View需要自定义绘制内容,需要继承View,必须要重写onDraw方法,在onDraw方法中来进行绘制,实现onMeasure方法,来测量控原创 2017-12-14 11:19:26 · 345 阅读 · 0 评论 -
Android Studio中Instant Run
Instant Run翻译成中文叫即时运行或直接运行模板。不过我一般习惯了叫做闪电运行,为什么这么叫?请看图:小闪电有个小闪电(2.3.x版本独立有个小闪电,2.0-2.2是和左边运行图标在一块),因为是个小闪电,所以我习惯了叫做闪电运行。在Android Studio 2.0中引入的Instant Run是运行和调试命令的一种行为,可以显着减少应用更新的时间。虽然您的第一次原创 2017-12-14 11:19:02 · 888 阅读 · 0 评论 -
Android开发之WebView的使用(2)
在上一篇中我们说了WebView的基本使用安卓开发之WebView的使用(1),里面提到了WebViewClient和WebChromeClient。下面我们来探究一番WebViewClient和WebChromeClientLet's Go先了解一下概念Android WebView做为承载网页的载体控件,他在网页显示的过程中会产生一些事件,并回调给我们的应用程序,以便我们在网页加载过程原创 2017-12-14 11:18:58 · 630 阅读 · 1 评论 -
Android开发之WebView的使用(1)
WebView目前android市场上的一些应用采用的开发方式大致分为三种:> Native App - 用原生的Android控件开发出来的应用> Web App - 使用网页开发的应用> Hybrid App - 混合式的应用,原生的控件和网页混合开发Hybrid App中实现的主要技术native组件与Javascript的数据交互以及实现。概览:Android WebV原创 2017-12-14 11:18:55 · 361 阅读 · 0 评论 -
Android开发之NDK
NDKNDK全称:Native Development Kit。关于NDK,360百科是这么说的:1.NDK是一系列工具的集合。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK集成了交叉编译器,并提供了相应的mk文件隔离平台、CPU、API等差异,开发人员只需要简单修改mk文件(指出原创 2017-12-14 11:18:52 · 301 阅读 · 0 评论 -
Android开发之WIFI与网络连接处理
网络连接处理在说WiFi之前,先来说说网络连接处理。在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络。判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线连接还是GPRS手机网络连接,这样就可以在不同的网络连接下去调用不同的方法,处理不同的事情。现在app大多都需要从网络上获得数据。所以访问网络原创 2017-12-14 11:19:09 · 4611 阅读 · 0 评论 -
Android开发之蓝牙(Bluetooth)
Talk一下在上一篇中有介绍了Wifi与网络连接处理Android开发之WiFi与网络连接处理下面,来继续说说Android中蓝牙的基本使用。BluetoothBluetooth是目前使用的最广泛的无线通讯协议之一,主要针对短距离设备通讯(10米),常用于连接耳机、鼠标和移动通讯设备等。值得一提的是:android4.2新增了部分新功能,但是对于Bluetooth熟悉的人或许开始头疼原创 2017-12-14 11:19:12 · 1438 阅读 · 0 评论 -
Android开发之代码混淆
应用混淆(ProGuard)ProGuard是一个免费的JAVA类文件压缩,优化,混淆器。它探测并删除没有使用的类,字段,方法和属性,它删除没有用的说明并使用字节码得到最大优化,它使用无意义的名字重命名类,字段和方法。我们先来介绍下ProGuard我们为啥要使用ProGuard?优化应用:创建紧凑的代码文档是为了更快的网络传输,快速装载和更小的内存占用;防止反向:创建的程序和程序库很原创 2017-12-14 11:19:15 · 333 阅读 · 0 评论 -
应用抓包之tcpdump命令抓包
抓包前准备原料1.预抓包的App一个(我们以app抓包为例)2.已配置android sdk3.分析软件Wireshark(Windows版)4.抓包命令:tcpdump5.模拟器或真机(以模拟器为例,真机需root)抓包准备首先我们先配置下环境变量1.先来个ANDROID_HOME:SDK的路径,类似于JAVA_HOME。(一劳永逸,以后安装到别的路径,改变一下HOME路径就行原创 2017-12-14 11:19:19 · 2869 阅读 · 0 评论 -
应用抓包之Fiddler抓包
抓包前准备tcpdump抓包:应用抓包之tcpdump命令抓包原料1.抓包工具Fiddler(Windows版)2.真机一个3.预抓包的App一个(我们以app抓包为例)FiddlerFiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试w原创 2017-12-14 11:19:22 · 408 阅读 · 0 评论 -
Android开发之PreferenceActivity的使用
PreferenceActivity在开发应用程序时,有时我们会有选项设置界面,通常我们可以使用SharePreference以键值对的形式进行保存。Android为我们提供了PreferenceActivity。PreferencesActivity是Android中专门用来实现程序设置界面及参数存储的一个Activity。我们只要把Activity继承PreferenceActivity,原创 2017-12-14 11:19:06 · 1570 阅读 · 0 评论