关闭

Android应用瘦身,从18MB到12.5MB

瘦身的目的 从目的导向来看,我们是不会无缘无故去做一件事情的,那我们对应用瘦身的目的是为了什么?答案是:提高下载转化率。什么是下载转化率?举个栗子:你的应用大小是 18MB ,有100个潜在用户想要去下载尝试使用,结果有20个用户嫌弃安装包太大直接扬长而去,有20个用户在等待下载的过程中取消下载,最终只有60个用户真正下载安装,那么应用的下载转化率就是 60/100 = 60% 。 简...
阅读(139) 评论(0)

深入浅出 Retrofit

Android 开发中,从原生的 HttpUrlConnection 到经典的 Apache 的 HttpClient,再到对前面这些网络基础框架的封装,比如 Volley、Async Http Client,Http 相关开源框架的选择还是很多的,其中由著名的 Square 公司开源的 Retrofit 更是以其简易的接口配置、强大的扩展支持、优雅的代码结构受到大家的追捧。也正是由于 Squ...
阅读(215) 评论(0)

Android N:开发者应注意什么?

Android 6.0这个棉花糖可能很多人还没尝到呢,但不管怎样,Android N还是要来了。 Android N发布时间线 新的Android系统带来了很多新特性: 多窗口支持通知栏直接回复通知分组Doze模式2.0 在关注这些新特性的同时,作为开发者,我们更应该注意新的是Android N给开发者带来了哪些改变?本文就给开发者朋友们讲述下我...
阅读(159) 评论(0)

老司机教你 “飙” EventBus 3

EventBus 对于 Android 开发老司机来说肯定不会陌生,它是一个基于观察者模式的事件发布/订阅框架,开发者可以通过极少的代码去实现多个模块之间的通信,而不需要以层层传递接口的形式去单独构建通信桥梁。从而降低因多重回调导致的模块间强耦合,同时避免产生大量内部类。它拥有使用方便,性能高,接入成本低和支持多线程的优点,实乃模块解耦、代码重构必备良药。 作为 Mark...
阅读(284) 评论(0)

Android开源库-仿360手机助手底部动画菜单布局

效果对比: 360手机助手效果演示: 本库实现的效果(Icon来自360手机助手,侵删) 使用方法: xml布局文件 注:为了美观,讲每个Button的高度以及固定,设置wrap_content时候是最大高度,为50dp,如果需要设置特定高度请参见下文的方法表格 <com.brioal.bottomta...
阅读(380) 评论(0)

LeakCanary 中文使用说明

LeakCanary Android 和 Java 内存泄露检测。 “A small leak will sink a great ship.” - Benjamin Franklin 千里之堤, 毁于蚁穴。 -- 《韩非子·喻老》 demo 一个非常简单的 LeakCanary demo: https://github.com...
阅读(322) 评论(0)

Android React Native使用原生模块

var React = require('react-native'); var { NativeModules, } = React; var Log1= NativeModules.Log; Log1.d("Log1","LOG"); console("Log1","LOG"); 有时候我们的App需要访问平台API,并且React Native可能还没有相应的模块包...
阅读(693) 评论(0)

Android AccessibilityService 应用之微信抢红包外挂

技术详述 一开始大家都会觉得做一个Android外挂会汲取很多东西或者底层的东西,但当发现Android里有一个叫AccessibilityService的服务时,一切都变得很简单。 关于AccessibilityService 先看看官网的介绍Accessibility Many Android users have different abilities that requ...
阅读(839) 评论(0)

Android应用setContentView与LayoutInflater加载解析机制源码分析

1 背景其实之所以要说这个话题有几个原因:理解xml等控件是咋被显示的原理,通常大家写代码都是直接在onCreate里setContentView就完事,没怎么关注其实现原理。 所以接下来主要分析的就是View或者ViewGroup对象是如何添加至应用程序界面(窗口)显示的。我们准备从Activity的setContentView方法开始来说(因为默认Activity中放入我们的xml或者Java...
阅读(463) 评论(0)

Canvas.drawText绘制文字为什么会偏上?

如果你经常使用Canvas的draw***方法去绘制一些图像图形,你会知道绘制的时候坐标是从Canvas左上角开始计算的,如果想要把一个图像放到某个位置,直接drawBitmap传递图片左上角的坐标就行了。 那drawText就不一样了,如果你传递进去字符串,会发现文字的位置和你指定的不一样。 卧槽为啥。Android的文档也没有仔细说,打开源码一看,又跑到native代码里去执行了。...
阅读(667) 评论(0)

Android判断权限被限制

开发过程,如果某个权限被第三方限制了,比如录音,网上查了下 String permName = "android.permission.RECORD_AUDIO"; String pkgName = getPackageName(); // 结果为0则表示使用了该权限,-1则表求没有使用该权限 int reslut = getPackageManag...
阅读(1728) 评论(2)

ListView局部刷新

今天讲一个ListView优化的小技巧,很多时候,我们不需要刷新整个ListView,只是想刷新某一个Item,那么,这个技巧就派上用场了: 1、比如列表有收藏按钮,当前页面收藏 private List> mList = new ArrayList<>(); ... 走收藏接口,在成功后 mList.get(position).put("favorites", "1"); not...
阅读(436) 评论(0)

(仿360卸载后弹窗)Android卸载程序之后跳转到指定的反馈页面

想起360被卸载之后会跳转到指定的反馈页面,是怎么弄的?就百度了一下,果然网上似乎有相关的问题的解答,这里就将他们的步骤在细化一下了: 其实这个问题的核心就在于:应用被卸载了,如果能够做到后续的代码逻辑继续执行 我们再来仔细分析一下场景和流程 一个应用被用户卸载肯定是有理由的,而开发者却未必能得知这一重要的理由,毕竟用户很少会主动反馈建议,多半就是用得不爽...
阅读(815) 评论(1)

Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)

前言: 最近有个Android 初学者问我,他面试的时候遇到个问题:(什么是socket通信)。我总结了下,写了篇博客给他看: 一、Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向...
阅读(494) 评论(0)

Android开发之如何保证Service不被杀掉

序言 最近项目告一段落,想起之前公司同事遇到一个问题:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作,都要保证service不被kill。我查了下网上的资料整合了下自己的经验,作出如下解答: 这是Android开发中不可避免的问题。那么,参考了现今各种定制版的系统和安全厂商牛虻软件,如何能保证自己的Service不被杀死呢? 其实除了常规的手段,我...
阅读(398) 评论(0)
182条 共13页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:159578次
    • 积分:2621
    • 等级:
    • 排名:第15394名
    • 原创:84篇
    • 转载:98篇
    • 译文:0篇
    • 评论:20条
    最新评论