Android
大煤球
大家好!我是大煤球!
展开
-
Android内存优化
一、决所有内存泄漏单例泄露单例是全局的,和Application一样的生命周期,有时会引用生命周期较短的变量,导致其无法释放。解决方法传入和单例一样生命周期的对象,如context.getApplication()不将context保存在单例的成员变量里Handler AsyncTask等内部类的内存泄漏内部类默认持有外部类的引用,jvm在把.java源文件编译成.class字节码的时候,会在默认...转载 2018-07-06 22:37:17 · 168 阅读 · 0 评论 -
布局随笔
1、gravity和layout_gravitygravity 是视图中子元素相对视图的位置layout_gravity 是视图相对父视图的位置2、布局重用3、weight 权重4、Activity 的别名,是对的继承与覆盖,其中name和targetActivity是必须的属性,当一个窗口需要多个Action,且要单独控制使用某一个原创 2017-08-23 22:16:02 · 194 阅读 · 0 评论 -
Android文件目录res和assets的区别
res和assets都是资源目录,但是它们有很大区别res中的资源文件都会在R类中生成一个与之对应的变量,通过这些变量来引用资源,比如R.layout.xxx.xml等assets中的资源使用文件名来引用,比如assets/xxx.xmlres中除了raw外,其他资源都会被编译assets中的资源和res/raw中资源,直接打包处理,到APK中res中只原创 2017-08-23 22:05:14 · 486 阅读 · 0 评论 -
Activity XML属性
Activity在Manifest.xml中注册时,除了一些基本属性,比如name,lable,icon等,需要的时候还会用到一些别的属性。1、android:screenOrientayion 屏幕切换方向 2、android:configChanges 配置属性,当配置发生变化时,可以通过Activity.onConfigurationChanged方法,来处理变化。比如当原创 2017-08-20 19:42:55 · 646 阅读 · 0 评论 -
Android中获取Menu的item实例
Toolbar和ActionBar中有时会用到Menu,那么怎样获取Menu中item的实例呢首先要获取Menu实例,然后使用其findItem(int sourceId)方法来获取MenuItem实例。@Overridepublic boolean onCreateOptionsMenu(Menu menu){getMenuInflater().inflate原创 2017-08-05 18:39:32 · 8360 阅读 · 0 评论 -
Bitmap介绍
1. BitMap类public void recycle()——回收位图占用的内存空间,把位图标记为Dead public final boolean isRecycled() ——判断位图内存是否已释放 public final int getWidth()——获取位图的宽度 public final int getHeight()——获取位图的高度 public fin转载 2017-08-05 18:06:58 · 423 阅读 · 0 评论 -
Activity之间传递数据
Activity之间怎样传导数据呢当然Intent是可以的Intent intent=new Intent(XX.this,XXX.class);intent.putExtra("key","walue");startActivity(intent);然后在目标Activity获取数据Intent intent=getIntent();intent.getStringE原创 2017-08-12 21:46:31 · 284 阅读 · 0 评论 -
Fragment状态保存(四)
Fragment中的状态保存和Activity中的状态保存一致。Activity中非正常的窗口销毁,比如窗口到后台,由于内存不足,销毁,或者横竖屏切换,一般需要保存状态。当窗口发生配置变化时,会调以下两个方法。@Overrideprotected void onSaveInstanceState(Bundle outState) { super.onSaveInsta原创 2017-08-10 15:28:15 · 470 阅读 · 0 评论 -
Fragment的创建(二)
上一节介绍了Fragment的生命周期,在今天的工作中,解决了昨天遗留Fragmnet的问题。那么Fragment是怎样创建的呢,Fragment的创建 有两种方式,1 通过XML方式 2 通过Java的方式1 通过XML的方式xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http:/原创 2017-08-08 21:46:22 · 243 阅读 · 0 评论 -
Android获取屏幕大小
获取屏幕小用到Displaymetrics类首先要新建Displaymetrics实例 Displaymetrics dm=new Displaymetrics();然后getWindowManager().getDefaultDisplay().getMetrics(dm); dm.widthPixelsdm.heightPixels原创 2017-07-25 17:40:08 · 235 阅读 · 0 评论 -
Android 获取应用签名
最近APP做了一个微信分享功能,在微信开放平台申请APP ID时需要应用签名,然后就学习了下。Android Studio中获取应用签名通过在AS的Terminal中,keystore路径下执行keytool -list -v -keystore **.keystore1 Debug版本Android studio会默认生成一个debug.keystore签原创 2017-07-25 16:37:43 · 563 阅读 · 0 评论 -
AIDL遇到的问题
在Android中使用AIDL和在Eclipse中使用AIDL还是有一点区别的,不是很直观。1、找不到自动生成的class文件在包名下创建AIDL文件系统自动生成的class文件在这里2、调用AID L服务必须隐式调用3、绑定服务时出现以下问题 Service Intent must be explicit: Intent{}原创 2017-09-06 11:20:10 · 348 阅读 · 0 评论 -
android中的序列化和反序列化
1、什么叫序列化和反序列化将对象和字节序列相互转换的过程2、用处将对象保存在本地在网络上传输Intent和AIDL等中,传输数据类型有限,当要传输对象时,需要把对象序列化3、android中两种方式实现序列化和反序列化Serializable接口Parcelable接口4、实现方式,都要实现接口Serializable方式原创 2017-09-06 16:12:33 · 331 阅读 · 0 评论 -
android 控件点两次才生效的问题
最近使用Spinner这个控件时,总是点击两次,spinner才会出现下拉菜单页面中有EditText和Spinner控件他俩都设置了setFocusableInTouchMode = true后来把Spinner的该属性去掉,发现就好了。原因:以上两个控件在获取焦点时出现了冲突(这里其实也没必要给Spinner设置焦点)首先我们应该明白,当我们点击一个控件时,首先是让控件获取到焦点,然后才是去执...原创 2018-05-01 22:19:48 · 1797 阅读 · 0 评论 -
在win10虚拟机中安装Android Studio遇到的问题总结
应领导要求,最近在公司的电脑的vwware上安装win10虚拟机并安装AS,为了以后在离线环境下使用AS其中遇到了一些问题,在这里分享下其实在虚拟机中安装AS和在本机中安装大致是一样的。1、首先安装jdk,下载AS,SDK,这个就不多说啦2、我这里使用了SDK自带的android模拟器,首先要确保所需资源是否安装,如图所示,如果都安装了,还要手动安装 ..sdk\extras\intel\Hard...原创 2018-04-19 01:18:16 · 6475 阅读 · 0 评论 -
转载 Android高效加载大图、多图解决方案,有效避免程序OOM
转自郭霖大神:http://blog.csdn.net/guolin_blog/article/details/9316683高效加载大图片我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会转载 2017-09-11 14:36:22 · 248 阅读 · 0 评论 -
fragment视图缓存
最近练手,再做一个APP,采用MVP+Retrofit2+RxJava2+Glide组合App。实现底部导航栏时,使用的时ViewPager+fragment+TabLayout来实现的,实现后发现一个问题,在这个项目中每次一个fragment失去焦点又获得焦点时,都会重新执行onCreateView方法,这个可以理解的,通过fragment的生命周期可以知道,的确是这样的原创 2017-10-17 21:34:34 · 673 阅读 · 0 评论 -
整合MVP+Retrofit2+RxJava2
前面已经学习了MVP和Retrofit2+Rhttp://blog.csdn.net/chendi1992/article/details/78112145 MVPhttp://blog.csdn.net/chendi1992/article/details/78112183 Retrofit2+RxJava2原创 2017-09-27 14:09:21 · 653 阅读 · 0 评论 -
Retrofit2+RxJava2
一、Retrofit2二、Retrofit2+RxJava2原创 2017-09-27 14:07:35 · 576 阅读 · 0 评论 -
15 个 Android 通用流行框架大全
1. 缓存DiskLruCache Java实现基于LRU的磁盘缓存2.图片加载Android Universal Image Loader 一个强大的加载,缓存,展示图片的库Picasso 一个强大的图片下载与缓存的库Fresco 一个用于管理图像和他们使用的内存的库Glide 一个图片加载和缓存的库3. 图片处理转载 2017-04-30 21:17:42 · 252 阅读 · 0 评论 -
MVP
一 、MVC和MVP二、怎样写一个MVP原创 2017-09-27 14:05:17 · 252 阅读 · 0 评论 -
View事件体系
通俗易懂一篇文章,收藏下转载请注明出处:【huachao1001的专栏:http://blog.csdn.net/huachao1001】View的事件体系整体上理解还是比较简单的,但是却有很多细节。这些细节很容易忘记,本文的目标是理解性的记忆,争取做到看完不忘。最近在复习,希望本文能对你也有所帮助。如果你已经对View事件体系有一定的了解,那么查漏补缺,看看你是不是已经掌握了以下转载 2017-09-17 22:59:17 · 239 阅读 · 0 评论 -
Error:Execution failed for task ':app:mergeDebugResources'. > Error: java.util.concurrent.ExecutionE
问题Error:Execution failed for task ':app:mergeDebugResources'. > Error: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:原因png图片有问题,不符合要求方法在b原创 2017-09-06 22:55:12 · 577 阅读 · 0 评论 -
Activity与Fragment之间的交互(三)
Activity与Fragment之间的交互主要有两种方式一种是通过setArguments(Bundle args)和getArguments()方法,另一种是通过回调机制。我们以传递数据为例1 通过setArguments(Bundle args)和getArguments()方法在Activity中代码FirstFragment firstFragment=new FirstFragmen...原创 2017-08-09 20:37:28 · 217 阅读 · 0 评论 -
Fragment 生命周期(一)
最近经常用到Fragment,其中也遇到了好多问题。今天回过头来重新看一遍Fragment。Fragment是Google在Android 3.0后推出的技术,随着手机、平板的快速更新,尺寸各不相同,为了提高代码的复用性,可以使用Fragment来封装UI和Java代码,来实现这一效果。Fragment主要用到的场景有,逻辑共享,状态保存,回退导航和整体移动。Fragment是不能单独原创 2017-08-07 22:06:03 · 320 阅读 · 0 评论 -
Activity的生命周期
android四大组件Activity,Service,Broadcast Receivers,Content providerActivity生命周期是一块重要内容,对其生命周期有很好的掌握,对以后的开发有很大帮助。首先盗图一张原创 2017-07-19 18:23:15 · 215 阅读 · 0 评论 -
Android XML解析方式
XML解析方式Android 提供了三种解析XML的方式:SAX(Simple API XML), DOM(Document Object Model), Pull 本文中所用的XML文档内容如下:apps> app> id>1id> name>Google mapsname> version>1.0version> app> app>转载 2017-04-25 16:02:34 · 291 阅读 · 0 评论 -
Android Studio配置SVN
首先要先把svn配置好,可以参考:http://blog.csdn.net/u011429167/article/details/50392179一:Android Studio配置SVN在Settings里面,找到Version Control->Subversion;在这个页面的控制面板中的General中将Use command line client打勾勾选上,然后浏览转载 2017-04-19 14:40:30 · 630 阅读 · 0 评论 -
SVN搭建和使用
SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说.首先来下载和搭建SVN服务器.现在Subversion已经迁移到apache网站上了,下载地址:http://subversion.apache.org/packages.html这是二进制文件包的下载地址,你可在左侧的导航栏找到源代码,文档的下载地址.wi转载 2017-04-19 14:37:03 · 399 阅读 · 1 评论 -
Android AsyncTask
在Android中我们可以通过Thread+Handler实现多线程通信,一种经典的使用场景是:在新线程中进行耗时操作,当任务完成后通过Handler向主线程发送Message,这样主线程的Handler在收到该Message之后就可以进行更新UI的操作。上述场景中需要分别在Thread和Handler中编写代码逻辑,为了使得代码更加统一,我们可以使用AsyncTask类。AsyncTas转载 2017-04-30 10:50:37 · 291 阅读 · 0 评论 -
Android Studio教程
最新2.0系列文章参考:Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android Studio2.0 教程从入门到精通Windows版 - 提高篇Android Studio2.0 教程从入门到精通MAC版 - 安装篇Android Studio2.0转载 2017-04-18 11:48:43 · 734 阅读 · 0 评论 -
Java回调机制(二)
阅读目录一、前言二、回调的含义和用途三、Java实现接口回调 四、Android中的接口回调五、参考资料一、前言最近在看android fragment与Activity进行数据传递的部分,看到了接口回调的内容,今天来总结一下。二、回调的含义和用途1、什么是回调?一般来说,模块之间都存在一定的调用关系,从调用方式上转载 2017-04-28 10:27:59 · 261 阅读 · 0 评论 -
Java回调机制(一)
模块之间总是存在这一定的接口,从调用方式上看,可以分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,也是我们在写程序中经常使用的;回调是一种双向的调用模式,也就是说,被调用的接口被调用时也会调用对方的接口,这句话可能有点绕,等文章后面举例说明;异步调用是一种类似消息或事件的机制,解决了同步阻塞的问题,举例来讲:A通知B后,他们各走各的路,互不影响,不用像同步调用那样,A通知B后,非得等转载 2017-04-27 22:54:30 · 201 阅读 · 0 评论 -
Android事件分发
一.Android事件分发是什么? Android事件分发,“事件”指的是 ACTION_DOWN,ACTION_MOVE,ACTION_UP这些事件,我们点击一个Button的时候系统是怎么响应我们的点击的?为什么有的控件可以响应Click事件,有的控件又不能响应Click事件?我点击控件的一瞬间android系统做了多少次派发才调用了OnClick事件? 我们点击控件,Android系转载 2016-07-14 17:03:44 · 258 阅读 · 0 评论 -
LayoutInflater解析
分享郭森大神的一篇文章 :http://blog.csdn.net/guolin_blog/article/details/12921889相信接触Android久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用于加载布局的。而刚接触Android的朋友可能对LayoutInflater不怎么熟悉,因为加载布局的任务通常都是在Activity中调用se转载 2017-07-10 21:32:27 · 236 阅读 · 0 评论 -
Android视图绘制流程
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/16330267相信每个Android程序员都知道,我们每天的开发工作当中都在不停地跟View打交道,Android中的任何一个布局、任何一个控件其实都是直接或间接继承自View的,如TextView、Button、ImageView、ListView等。这些控转载 2017-07-10 21:36:20 · 259 阅读 · 0 评论 -
Intent
Intent在android中经常遇到,可以指定当前组件想要执行的动作,还可以传递数据,可以启动Activity,Service,Broadcast等。intent对象是传递给Context.startActivity() 或Activity.startActivityForResult() 以启动Activity或是让一个存在的Activity做些事情。(也可以传递给Activity原创 2017-07-18 21:49:05 · 316 阅读 · 0 评论 -
AlertDialog不能显示问题,变暗不显示
今天做项目遇到一个问题,AlertDialog突然不能显示问题,只是变暗但不显示。代码也没变过,之前还能显示。网上百度了下,没找到。。。就很郁闷,看都一种说是manifest.xml中加入权限android:name="android.permission.SYSTEM_ALERT_WINDOW" />原创 2017-07-18 17:27:45 · 1973 阅读 · 1 评论 -
Android中minmap和drawable的区别
Android 在 API level 17 加入了 mipmap 技术,对 bitmap 图片的渲染支持 mipmap 技术,来提高渲染的速度和质量。mipmap 是一种很早就有的技术了,翻译过来就是纹理映射技术。android 中的 mipmap 技术主要为了应对图片大小缩放的处理,在android 中我们提供一个 bitmap 图片,由于应用的需要(比如缩放动画),可能对这个 b转载 2017-07-10 09:25:10 · 579 阅读 · 0 评论 -
Android开发:shape和selector和layer-list的(详细说明)
本文转自;http://blog.csdn.net/brokge/article/details/9713041/和在Android UI设计中经常用到。比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到和。可以这样说,和在美化控件中的作用是至关重要。在看这篇文章之前,可以看下这个小例子:镂空按钮的实现1.Shape简介转载 2017-07-10 09:23:08 · 264 阅读 · 0 评论