android
文章平均质量分 63
Cdaimadada
这个作者很懒,什么都没留下…
展开
-
Fragment的使用二
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上)。本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity转载 2017-09-25 21:19:53 · 395 阅读 · 0 评论 -
android APP性能优化之内存优化
APP内存优化方法1.数据结构优化2.对象复用3.避免内存泄漏数据结构优化1.频繁地使用字符串拼接不要用“+”的方式,应该使用StringBuilder,“+”的方式会产生无用的中间变量,而且难以删除2.ArrayMap和SparseArray替换HashMapHashMap效率较低,内存占用较高,使用前两者能解决这种问题。HashMap中的一个entry需要额外占用32B3.内存抖动length...原创 2018-05-07 12:25:15 · 483 阅读 · 0 评论 -
Android中Application的总结
前言 最近的开发中经常使用到Application类,它的用处很多,但是网上的资料有很多是旧的或者是介绍不全的,在这里全面总结一下,先介绍Application的所有方法,再介绍它的使用经验。本文基于Android6.0源码,API LEVEL 23。介绍 首先看看官网的介绍: 下面是我对Application类的理解:每个APP都有一个Application实例:如果我们没有继承Appl...转载 2018-05-20 15:24:00 · 261 阅读 · 0 评论 -
Android图片加载框架最全解析(五),Glide强大的图片变换功能
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/71524668本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。大家好,又到了学习Glide的时间了。前段时间由于项目开发紧张,再加上后来又生病了,所以停更了一个月,不过现在终于又可以恢复正常更新了。今天是这个系列的第五篇文章,在前面...转载 2018-06-03 11:00:20 · 397 阅读 · 0 评论 -
Android图片加载框架最全解析(八),带你全面了解Glide 4的用法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78582548本篇将是我们这个Glide系列的最后一篇文章。其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了。那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定,因此整个系列也都是基于3.7.0版本来写的。而现在,Glide的最新版...转载 2018-06-03 11:15:53 · 283 阅读 · 0 评论 -
图片的三级缓存基础
一、概述:现在android应用中不可避免的要使用图片,有些图片是可以变化的,需要每次启动时从网络拉取,这种场景在有广告位的应用以及纯图片应用(比如百度美拍)中比较多。现在有一个问题:假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量。在当前的状况下,对于非wifi用户来说,流量还是很贵的,一个很耗流量的应用,其用户数量级肯定要受到影响。当然,我想,向百度美拍这样的应用,必然也有其内部的图...原创 2018-05-23 21:02:40 · 346 阅读 · 0 评论 -
Context内存泄漏问题
今天看了一篇介绍Context的文章,写的不错,里面有一段内容平时开发时候没有注意到,摘抄如下: 在项目中,我们经常会遇到使用单例模式或者静态static变量,虽然使用静态类或者静态变量很方便,但是也潜在很多的内存泄漏问题。6.1静态资源导致的内存泄漏你可能遇到以下这段代码:public class MyCustomResource { //静态变量drawable private...转载 2018-05-28 20:26:14 · 2247 阅读 · 0 评论 -
MotionEvent和KeyEvent机制
触屏操作的理解:最基本的操作类型:1.down:手指按下2.move:手指在屏幕上移动3.up:手指从屏幕上离开操作原理:现在流行的触屏手机的屏幕都是电容屏,它是通过人体微小电流和屏幕之间的电流交互来感知触屏的操作。...原创 2018-06-05 11:03:46 · 2552 阅读 · 0 评论 -
parcelable接口实现
Parcelable接口想要在两个activity之间传递对象,那么这个对象必须序列化,android中序列化一个对象有两种方式,一种是实现Serializable接口,这个非常简单,只需要声明一下就可以了,不痛不痒。但是android中还有一种特有的序列化方法,那就是实现Parcelable接口,使用这种方式来序列化的效率要高于实现Serializable接口。不过Serializable接口实...原创 2018-06-12 11:28:07 · 948 阅读 · 0 评论 -
Activity A 跳转到 Activity B,生命周期的执行过程
今天被问到ActivityA中启动ActivityB,生命周期方法的执行过程,确实在短时间内不好答出来。打开APP,进入ActivityA生命周期如下:ActivityA跳转到ActivityB生命周期如下:ActivityB按back键返回生命周期如下:ActivityA按back键返回生命周期如下:...转载 2018-06-12 16:24:39 · 2234 阅读 · 0 评论 -
android 自定义View之继承ViewGroup实现流式布局
主要实现效果如下:接下来讲述如何实现:通过自定义ViewGroup实现:1:onMeasure:测量view的宽高-- 在重写的onMeasure方法中,会传入2个参数,他们分别代表“宽的测量规格”,“高的测量规格”,如下所示(spec:规格)protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {测量规...原创 2018-06-21 21:07:28 · 869 阅读 · 0 评论 -
自定义控件之onDraw()方法使用
第二:认识CanvasCanvas类简单理解就是表示一块画布,可以在上面画我们想画的东西Canvas中的方法很多,Canvas可以绘制的对象有:弧线(arcs) canvas.填充颜色(argb和color)Bitmap圆(circle和oval)点(point)线(line)矩形(Rect)图片(Picture)圆角矩形 (RoundRect)文本(text)顶点(Vertices)路径(pat...转载 2018-06-15 18:54:44 · 4198 阅读 · 0 评论 -
Android图片加载框架最全解析(一),Glide的基本用法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53759439现在Android上的图片加载框架非常成熟,从最早的老牌图片加载框架UniversalImageLoader,到后来Google推出的Volley,再到后来的新兴军Glide和Picasso,当然还有Facebook的Fresco。每一个都非常稳定,功能也都十分强大。但...转载 2018-06-02 15:41:39 · 293 阅读 · 0 评论 -
ImageView设置background和src的区别
今天开发的时候遇到一个小问题,在给一个ImageView更换图片的时候,我使用的是java的方式更换,使用的方法是setBackgroundResource(),但奇怪的是总是没有效果。 最后查明原因是:我在编写xml文件的时候,为了查看效果,给这个ImageView设置了src,这时候再设置background的时候回发生重叠。 解决方法:将xml中的src删除即可。问题延伸: 一、ImageV...转载 2018-06-17 09:42:52 · 505 阅读 · 0 评论 -
android开发篇之自定义View
控件有很多属性,如android:id、android:layout_width、android:layout_height等,但是这些属性都是系统自带的属性。使用attrs.xml文件,可以自己定义属性。看这张要实现的自定义控件,要实现这个效果就必须使用自定义属性,将TextView的功能和圆环的功能绑定在一起!组成一个控件,代码如下所示。首先:在Value文件下定义一个attrs.xml文件&...原创 2018-06-17 12:07:59 · 491 阅读 · 0 评论 -
那些我不知道的android开发技巧之 内容抽取
每个fragment在实现时,都需要实现onCreateView方法,所以这就导致每个fragment在代码部分就会出现相同的情况,下面具体分析首先观看 homeFragment,你会发现这些代码可以说很类似。于是,我们可以抽取这个到BaseFragment中。 下面看这个baseFragment,它是一个抽象类,继承自fragment要实现MeFragment,只需要这样...原创 2018-06-19 11:43:19 · 249 阅读 · 0 评论 -
android中style和Theme的使用区别
一.Style的使用使用style属性可以很方便的抽取一些属性,不用重复写很多相同的属性。(一)设置属性的集合1.定义<style name="TextViewStyle"> <item name="android:textColor">#000</item> <item name="android:textSize"&转载 2018-06-27 16:09:40 · 638 阅读 · 0 评论 -
Android JNI编程—JNI基础
最近看到了很多关于热补的开源项目——Depoxed(阿里)、AnFix(阿里)、DynamicAPK(携程)等,它们都用到了JNI编程,并且JNI编程也贯穿了Android系统,学会JNI编程对于我们学习研究Android源码、Android安全以及Android安全加固等都是有所帮助的。但是对于我们这些写Android应用的,大部分时间都是在使用Java编程,很少使用C/C++编程,对于JNI编...转载 2018-05-19 10:15:35 · 225 阅读 · 0 评论 -
android 自定义控件和源码视频讲解
为什么要使用自定义控件? 1.系统的某一个控件,在不同的设备效果不一样当我们想让这个控件在所有设备显示都是一样的风格的时候,就需要自定义控件解决此类问题就需要自定义控件。2.整个软件在不同设备上风格统一 同一个软件在不同设备上可能会出现不同的界面风格,为对所有控件实现统一风格就需要自定义控件例如QQ软件主页面风格大部分都是自定义的3.系统自带的控件,功能有限,增加功能;或者功能太多,减少...原创 2018-05-06 10:48:38 · 890 阅读 · 0 评论 -
MVP in Android
一、概述对于MVP(Model View Presenter),大多数人都能说出一二:“MVC的演化版本”,“让Model和View完全解耦”等等。本篇博文仅是为了做下记录,提出一些自己的看法,和帮助大家如何针对一个Activity页面去编写针对MVP风格的代码。对于MVP,我的内心有一个问题:为何这个模式出来后,就能被广大的Android的程序员接受呢?问了些程序员,他们对于MVP的普遍的认识是...转载 2018-05-17 10:29:15 · 176 阅读 · 0 评论 -
小米手机由访问sql表中数据引发的一系列问题
android 访问sqlite一般是使用adb shell。书上讲的只是大致内容,其中有许多细节问题如果没有把握好,真的是烦死人了。首先是adb shell的配置,书上讲的很详细了。配置完成之后就有了第一个问题:如何获取root权限?一般的android手机是没有root权限的,使用adb shell的时候需要超级管理员权限,所以必须root手机(本人是使用真机测试的)。root手机原创 2017-11-24 20:44:27 · 544 阅读 · 0 评论 -
Android新手如何学习开发一款app?
原文地址:http://www.jianshu.com/p/052d69d72c96毫无疑问,开发一款自己的App对于初学者来说,无论从技术学习,还是找工作(或者装x),都是一大利器。那么如何才能快速上手,开发一款属于自己的app。本篇文章仅以自己的一些经验给更多的Android新手一些建议。一、误区在讲如何开发一款app之前,先说下一定要避免的一些误区。借鉴与copy表面与原理效转载 2017-12-19 19:08:04 · 475 阅读 · 0 评论 -
android数据存储的五大方式
本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据下面详细讲解这五种方式的特点第一种: 使用SharedPreferences存储数据转载 2017-12-11 17:19:50 · 704 阅读 · 0 评论 -
findViewById的问题和inflate(0方法
我们调用的findViewById()函数其实有两种(目前我只看到两种,不确定还有没有其他的),一种是Activity类中findViewById()函数另外一种是View类中定义的findViewById()函数一般我们在oncreate()方法中使用的(**view)findViewById(R.id.**)既是调用的Activity中的findViewById()函数而在其他情况原创 2017-11-24 21:03:20 · 376 阅读 · 0 评论 -
导入项目到android studio中遇到的各种问题
最近学习一下别人的源码,于是在网上下载了各种源码,有17年的16年的等,本来是想直接找一个androidstudio项目,看着这些年份相对13年(Androidstudio问世)比较久远,猜想这些应该是androidstudio项目了吧,可是我所连续下载的三个都是eclipse项目。于是导入到androidstudio中出现了各种问题。eclipse导出的android项目有两种,一种是供ecli...原创 2018-01-12 09:46:12 · 10615 阅读 · 1 评论 -
android 基础知识点
1:private static CrimeLab sCrimeLab;android命名规范:看到s前缀就可以知道sCrimeLab是个静态变量。2:Android中的java代码在变量前面加上m是什么 意思,加上a又是什么意思?m表示 member, 即 类的成员, a 表示 attribute, 表示 参数3:像R.id.qustion这样的,其都是int类型,而非String类型,即资源i...原创 2018-03-06 18:52:35 · 346 阅读 · 0 评论 -
RecyclerView、Adapter和ViewHolder
RecyclerView是ListView的升级版,强化了ListView的某些不足。比如listView如果不使用一些技巧的话,listView的性能就会非常差;ListView只能实现纵向滚动的效果等。顾名思义,ViewHolder只做一件事:容纳View视图RecyclerView自身是不会创建视图,它创建的是ViewHolder,而ViewHolder引用这一个个itemView如下图:R...原创 2018-03-15 15:34:40 · 702 阅读 · 0 评论 -
Android异步消息处理机制完全解析,带你从源码的角度彻底理解
出处:http://blog.csdn.net/guolin_blog/article/details/9991569我们都知道,Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMess...原创 2018-03-15 17:36:01 · 197 阅读 · 0 评论 -
XML解析——androidXML的三种解析方式
面试问答:xml解析常见的方式有哪些?XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。 XML的解析方式分为四种:1、DOM解析;2、SAX解析;Pull解析。 针对以下XML文件,会对三种方式进行详细描述:<?xml version="1.0" encodin...原创 2018-03-29 16:59:43 · 2715 阅读 · 0 评论 -
Activity之间传递数据
原文地址:http://blog.csdn.net/gwalking/article/details/49756193一、一个Activity启动另一个Activity Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivity(intent);二、一个Activity数据传递到另一个Activ...转载 2018-03-20 18:59:09 · 202 阅读 · 0 评论 -
基于回调的事件处理机制
基于回调的事件处理机制一个简单的按钮,点击按钮后触发onTouchEvent事件,当我们按模拟器上的键盘时, 按下触发onKeyDown,离开键盘时触发onKeyUp事件!我们通过Logcat进行查看!实现代码: MyButton.javapublic class MyButton extends Button{ private static String TAG = "呵呵"; ...原创 2018-03-27 09:43:43 · 1601 阅读 · 0 评论 -
android面试题
2017-2018最新Android面试题版权声明:本文为博主原创文章,未经博主允许不得转载。 原文链接:http://blog.csdn.net/huangqili1314/article/details/72792682大家好,在跟大家讲述自己的面试经历,以及遇到的面试题前,先说说几句题外话。接触Android已经3年,在工作中遇到疑难问题总是在网上(csdn大牛博客,stackoverflo...转载 2018-04-02 16:20:53 · 301 阅读 · 0 评论 -
Socket网络通信以及InetAddress的使用
首先需要知道:java.net有许多网络通信使用的类,像InetAddress,其主要用途是获取IP、主机名等1,socket通信适用范围比较广泛,Linux、Windows、java都在使用Socket进行网络通信2,两个java程序可以通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个socket3,java.net包中定义的两个类Socket和ServerSo...原创 2018-04-23 17:33:48 · 470 阅读 · 0 评论 -
Serializable接口的实现
一:使用serializable接口最重要的两个原因是: 1、将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本; 2、按值将对象从一个应用程序域发送至另一个应用程序域。 二:Parcelable和Serializable的区别: 内存间数据传输时推荐使用Parcelable,如activity间传输数据 保存到本地或者网络传输时推荐原创 2017-12-01 21:32:29 · 477 阅读 · 0 评论 -
Android手机连接到Tomcat服务器
前提:电脑和手机在同一个网段,比如电脑开wifim手机连接,或者手机电脑连接同一个wifi一:先打开Tomcat打开Tomcat可以打开安装路径下bin目录下的startup。bat文件,也可以直接在开始-所有程序-Apache Tomcat 9.0 Tomcat9下打开,成功后 start按钮为不可选定。或者http://localhost:8080/可以访问,出现即成功访问...转载 2018-07-18 17:00:40 · 959 阅读 · 0 评论