- 博客(47)
- 资源 (2)
- 收藏
- 关注
原创 Gradle peer not authenticated
修改当前project的build.gradle: repositories { jcenter { url "http://jcenter.bintray.com/" } }
2015-10-10 13:00:51
2094
原创 降低图片的内存消耗
我们知道产生OOM的原因是内存的使用量持续增长,直到超过了内存使用上限。每部手机对应用程序的内存上限在出厂时就已经是固定的了,所以我们需要尽量控制内存的使用量不要超过这个内存阀值,才能避免OOM。具体的做法就是去减少对象对内存的消耗。而今天要讨论的主要是减少图片对内存的消耗,因为图片消耗内存比较大,大多数应用程序都会有大量图片的加载,产生OOM往往也会发生在加载大量图片的时候。所以对图片占用内存的
2015-08-03 15:21:13
4693
原创 如何查看程序可使用的最大内存及内存使用情况
当加载带有大量图片的列表时,通常我们都要考虑到图片达到一定上限时,内存不足引发OOM导致程序崩溃的问题。下一步也许就是去找个图片加载开源框架来一劳永逸。OOM不急着解决,先来了解下关于程序可用内存的一丢丢知识。在面对OOM的时候,你有没有想过这些: 1.什么是OOM OOM都知道是Out Of Memory的缩写也就是内存溢出,通俗点说就是内存用完了。 2.为什么会OOM
2015-07-22 15:22:38
9798
原创 实现一个最简单图片列表所引发的问题
前一阵看了些Universal-Image-Loager的源码。我觉得看源码很累的一个原因就是除了看怎么实现,就是去揣测为什么这么实现。这个揣测的过程很容易走马观花,看到后面似懂非懂。人懒到一个地步一句话来说是能躺着就绝对不坐着,能坐着就绝对不蹲着,能蹲着就绝对不站着。有时候看源码也是,能看懂就不会想着去debug,debug能看明白的就懒得去动手写写。看和写的感受是不一样的。看的是结果,
2015-07-21 13:59:43
1767
原创 解读郭神LitePal源码-表的创建
数据库创建完,该创建表了。在SQLiteOpenHelper类里getWritableDatabase()和getReadableDatabase()方法的内部实现都是调用了getDatabaseLocked()方法,该方法是处理数据库创建,表创建的核心方法。他定义了一系列逻辑骨架,但并不是具体的实现者。下面来看看该方法在创建完数据库后是怎样处理表的创建: private SQL
2015-06-12 15:56:12
1911
原创 解读郭神LitePal源码-数据库的创建以及如何修改源码来创建外置数据库
在解析完litepal.xml之后,就可以通过LitePalAttr类的对象获取到数据库名,版本号以及所有有数据库映射关系的对象的类名。得到这些基本信息可以用来创建数据库和表。先只讨论数据库的创建以及怎样修改源码进行外置数据库的创建,表创建和关联关系的设置下篇再说。由于SQLite的数据库创建默认路径是data/data/程序包名/database,所以应用程序一旦被卸载,数据库也就随之消失。如果
2015-06-09 17:56:04
2048
原创 WebView与Js交互
上周五,老大让临时搞一个评分app,俩页面,第一个页面显示所有待评分的物业,第二个页面是对应物业的评分页面。评分页面是表格样式的,所以就让web端的同学写个html,我们通过Webview去展示。这里不仅仅是展示就完了,web页面需要知道我们点击的哪个物业以及所填评委的名字并显示在html上,所以客户端需要把这两个值传给html。当评委评分完后点击html里的提交按钮并提交成功后,客户端也需要进行
2015-06-08 14:36:28
1266
原创 解读郭神LitePal源码-litepal.xml的解析
在开始使用LitePal时,要求在项目的assets目录下新建一个litepal.xml文件: 该配置文件用来设定数据库的名字、版本号以及所有的对象关系映射模型。什么是对象关系映射模型?因为sql
2015-06-08 09:18:17
2238
1
转载 Mac Pro如何连接Android手机进行调试
解决方法:1.手机开启调试模式,用usb连接mac pro2.选择Mac Pro的“关于本机” ->概览中的“系统报告”->USB->右边会出现一系列和USB相关的设备,找到自己的设备,我的是CoolPad Driver在MT65xx Android Phone:下面。找到厂商ID,我的手机显示的厂商ID是0x1ebf3.打开mac终端,输入:echo 0x1ebf>>~/
2015-03-29 10:32:08
5843
原创 错误: -source 1.6 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
今天晚上运行校长项目时,报错如下:Error:(71, 35) 错误: -source 1.6 中不支持 diamond 运算符(请使用 -source 7 或更高版本以启用 diamond 运算符)这个错误对应程序里的代码是:一般正确的写法是在声明的时候指定类型,也就是:List _hotDatas = new ArrayListPublicBlogListBean
2015-01-08 23:41:55
78719
1
转载 Android Studio:Fetching android sdk component information问题
原文链接:Android Studio:Fetching android sdk component information问题1. 找到C:\Program Files\Android\Android Studio\bin\idea.properties打开编辑:在最末尾加上disable.android.first.run=true2.如果还
2014-12-24 10:26:16
1568
原创 Android Studio Share Project On Github
在Android Studio上将项目导入Github上:1. 创建一个Project,点击VCS -> Enable Version Control Integration...2.选择Git,点击OK3. VCS -> Import into Version Control -> Share Project on Github
2014-12-23 23:36:00
2407
原创 Android Studio Checkout GitHub Error:cannot run program "git.exe":CreateProcess error=2
早在AS版本控制里
2014-09-17 09:52:45
14747
转载 ANDROID探究oom内幕
从早期G1的192MB RAM开始,到现在动辄1G -2G RAM的设备,为单个App分配的内存从16MB到48MB甚至更多,但OOM从不曾离我们远去。这是因为大部分App中图片内容占据了50%甚至75%以上,而App内容的极大丰富,所需的图片越来越多,屏幕尺寸也越来越大分辨率也越来越高,所需的图片的大小也跟着往上涨,这在大屏手机和平板上尤其明显。而且还经常要兼容低版本的设备。所以Android的
2014-04-20 10:32:39
1286
转载 多屏幕多分辨率的支持
原文出处:多屏幕多分辨率的支持第4章 多屏幕多分辨率的支持如果你买过Android手机的话,销售员一般会向你推荐这个android手机是最新版的系统啦,屏幕有多大,分辨率是多少之类的。这只是外表上的多屏幕和多分辨率,其实android内在还有一些影响因素,例如“密度”的概念。本章为详细的为你解释一些基础概念并适当的举一些例子教你怎么处理关于多屏幕多分辨率的支持。 虽然Android
2014-04-18 14:37:50
1584
原创 Android Configuration change引发的问题及解决方法
之前在学习Fragment和总结Android异步操作的时候会在很多blog中看到对Configuration Change的讨论,以前做的项目都是固定竖屏的,所以对横竖屏切换以及横竖屏切换对程序有什么影响都没什么了解。见到的次数多了,总是掠过去心理总觉得不踏实,最终还是好好看了些介绍Congifuration Change的blog,在此做个梳理也不枉花了那么多时间。有疏漏和描述不准确的地方恳请
2014-04-16 14:28:15
18305
原创 Android异步消息处理之Thread+Handler
Android Developers中Keeping Your App Response一文中:No response to an input event (such as key press or screen touch events) within 5 seconds.A BroadcastReceiver hasn't finished executing within 10 se
2014-04-12 16:41:01
2265
原创 有关ListView优化机制及滑动时数据错乱问题的讨论
该篇内容主要是记录我在实际开发中遇到的ListView滑动时数据错乱的几种情况,以及解决方法。在进行ListView滑动时数据错乱问题讨论之前会对ListView所谓的进行说明。文章末尾分享了几篇文章,增强对ListView使用以及Adapter优化的理解,其中有对adapter优化方法的耗时测试的介绍。Getting Start遇到过的ListView在滑动时数据错乱的几种情况:
2014-03-31 18:08:32
5773
原创 使用Android Studio新建Project并建立多个module
说明:本篇内容涉及如何在AS中新建一个Project(应用工作区)并在Project里创建多个Module(项目),记录了在创建Module时遇到的问题,比如新建一个Module后选择要运行的项目时,项目标有红色的叉叉导致无法运行。Getting Start在使用Android Studio(以下简称AS)新建项目时都会有这样一个概念:Eclipse中的WorkSpace相当于
2014-03-29 23:25:17
28955
翻译 List Fragments In Android Studio
原英文链接:List Fragment In Android StudioList Fragment是一个重要的UI结构,用来显示list和grid数据,本篇指南涉及了在一个基础手机应用里如果使用list fragments。Getting Started如果你还没有一个Android Studio项目,可以先创建一个新项目(File -> New Project)
2014-03-28 19:39:46
2549
翻译 Fragments In Android Studio
原英文链接:Fragments in Android Studio这篇指南将会教你在Android Studio上简单地创建和使用Fragment,并在fragment里添加一个按钮,点击按钮会发送一个个动作给持有该fragment的父activity,并且显示一个Toast通知。Getting Started打开Android Studio 并且点击“File ->
2014-03-28 10:22:53
4309
转载 在Bundle中传递自定义的ArrayList<Object>
在用多线程的时候,会需要在Message中传递自己定义的Arraylist但是呢,Messge的数据传递必须要用Bundle所以需要将自定义的ArrayList放入Bundle解决方法是用Bundle.putParcelableArrayList(list)当然不能直接把list放入bundle中,必须经过加工方法如下:Message msg = n
2014-03-20 22:17:29
4020
原创 Android Studio上如何混淆打包apk
先分享个链接,这个链接解决了我在用AS混淆打包apk时遇到的一个大问题Gradle failed to build when proguard is activated当时遇到的问题:这个问题,导致我一直在查找failed for task ':项目名:proguardRelease'是怎么一回事,当然查找的结果是少得可怜,几乎没有,后来stackoverflow上的大神回复的
2014-01-01 23:24:26
4893
原创 Android混淆后运行程序出现异常:Missing type parameter
对程序进行混淆,打包发布版apk,再用真机对该发布版apk进行测试,发现所有有网络请求的页面都无法显示出数据,查看log,发现如下异常:网上查了查"Missing type parameter"这个问题到底是什么原因引起的,可以看到这样的回答因为程序中用到了gson的new typeToken。那应该是在混淆的文件里对typetoken相关的类做了混淆,导致运行时程序不能识别。看上图的
2014-01-01 22:50:03
6848
翻译 Android-Fragments的使用
请转原文学习:Using Fragmenys in Android - Tutorialwhere I found this resource:干干货分享——Android开发中学习资源大集合(译)很素的翻译开始:2. Fragments2.1. 什么是fragments?fragments是一个能够应用于Activity中的独立组件,他封装了功能,所以在activitys和layouts中更容易
2013-12-23 23:07:32
3348
转载 Activity启动edittext自动弹出软键盘解决办法
转载:Activity启动EditText自动弹出软键盘解决办法有时候我们一个Activity中有一个edittext控件,每次跳转到这个Activity,软键盘都会自动弹出,实在是很不爽。其实这就是edittext获得了屏幕的焦点,所以才导致这样的问题发生。只要让它失去焦点就可以了,解决办法如下:1)在Manifest.xml文件中相应的activity下添加一下代码:a
2013-12-05 15:08:46
3185
原创 Android Studio Gradle 'XXX' project refresh failed:Unable to start the daemon process
solution:where I found the solution : An error when creating new project in android studio
2013-11-21 17:39:43
8378
原创 Android选择图片报错Attempted to access a cursor after it has been closed.
Caused by: android.database.StaleDataException: Attempted to access a cursor after it has been closed. at android.database.BulkCursorToCursorAdaptor.throwIfCursorIsClosed(BulkCursorToCursorAd
2013-11-14 11:58:00
2117
原创 Android Studio报错Gradle: Execution failed for task ':MyTest:processDebugResources'.
原先把/res/drawable-hdip里的一张.png图片命名写错,改过后再运行就报出上述错误。但是图片命名已经修改争取了,只好删除该图片,重新拷贝到/res/drawable-hdip目录下,运行成功。
2013-11-06 14:46:04
6261
原创 Android Gradle cannot find symbol class Gson
Error:(12, 23) Gradle: package com.google.gson does not existError:(37, 3) Gradle: cannot find symbol class GsonError:(37, 19) Gradle: cannot find symbol class Gsondependencies {compile 'com
2013-10-31 17:22:10
3475
原创 org.json.JSONException: No value for Result
使用Json时报错如下:No Value for Result
2013-10-31 17:21:10
3934
原创 Android获取手机屏幕宽高/屏幕状态栏的高度
只要调用方法即可1. 获取手机屏幕宽高 private int mScreenWidth;//屏宽 private int mScreenHeight;//屏高 private void getScreenSize() { Display display = getWindowManager().getDefaultDisplay
2013-10-31 09:35:38
1845
原创 Android中contentDescription属性作用
android:contentDescription="控件的备注说明"设置View的备注说明,作为一种辅助功能提供,为一些没有文字描述的View提供说明,如ImageButton。这里在界面上不会有效果,自己在程序中控制,可临时放一点字符串数据。
2013-10-30 23:07:26
5364
转载 ListView中getView的原理+如何在ListView中放置多个item
转载自OYK博客园 http://www.cnblogs.com/-OYK/archive/2011/05/31/2064781.html此文最原始被翻译自:http://android.amberfog.com/?p=296ListView中getView的原理+如何在ListView中放置多个itemListView 和 Adapter 的基础工
2012-06-05 18:42:38
1141
原创 Android_UI_实现TabHost的两种方法
实现TabHost有两种方式:一、1.不继承TabActivity2.在布局文件中定义TabHost1.图文解意:在布局文件tabhostdemo1.xml里怎么定义tabhost,大家看下面的图片(部分代码)即可,文章最后都会贴出完整代码【注意】这里需要强调的是TabWidget的id必须是@android:id/tabs,FrameLayout的id
2012-05-25 11:11:20
7525
3
原创 Android_selector背景选择器的用法
Selector背景选择器可以帮助我们切换自定义的背景风格,用于button、ListView或布局点击时候的背景切换Selector包含一个或多个item元素常用item的属性: android:state_focused ==》true表示获得焦点时显示(例如用滚动球聚焦button),false表示没获得焦点时显示默认 andro
2012-05-18 21:00:07
2790
转载 android面试题集锦
曼妙琳珑心【转载】Android 面试题(1)真他妈的全面呢。1. 请描述下Activity的生命周期。2. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?3. 如何将一个Activity设置成窗口的样式。(Edited by Sodino)4. 如何退出Activity?如何安全退出已调用多个Activi
2012-05-17 09:55:25
1196
原创 Android_UI_点击按钮切换背景效果实现
实现按钮按下和释放,按钮背景图片相应切换效果的方法这里介绍两种,一种是在代码里实现,另一种是在xml文件里实现一、在xml文件里首先现在layout的一个xml文件下定义Button如下所示: <Button android:id="@+id/btn_user_selected" android:layout_widt
2012-05-17 00:57:01
16791
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人