android
文章平均质量分 55
changwilling
这个作者很懒,什么都没留下…
展开
-
Android应用使用Replugin实现插件化
我们在开发Android应用中,会存在App越来越大,越来越管理的情况。各模块之间耦合度高、编译效率慢、项目冲突不断等问题不断困扰着我们。但是组件化开发和插件化开发提供给我们更好的解决方案。今天我来介绍下插件化开发的一个框架Replugin。Replugin的2.1.5版本已经适配Android P(9.0),是一个非常好用的框架。 首先,我们要从github上查找...原创 2018-11-16 13:07:02 · 2019 阅读 · 0 评论 -
给 Android 开发者的 RxJava 详解
http://gank.io/post/560e15be2dca930e00da1083匠心写作Beta已发表文章投稿赞助给 Android 开发者的 RxJava 详解作者:扔物线此文由以下厂商为作者提供 2000 元资金赞助:成为赞助方 /开始写作前言我从去年开始使用 RxJava ,到现在一年多了转载 2017-01-03 11:17:44 · 808 阅读 · 0 评论 -
是时候客观评价Retrofit了,Retrofit这几点你必须明白!
Tamic/CSDN 尊重原创:http://blog.csdn.net/sk719887916/article/details/53613263是时候客观评价下Retrofit了,retrofit客观存在的问题的你必须要知道!在用retrofit开发很久的朋友或多或少采了巨坑,阅读源码和实践后发现并不是我们认为的那么灵活!无耻的广告又来了:导读:R转载 2016-12-16 17:36:21 · 4872 阅读 · 0 评论 -
目前15 个 Android 通用流行框架大全
目前15 个 Android 通用流行框架大全字数899 阅读611 评论0 喜欢6android-framework1. 缓存名称 描述DiskLruCache转载 2016-12-16 17:32:37 · 2269 阅读 · 0 评论 -
Google 发布 Android 性能优化典范
2015年伊始,Google发布了关于Android性能优化典范的专题, 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个 方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。转载 2016-12-16 17:19:15 · 476 阅读 · 0 评论 -
Scrollview 与 listview 冲突解决?
方法一:核心思想(事件的分发):使用dispatchTouchEvent来分发MotionEvent,将事件处理交给listview(或者GridView) 如: if(event.getAction==MotionEvent.Action_Move){ listview.disPatchTouchEvent(event).//交给li原创 2016-12-08 15:48:22 · 316 阅读 · 0 评论 -
sqlite多线程操作注意问题
1. sqlite数据库使用面临的问题:多线程同时访问 Thread A和Thread B 同时创建SQLiteDatabas,来操作数据库(主要是insert操作): 下面的DataBaseHelper extends SqliteOpenHelper * Thread A: Context context = getApplicat原创 2016-11-25 10:23:34 · 3140 阅读 · 0 评论 -
完全解析Android DskLrucache
11可以看到,edit()方法接收一个参数key,这个key将会成为缓存文件的文件名,并且必须要和图片的URL是一一对应的。那么怎样才能让key和图片的URL能够一一对应呢?直接使用URL来作为key?不太合适,因为图片URL中可能包含一些特殊字符,这些字符有可能在命名文件时是不合法的。其实最简单的做法就是将图片的URL进行MD5编码,编码后的字符串肯定是唯一的,并且只会包含0-F转载 2016-10-31 13:49:14 · 401 阅读 · 0 评论 -
AsyncTask两种线程池
http://bbs.51cto.com/thread-1114378-1.html (API 3.0以后):1.THREAD_POOL_EXECUTOR, 异步线程池使用首先创建一个继承自AsyncTask的MyAsyncTask类,然后调用1MyAsyncTask asynct = newMyAsyncTask转载 2016-11-23 17:26:06 · 470 阅读 · 0 评论 -
SQLite多线程读写实践及常见问题总结
基本操作的部分,大家都很熟悉了,这里根据个人切身经验,总结了一些经常遇到的,也需要注意的一些问题,与大家分享,水平有限,不妥或者错误的地方还望指出。多线程读写SQLite实质上是将数据写入一个文件,通常情况下,在应用的包名下面都能找到xxx.db的文件,拥有root权限的手机,可以通过adb shell,看到data/data/packagename/databases转载 2016-11-23 17:21:58 · 2573 阅读 · 0 评论 -
java中的ReentrantLock和synchronized两种锁定机制的对比
原文:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构转载 2016-11-22 11:12:38 · 290 阅读 · 0 评论 -
listview取消按下效果
思路:设置listview的按下效果与不按下时一样代码示例 android:layout_width="match_parent" android:layout_height="0dp" android:listSelector="@color/transparent" android:layout_weight="1原创 2016-12-01 12:01:20 · 1269 阅读 · 1 评论 -
Intent之对象传递(Serializable传递对象和对象集合)
Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递。Intent中传递这2种对象的方法:?123Bundle.putSerializ转载 2016-12-01 09:25:54 · 840 阅读 · 0 评论 -
ViewPager页面滑动Fragment销毁问题
1、使用场景ViewPager+Fragment实现界面切换,界面数量>=32、Fragment生命周期以及与Activity生命周期对比 3、问题描述按上图所说,只有当Fragment所Attached的Activity执行destroy的时候才会调用onDestoryView方法,然而现实是:转载 2016-11-15 10:44:10 · 741 阅读 · 1 评论 -
为Android频繁的网络请求设置本地缓存
/** * 缓存服务器接收到的数据到本地,设置一个时间阈值 * 一定时间内访问同一个连接直接从本地文件获取 * 超过一定时间,缓存过期,需要重新从网络获取 */public class CacheServerResponse { /** * 设置缓存有效期是20分钟 * 可以专门把失效时间作为一个参数,供不同失效时间场景定制缓存失效时间 * 这个是默转载 2016-11-18 08:56:01 · 1291 阅读 · 0 评论 -
公钥和私钥
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必须发送邮件的两人都有公钥和转载 2016-11-02 14:42:00 · 253 阅读 · 0 评论 -
关于fragment与activity生命周期相关讨论
activity与fragment的生命周期对于android开发来说至关重要,虽然是很基础的问题,基本上所有人都可以熟练的背诵两个组件的生命周期方法,但是更加清晰的使用这些生命周期方法就得需要费一些力气了。使用得到可以优化界面,在细节上处理一些疑难问题,促进整个系统的逻辑的完整性和合理性。 举个栗子,我想在一个fragment中注册一个监听并且在合适的时候取消注册(当然是为了防原创 2016-11-29 11:14:47 · 391 阅读 · 0 评论 -
Glide图片内存优化分析
本来想直接聊图片加载优化,仔细想了想,发现这是个太大的话题。所以就分拆下,一部分一部分的来聊这个话题,今天说说Glide的图片内存优化图片中内存的处理是块很值得深入研究的内容,涉及到的难点也有多。首先,内存总量有限,必须限制图片加载的内存弱引用这个大家都懂,好多第三方加载组件也体现了这个思路。最早,大家将Bitmap用 弱引用 管理起来,当内存不足时转载 2016-12-23 10:51:51 · 6577 阅读 · 0 评论 -
Android中的MVP
原文 http://zhengxiaopeng.com/2015/02/06/Android%E4%B8%AD%E7%9A%84MVP/ 前言MVP作为一种MVC的演化版本在Android开发中受到了越来越多的关注,但在项目开发中选择一种这样的软件设计模式需保持慎重心态,一旦确定 使用MVP作为你App的开发模式那么你就最好坚持做下去,如果在使用MVP模式开发过程中发现问题转载 2017-01-03 17:35:27 · 624 阅读 · 0 评论 -
Android hdpi ldpi mdpi xhdpi xxhdpi适配详解
1、了解几个概念(1)分辨率。分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800、720×1280、1080×1920等。720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。(2)屏幕大小。屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸,5寸×2.54厘转载 2017-12-26 14:38:11 · 492 阅读 · 0 评论 -
关于个人开发者上线Android-App步骤浅谈
到目前来说,很多应用平台都不支持个人开发者在应用商店上线app了,一些游戏类型以及一些主题敏感的app很难在一些渠道获得审核通过。这对于app开发者尤其是个人开发者来说,绝对不是一个福音。很多个人开发者是非常希望自己做的好玩的东西可以更广泛的与别人分享,共同推进好玩的产品和应用一步一步发展的。下面我着重介绍下个人开发者如何快速在应用商店(以应用宝为例)中上线自己的app产品。 应用原创 2017-09-04 14:20:03 · 17632 阅读 · 3 评论 -
简单聊聊Android Architecture Componets
Google IO大会进行中,本次大会Android最大的新闻当属Android O以及Kotlin被官方认可。我发现了原来还有发布官方的架构库,以及推荐使用指南,分享给大家。架构原则关注分离模型驱动UI,优先持久化模型新架构如上图所示,为新的架构模式:Activity/FragmentUI层,通常是Activity/转载 2017-10-24 08:50:50 · 341 阅读 · 0 评论 -
关于MySQL的wait_timeout连接超时问题报错解决方案
The last packet sent successfully to the server was 0 milliseconds ago.今天在使用JDBC操作mysql时遇到 着实让人崩溃的信息,花费了一天的时间来解决。不罗嗦,直接描述解决办法。解决方法: 首先一定要确定url和用户名密码是否配置正确,看看连接字串,端口是否配置正确然后转载 2017-09-06 09:01:52 · 2581 阅读 · 1 评论 -
Dager2使用
转自:http://www.cnblogs.com/zhuyp1015/p/5119727.htmlDagger2 是一个Android依赖注入框架,由谷歌开发,最早的版本Dagger1 由Square公司开发。依赖注入框架主要用于模块间解耦,提高代码的健壮性和可维护性。Dagger 这个库的取名不仅仅来自它的本意“匕首”,同时也暗示了它的原理。Jake Wharton 在对 Dagg转载 2017-06-28 19:41:40 · 897 阅读 · 0 评论 -
Android 内存泄漏总结(超级实用)
Android 内存泄漏总结内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一起分享和学习,也给自己一个警示,以后 coding 时怎么避免这些情况,提高应用的体验和质量。转载 2017-04-25 10:40:05 · 630 阅读 · 0 评论 -
微信Tinker热修补的快速集成详细步骤
热修补相信大家都清楚是用来做啥的,这里不啰嗦了。要集成Tinker首先就是去看看他们的文档,当然微信从来不讲详细Tinker官方说明:Git地址Ok,下面是我集成的理解,希望能帮助大家少躺坑。。。。1.导包app的gradle文件中加入代码:[java] view plain copy转载 2017-05-03 13:38:18 · 438 阅读 · 0 评论 -
Android6.0 危险权限和普通权限
Normal Permissions如下ACCESS_LOCATION_EXTRA_COMMANDSACCESS_NETWORK_STATEACCESS_NOTIFICATION_POLICYACCESS_WIFI_STATEBLUETOOTHBLUETOOTH_ADMINBROADCAST_STICKYCHANGE_NETWORK_STATECHANGE_WIFI_转载 2017-02-07 13:35:46 · 493 阅读 · 0 评论 -
Android图片处理之Glide使用大全
Android图片处理之Glide使用大全http://blog.csdn.net/u013278099/article/details/50459128标签: Glide图片缓存网络处理2016-01-27 20:10 3173人阅读 评论(1) 收藏 举报 分类: android(71) 版权声明:本文为博主原创文章,转载 2016-12-21 08:52:06 · 2477 阅读 · 0 评论 -
Android Okhttp3+Retrofit2网络加载效率优化
一、开发背景:我目前在做的是一个3年左右的老项目,项目开始的时候okhttp还不像现在这么火,基本上使用HttpURLConnection类来实现所有的HTTP请求,当时采用的是xUtils框架来实现异步的,回调式的接口请求。现在发现xUtils这套框架存在几个很大的问题。老框架的性能问题:1、xUtils的图片加载任务会阻塞Http请求,因为xUtils中的图片加载框架B转载 2016-12-30 12:05:25 · 2473 阅读 · 0 评论 -
Android应用层View绘制流程与源码分析
【工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果】1 背景还记得前面《Android应用setContentView与LayoutInflater加载解析机制源码分析》这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得最终分析结果就是下面的关系:看见没有,如上图中id为content的转载 2016-12-29 10:38:52 · 490 阅读 · 0 评论 -
AndroidTouch事件的传递、拦截、消费分析
再处理一些Android点击事件的时候,由于view的叠加等原因,会有一些冲突的问题,导致一些view无法响应对应的事件。下面我讲举个例子来具体的分析下Androidtouch事件的问题。目前有这么一个需求,如下图,在RelativeLayout中嵌套一个LinearLayout,LinearLayout中有一个Button,目前的业务需求是LinearLayout具有左右滑动的效果(当然包含点击原创 2016-12-29 10:29:12 · 2196 阅读 · 0 评论 -
Android Studio Mac版快捷键
⌥—> option|alt ⇧—>shift ⌃—>control ⌘—>command ⎋—>esc ↑↓←→Codealt+F7:Find usage alt+command+L:格式化代码 alt+command+O:优化import(去掉无用的import) command+O:Override Methods command+I:Im转载 2016-12-28 09:16:08 · 303 阅读 · 0 评论 -
ViewPager页面滑动Fragment销毁问题
1、使用场景ViewPager+Fragment实现界面切换,界面数量>=32、Fragment生命周期以及与Activity生命周期对比 3、问题描述按上图所说,只有当Fragment所Attached的Activity执行destroy的时候才会调用onDestoryView方法,然而现实是:转载 2016-12-27 11:29:45 · 1069 阅读 · 0 评论 -
数据库操作问题解答
1.你的数据库在什么时候创建? 答:在第一次执行db.getWritebleDataBase或db.getWritebleDatabase时执行。2.你的数据表在什么时候创建? 答:在DBHelper的onCreate方法中进行表的创建3.DBHelper的onCreate方法什么时候执行? 答:在数据库第一次创建的时候执行,并且只执行一次。4.什么时候执行db.ge原创 2016-11-16 18:19:21 · 411 阅读 · 0 评论 -
android--sqlite数据库创建的真正时候
最近项目不忙,打算自己封装android 数据库的操作。以前都是把别人的代码copy下来就用,今天意识到自己不亲手写一遍,东西始终是别人的。 如果想要在android中使用数据库,使用SQLite是一个非常好的选择,因为它是android内置的数据库,提供了很多支持。我们先手动创建一张表继承SQLiteOpenHelperpublic class SQLH转载 2016-11-16 18:04:17 · 306 阅读 · 0 评论 -
关于Android SQLite3多线程并发问题
最近有看到过Sqlite3的相关文章,在这做一下学习笔记。关于sqlite的介绍,可以参照一下:http://blog.csdn.net/ghost5216/article/details/4863246sqlite3数据库是一个数据库一个文件,所以当多进程访问操作同一数据库时,即与操作同一文件一样,文件锁问题。对同个数据库进行多进程同时读是允许的,但多进程同时写是不允许的转载 2016-11-16 16:44:22 · 1226 阅读 · 0 评论 -
web安全之token
Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。那么,Token有什么作用?又是什么原理呢?Token一般用在两个地方:1)防止表单重复提交、2)anti csrf攻击(跨站点请求伪造)。两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到s原创 2016-08-24 13:36:16 · 319 阅读 · 0 评论 -
下载Apk的时候出现FileNotFindException异常
URL是正确的,在浏览器上测试无误,根据提示,可以判断是路径的问题,出现该问题比较奇怪的,因为在华为手机5.0测试时,下载没有问题,但是使用红米手机4.2版本测试时,发现上述异常,可能跟android版本及不同类型手机权限有关。之前使用的apkPath=Environment.getExternalStorageDirectory().getAbsolutePath()+File.separa原创 2016-09-13 11:24:44 · 747 阅读 · 0 评论 -
android 命名规范
参考:http://www.cnblogs.com/ycxyyzw/p/4103284.html原创 2016-08-23 12:02:36 · 254 阅读 · 0 评论 -
android在Service中弹出Dialog对话框,即全局性对话框
先说具体做法,原因在其后给出:写好Alter功能块后,在alter.show()语句前加入:[java] view plain copyalert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 注:alter为Aler转载 2016-09-12 17:18:28 · 1201 阅读 · 0 评论