Android
踏花忆锦年
逆风的方向更适合飞翔
展开
-
Activity活动(上)
Activity活动描述:1)表示用户交互的一个界面(活动),每一个activity对应一个界面2)是所有View的容器:button,textview,imageview;我们在界面上看到的都是一个个的view3)有个ActivityManager的管理服务类,用于维护与管理Activity的启动与销毁;Activity启动时,会把Activity的引用放入任务栈中4原创 2016-03-11 19:01:01 · 332 阅读 · 0 评论 -
Android 数据存储与访问之——SharedPreferences保存用户偏好参数
Android 数据存储与访问之——SharedPreferences保存用户偏好参数 本节介绍的是使用SharedPreferences(保存用户偏好参数)保存数据,当我们的应用想要保存用户的一些偏好参数,比如是否自动登陆,是否记住账号密码,是否在Wifi下才能联网等相关信息,如果使用数据库的话,显得有点大材小用了!我们把上面这些配置信息称为用户的偏好设置,就是用户偏好的设置,原创 2016-12-31 10:26:41 · 455 阅读 · 0 评论 -
EventBus
EventBusEventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。EventBus3.0简单实用分为简单的五个步骤。1、选择EventBus的版本并进行相关配置。2、创建Ev原创 2017-05-25 19:37:10 · 329 阅读 · 0 评论 -
Android OKHttp
Android OKHttpOkHttp 会从很多常用的连接问题中自动恢复。如果您的服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IP。OkHttp还处理了代理服务器问题和SSL握手失败问题。使用 OkHttp 无需重写您程序中的网络代码。OkHttp实现了几乎和java.net.HttpURLConnection一样的API。如果你用了 Apa原创 2017-05-25 22:25:45 · 311 阅读 · 0 评论 -
Picasso
Picassopicasso是Square公司开源的一个Android图形缓存库,可以实现图片下载和缓存功能。Picasso不仅实现了图片异步加载的功能,还解决了android中加载图片时需要解决的一些常见问题: 1.在adapter中需要取消已经不在视野范围的ImageView图片资源的加载,否则会导致图片错位,Picasso已经解决了这个问题。 2.使用复杂的图片压原创 2017-05-25 22:34:59 · 333 阅读 · 0 评论 -
ImageView中XML属性src和background的区别
ImageView中XML属性src和background的区别background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用。此外:scaleType只对src起作用;bg可设置透明度,比如在ImageButton中就可以用Android:scaleType控制图片的缩放方式原创 2017-05-25 22:36:56 · 289 阅读 · 0 评论 -
Android辅助功能(Accessibility)简介
Android辅助功能(Accessibility)简介Accessibility由于部分安卓用户在身体的问题致使他们不能看完整的屏幕或者使用触屏,google提供了Accessibility功能和服务帮助这些用户更加简单地操作设备。这其中最主要的一个类就是AccessibilityService,AccessibilityService是一个系统服务,它运行在后台,并且能够收原创 2017-05-25 19:29:06 · 14506 阅读 · 1 评论 -
单例模式
单例模式定义: 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他...原创 2018-04-22 11:45:34 · 140 阅读 · 0 评论 -
建造者模式
建造者模式定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式利用一个导演者对象和具体建造者对象一个一个地建造出所有的零件,从而建造出完整的对象。四个要素: Builder:生成器接口,定义创建一个Pro...原创 2018-04-22 11:53:47 · 133 阅读 · 0 评论 -
策略模式
策略模式定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。类型:行为类模式 策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换。在前面说过的行为类模式中,有一种模式也是关注对算法的封装——模版方法模式。 ...原创 2018-04-22 12:29:53 · 132 阅读 · 0 评论 -
Activity 的 onNewIntent方法的调用可
Activity 的 onNewIntent方法的调用在该Activity的实例已经存在于Task和Back stack中(或者通俗的说可以通过按返回键返回到该Activity )时,当使用intent来再次启动该Activity的时候,如果此次启动不创建该Activity的新实例,则系统会调用原有实例的onNewInten...原创 2018-11-14 10:19:10 · 251 阅读 · 0 评论 -
Android 获取 View 宽高的常用正确方式,避免为零
相信有很多朋友都有过在 Activity 中通过 getWidth() 之类的方法获取 View 的宽高值,可能在 onCreate() 生命周期方法中,也可能在 onResume() 生命周期方法中。然而,不幸的是,并不能获取所要的结果,宽高值均为 0。如果对 View 的绘制显示流程熟悉的话,就会知道问题所在。我们知道,在自定义 View 时,通常都要重写 onMeasure、onLayo...转载 2018-12-12 17:11:26 · 465 阅读 · 0 评论 -
Android基础知识- 为什么是 60 fps
我们先来理一下基本的概念:60 fps 的意思是说,画面每秒更新60次 这60次更新,是要均匀更新的,不是说一会快,一会慢,那样视觉上也会觉得不流畅 每秒60次,也就是 1/60 ~= 16.67 ms 要更新一次在理解了上面的基本概念之后,我们再回到 Android 这边,为何 Android 现在的渲染机制,是使用 60 fps 作为标准呢?这主要和屏幕的刷新率有关。基本概念...转载 2018-12-12 17:22:16 · 2476 阅读 · 0 评论 -
Android 应用启动优化:一种 DelayLoad 的实现和原理
Android 应用启动优化:一种 DelayLoad 的实现和原理在 Android 开发中,应用启动速度是一个非常重要的点,应用启动优化也是一个非常重要的过程.对于应用启动优化,其实核心思想就是在启动过程中少做事情,具体实践的时候无非就是下面几种:异步加载 延时加载 懒加载不用一一去解释,做过启动优化的估计都使用过,本篇文章将详细讲...转载 2018-12-12 17:58:06 · 216 阅读 · 0 评论 -
Android如何让EditText不自动获取焦点
Android中,使用EditText作为输入框很方便,但是有时候EditText会自动获取焦点,其行为:点击进入这个页面后,EditText自动获取焦点,导致软键盘直接跳出.有时候这么做很方便,但是大部分时候我们还是希望在点击EditText的时候,软键盘才弹出来.这里有个很简单也很实用的技巧,即在EditText的父Layout中,加入下面的两个属性即可:android:focusa...原创 2018-12-13 09:37:30 · 1351 阅读 · 0 评论 -
Android 文件读写
Android 文件读写 学过Java的同学都知道,我们新建文件,然后就可以写入数据了,但是Android却不一样,因为Android是基于Linux的,我们在读写文件的时候,还需加上文件的操作模式,Android中的操作模式如下:1、文件操作模式2、文件常用方法3、文件工具类public class FileHelper { priva原创 2016-12-31 09:53:05 · 470 阅读 · 0 评论 -
基于TCP协议的Socket通信
基于TCP协议的Socket通信1、Socket通信实现步骤解析:Step 1:创建ServerSocket和SocketStep 2:打开连接到的Socket的输入/输出流Step 3:按照协议对Socket进行读/写操作Step 4:关闭输入输出流,以及Socket2、Socket服务端的编写:Step 1:创建ServerSocket对象,绑定监听的端原创 2016-12-29 14:43:19 · 502 阅读 · 0 评论 -
Android 内存监测工具 DDMS --> Heap
无论怎么小心,想完全避免bad code是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方。Android tools中的DDMS就带有一个很不错的内存监测工具Heap(这里我使用eclipse的ADT插件,并以真机为例,在模拟器中的情况类似)。 用 Heap监测应用进程使用内存情况的步骤如下:1. 启动eclipse后,切换到DDMS透视图,并确认Devic原创 2016-04-05 09:37:54 · 346 阅读 · 0 评论 -
Android 避免内存溢出的方案总结
1、图片过大导致内存溢出: 模拟器的RAM比较小,由于每张图片先前是压缩的情况,放入到Bitmap的时候,大小会变大,导致超出RAM内存★android 中用bitmap 时很容易内存溢出,报如下错误:Java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决:方法1: 主要是加上这段:等比例缩小图片Bitmap原创 2016-04-05 09:43:29 · 363 阅读 · 0 评论 -
Android 常见的内存使用不当的情况
1、查询数据库没有关闭游标 程序中经常会进行查询数据库的操作,但是经常会有使用完毕Cursor后没有关闭的情况。如果我们的查询结果集比较小,对内存的消耗不容易被发现,只有在常时间大量操作的情况下才会复现内存问题,这样就会给以后的测试和问题排查带来困难和风险。Cursor cursor = null;try { cursor = getContentResolver().quer原创 2016-04-05 09:55:59 · 560 阅读 · 0 评论 -
Android 图片占用进程的内存算法
android中处理图片的基础类是Bitmap,顾名思义,就是位图。占用内存的算法如下: 图片的width*height*Config。 如果Config设置为ARGB_8888,那么上面的Config就是4。一张480*320的图片占用的内存就是480*320*4 byte。 在默认情况下android进程的内存占用量为16M,因为Bitmap除了java中持有数据外,底原创 2016-04-05 10:09:16 · 343 阅读 · 0 评论 -
Activity活动(下)
生命周期1、生命周期 1)Acitivity三种状态 a. 运行:activity在最前端运行 b. 停止:activity不可见,完全被覆盖; c. 暂停:activity可见,但前端还有其他activity注意:在当前Activitiiy弹出的对话框是Activity的一部分,弹出时,不会执行onPause方法; 2)生命周期相关原创 2016-03-11 20:52:36 · 410 阅读 · 0 评论 -
Android finish(),onDestroy(),exit()辨析
Activity.finish() Call this when your activity is done and should be closed. 在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法。 当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放。因为移出了栈,所原创 2015-07-23 09:50:42 · 292 阅读 · 0 评论 -
Activity启动相关事宜
Activity启动相关事宜1)任务栈的概念 问:一个手机里面有多少个任务栈? 答:一般情况下,有多少个应用正在运行,就对应开启多少个任务栈; 一般情况下,每开启一个应用程序就会创建一个与之对应的任务栈; 二般情况下,如launchMode为 singleInstance,就创建自己单独的任务栈;2)任务栈的作用:原创 2016-03-11 21:09:15 · 473 阅读 · 0 评论 -
Android内存管理
Android内存管理 Android系统在运行多个进程时,如果系统资源不足,会强制结束一些进程,优先选择哪个进程来结束是有优先级的。 一般会按照以下顺序杀死: ①、空: 进程中没有任何组件; ②、后台:进程中只有停止状态的Activity; ③、服务:进程中有正在运行的服务; ④、可见:进程中有一个暂停状态的Activity;原创 2016-03-11 21:13:44 · 313 阅读 · 0 评论 -
抓包
方法常用抓包Fiddler 抓包:适合大多数走代理的应用1、Fiddler,在windowsphone,安卓,IOS上抓包1、无需安装软件和root,只需要一个代理IP就能抓包(安装证书后能抓取https数据),还能断点2、 操作更简单方便(第一次安装配置,第二次只需设置代理即可) 4、数据包的查看更清晰易懂,Fiddler 的 UI 更简单明了 Tcp原创 2016-03-10 22:50:17 · 625 阅读 · 0 评论 -
Activity活动(中)
Activity使用1、创建Activity 1)定义类继承自Activity类; 2)在清单文件中Application节点中声明节点;<activity android:name="com.itheima.activity.MainActivity" android:label="@string/app_name"原创 2016-03-11 19:02:26 · 380 阅读 · 0 评论 -
BroadcastReceiver 广播接收者
BroadcastReceiver 广播接收者1、介绍 系统中消息的一种变种;就是当一个事件发生时,比如,系统突然断网,系统就发一个广播消息给所有的接收者,所有的接收者在得到这个消息之后,就知道,啊哦,现在没网络了,我的程序应该怎么办!系统的一些事件,比如来电,来短信,等等,都会发广播;可监听这些广播,并进行一些处理; Android3.2以后,为了安全起见原创 2016-03-11 23:35:24 · 698 阅读 · 0 评论 -
Android蓝牙通信
Android蓝牙通信1、简介 蓝牙(Bluetooth)是目前比较流行的一种短距离无线通讯技术,蓝牙技术是为了实现以无线电波替换移动设备所使 用的电缆而产生的。它试图以相同成本和安全性完成一般电缆的功能,从而使移动用户摆脱电缆束缚,蓝牙技术具备成本低、功耗低、体积小、近距离通信、安全性等技术特性。“蓝牙”技术的目的是使特定的移动电话、便携式电脑以及各种便携式通信设备的主机之间在原创 2016-03-12 14:53:57 · 689 阅读 · 0 评论 -
摇一摇工具类
摇一摇工具类一、原理介绍 Android手机中摇一摇的功能已经很常见了,最近接触到了这个功能,原理很简单:使用加速度传感器,在晃动手机时,监听加速度在各个方向的变化,当加速度值超过设定的灵敏度时,则触发摇一摇功能。二、功能实现 摇一摇功能:我将摇一摇功能封装成了一个类ShakeUtils,在使用时按照注释中的说明使用即可。/** * 摇一摇工具类 * 使用说明:原创 2016-06-14 17:12:44 · 554 阅读 · 0 评论 -
基于UDP协议的Socket通信
基于UDP协议的Socket通信 TCP和UDP最大的区别在于是否需要客户端与服务端建立连接后才能进行 数据传输,UDP以数据报作为数据的传输载体,在进行传输时 首先要把传输的数据定义成数据报(Datagram),在数据报中指明数据要到达的Socket(主机地址 和端口号),然后再将数据以数据报的形式发送出去,然后就没有然后了,服务端收不收到我就 不知道了,除非服务端收到后又给原创 2016-12-29 14:22:17 · 1235 阅读 · 0 评论 -
Android API总结小结
Android开发中遇到的一些好用的小技巧,或者一些实用的API,在此记录下来:正文:1、DateUtils.formatDateTime():用来进行区域格式化工作,输出格式化和本地化的时间或者日期.2、AlarmManager.setInexactRepeating):通过闹铃分组的方式省电,即使你只调用了一个闹钟,这也是一个好的选择,(可以确保在使用完毕时自动调用 AlarmMa...原创 2018-12-13 10:14:20 · 348 阅读 · 0 评论