
Android知识
文章平均质量分 59
木易匕禾页
这个作者很懒,什么都没留下…
展开
-
极光推送厂商通道(小米、华为)对接/问题排查
极光推送厂商通道(小米、华为)对接/问题排查原创 2022-09-23 15:37:33 · 5144 阅读 · 1 评论 -
Android内存优化/内存泄漏排查
内存优化/内存泄漏排查原创 2022-09-20 14:43:28 · 1133 阅读 · 3 评论 -
android当activity启动模式设置成singleTask如何获取intent
当A activity启动模式设置成SingleTask时再从别的页面跳转到该A activity则生命周期为onNewIntentonRestartonStartonResume此时如果在A activity中获取intent则获取不到,如果要每次获取intent传来的新数据就需要在onNewIntent(Intent intent)方法里调用setIntent(i原创 2017-12-14 17:20:27 · 2401 阅读 · 1 评论 -
android插入联系人
public void addContact(String name, String phoneNumber) { // 创建一个空的ContentValues ContentValues values = new ContentValues(); // 向RawContacts.CONTENT_URI空值插入, // 先获取And转载 2017-11-10 15:15:53 · 673 阅读 · 0 评论 -
android https加载WebView图片不显示问题
在webview里面加载https url的时候,如果里面需要加载http的资源或者重定向的时候,webview会block页面加载。这是Android 4.4以来google对安全机制的提升。即当一个安全站点企图加载来自一个不安全站点资源时WebView的行为,android.os.Build.VERSION_CODES.KITKAT默认为MIXED_CONTENT_ALWAYS_ALL原创 2017-08-08 14:44:28 · 2139 阅读 · 0 评论 -
android配置profile实现环境切换
配置app--build.gradledef env = System.getProperty("profile") ?: "test" sourceSets { main { jniLibs.srcDirs = ['libs']// java.srcDirs = ['src/main/ja原创 2017-11-07 17:11:16 · 3978 阅读 · 0 评论 -
程序包org.apache.http不存在,解决方式
编译提示爆红import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.StatusLine;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpG原创 2017-10-13 09:54:55 · 1324 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: okhttp3.Dispatcher
今天开发遇到这么个奇葩问题:java.lang.NoClassDefFoundError: okhttp3.Dispatcher咋一看以为是OKHttp出了问题,也以为是包冲突的问题,但都不是.而且这个错误只在红米(准确的说是5.0以下的机子)手机上才会出现,其他手机上不会出现.网上百度了一圈,连这个问题都没有!也就可以从侧面推测出,包应该是没问题的.那应该是怎么回事儿呢!我仔细分转载 2017-11-07 16:31:23 · 1059 阅读 · 0 评论 -
Unable to execute dex: method ID not in [0, 0xffff]: 65536
原因:Dalvik可执行文件.dex中的Java方法数引用超过65536,64k的计算方法是65536除以1024,65K的计算方法是65536除以1000,如果方法数超过64k编译器编译将无法通过.解决原理:分包:但是现在一个大的应用,尤其是集成第三方库的,很容易超过这个数目,所以Android 5.0 之后的版本谷歌试用了名为ART的虚拟机来代替Dalvik虚拟机,ART支持从APK文件转载 2017-11-07 16:30:16 · 414 阅读 · 0 评论 -
使用apt导入时报警告:Warning:Using incompatible plugins for the annotation processing: android-apt. This may
使用apt来导入butterknife和dagger的时候,会报警告 Warning:Using incompatible plugins for the annotation processing: android-apt. This may result in an unexpected behavior.解决方案:1、apt 'com.jakewharton:butterknife原创 2017-10-11 11:07:34 · 1679 阅读 · 0 评论 -
android String文件中修改部分字体颜色
修改部分字体颜色各位同学都知道可以使用SpannableStringBuilder,其实我们可以还有别的简单方式配合Html.fromHtml()以前用SpannableStringBuilder1.为指定的区间[1,4)设置指定的颜色 ssb = new SpannableStringBuilder("为指定的区间[1,4)设置指定的颜色"); s原创 2017-09-12 15:37:32 · 16142 阅读 · 0 评论 -
AlertDialog,Toast对Activity生命周期的影响
转自:http://blog.youkuaiyun.com/scorpioneal/article/details/19049475经常可以在网上看到一些文章介绍Activity生命周期, 说只要一个Activity被覆盖,不是完全可见, 那么它就处于onPause状态或者不可见, 则处于onStop状态, 之前自己也是一直这样以为, 知道后来碰到一些情况(toast的弹出, AlertD转载 2017-09-06 14:44:27 · 1114 阅读 · 2 评论 -
android 内存泄露分析及调试(LeakCanary使用)
LeakCanary是一个傻瓜化并且可视化的内存泄露分析工具为什么需要LeakCanary?因为它简单,易于发现问题,人人可参与。简单:只需设置一段代码即可,打开应用运行一下就能够发现内存泄露。而MAT分析需要Heap Dump,获取文件,手动分析等多个步骤。易于发现问题:在手机端即可查看问题即引用关系,而MAT则需要你分析,找到Path To GC Roots等关系。原创 2017-08-14 15:01:57 · 517 阅读 · 0 评论 -
android ViewStub
原文地址:http://blog.youkuaiyun.com/hitlion2008/article/details/6737537/在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵转载 2017-07-28 17:16:03 · 393 阅读 · 0 评论 -
Data Binding学习(二)
Data Binding 布局文件 - (View)Data binding 的布局文件与传统布局文件有一点不同。它以一个 layout 标签作为根节点,里面是 data 标签与 view 标签。view 标签的内容就是不使用 Data Binding 时的普通布局文件内容。以下是一个例子: <LinearLayout转载 2017-07-25 17:08:46 · 382 阅读 · 0 评论 -
String.compareTo()比较大小
字符串比较大小规则:根据ASCII码顺序从前向后依次比较 String a = "abcde"; String b = "abcdez"; String c = "abcdeyzq"; String d = "1ab"; String e = "czgagaze"; String f="two";原创 2017-11-14 14:40:59 · 4221 阅读 · 0 评论 -
android和js相互调用
android和js相互调用原创 2017-11-09 14:26:31 · 936 阅读 · 0 评论 -
android路由框架
1,什么是路由?映射页面跳转关系,包含跳转相关的一切功能简单描述:路由是一个框架,可以控制,转发对页面的跳转。并在转发前做相应的修改。2,android原生已经提供startActivity,为什么还要使用路由框架呢?1)使用startActivity()的缺点是需要打开的那个Activity的类已经存在,否则无法通过编译,但是在协同开发中,这往往是无法得到满足的。2)我们的模原创 2017-11-16 11:03:41 · 766 阅读 · 0 评论 -
android支付宝(Alipay)接入介绍
支付宝的官网地址:https://docs.open.alipay.com/204/105296/1.将alipaySdk-xxxxxxxx.jar包放入商户应用工程的libs目录下,如下图。或者在app module下的build.gradle下手动添加依赖,如下代码所示:dependencies { ...... compile files('libs/alipaySdk-20...原创 2018-07-03 10:10:43 · 3559 阅读 · 0 评论 -
android通用的订单数量显示,以及个人中心单页GridView效果
自定义的MenuLinearLayoutpackage com.xxxxxx.view;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Color;import android.graphics.drawable.Drawable;import a...原创 2018-07-03 09:49:17 · 1363 阅读 · 0 评论 -
详解Java中的clone方法 -- 原型模式
Java中对象的创建浅拷贝:只复制一个对象,对象内部存在的指向其他对象数组或者引用则不复制深拷贝:对象,对象内部的引用均复制clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1 使用new操作符创建一个对象2 使用clone方...转载 2018-04-02 16:12:23 · 207 阅读 · 0 评论 -
if else 和 switch的效率
switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。具体地说,switch...case会生成一份大小(表项数)为最大case...转载 2018-03-21 14:16:37 · 240 阅读 · 0 评论 -
Android中this与Activity.this的区别
Toast.makeText(AlarmActivity.this,"闹钟取消", Toast.LENGTH_SHORT); Toast.makeText(this,"闹钟5秒后启动", Toast.LENGTH_SHORT); 用英文在google搜what‘s difference between this and Activity.this,终于有了结果(其实自己后面用了Java里C...转载 2018-03-21 11:31:55 · 1564 阅读 · 0 评论 -
android Gson
原文:http://stormzhang.com/android/2014/05/22/android-gson/目前的客户端大都有和服务端进行交互,而数据的格式基本就是json了,于是在Android开发中就经常用到json解析,方便的是Google已经为我们提供了一个很棒的json解析库–gson,那么今天就来总结分享下gson的各种用法。gson的官方下载地址:google-gson转载 2018-01-26 15:24:31 · 357 阅读 · 0 评论 -
listview里嵌套Edittext点击相同的item输入法遮挡Edittext
listview 中嵌套 Edittext ,清单文件中设置 activity android:windowSoftInputMode="adjustPan" ,加载的数据超出屏幕。例如: 点击 item 5 软键盘弹出,屏幕整体上移,再点击软键盘右上角隐藏软键盘,此时点击 item 6 软键盘弹出,屏幕整体上移再点击软键盘右上角隐藏软键盘,这时候再点击 item 6 软键盘遮挡住 item 6原创 2018-01-18 15:52:25 · 375 阅读 · 0 评论 -
android反编译
需要用到的工具:apktool:https://ibotpeaches.github.io/Apktool/jd-jui:http://jd.benow.ca/dex2jar:https://github.com/pxb1988/dex2jar首先来简单的说明下Apk文件本质上其实是一个zip包。我们直接进行解压就能看到其中的目录。目录说原创 2018-01-26 14:13:04 · 329 阅读 · 0 评论 -
android webview遇到的坑,及优化
很感谢博主的总结,许多问题我实际项目中都遇到过。当时也是各种google找解决方案。问题也是解决,但是过一段时间又忘记了,记录一下博主的总结,地址:webview遇到的坑,及优化转载 2018-01-23 18:04:15 · 337 阅读 · 0 评论 -
android集成华为push 6003错误,以及华为低版本crash问题
前段时间项目需要接入推送功能,最终对比选择了使用极光推送,但是极光结束后台进程是收不到push消息的,需要我们自己去集成第三方平台,比如:小米,华为,魅族极光接入华为:极光根据 EMUI 系统版本间差异,现采取的方案是 EMUI 4.1 及以上版本,使用 HMS 服务,通知 HMS 通道;对于 EMUI 4.1 以下版本还是⾛极光通道。当初接入华为push时候 SHA256指纹证书原创 2018-01-02 16:43:13 · 9884 阅读 · 1 评论 -
Android常用文件文件路径介绍
import android.content.Context;import android.os.Bundle;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.util.Log;public class MainActivity extends Ap原创 2018-01-02 14:57:27 · 364 阅读 · 0 评论 -
Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject
androidStudio导入Eclipse项目报错错误原因:gradle配置错误因为Eclipse所使用的ADT插件已经不再更新,所以从Eclipse导出的项目使用的是旧版本Gradle插件,而新版的Android Studio(v2.3+)已经不再支持1.0.0版本以下的Gradle插件,因此报错。 相应的解决办法就是将配置文件中的Gradle插件版本改成本地已经安装的版本。原创 2017-12-14 17:25:18 · 892 阅读 · 0 评论 -
Data Binding学习(一)
1.为什么要使用Data Binding?当我们没使用Data Binding时候布局是这样的 这是一个你经常会看到的 Android UI。 假设你有一堆带 ID 的视频内容。你的设计师来了,说:“好吧,让我们尝试添加新的信息到这个布局,”这样,当你添加任何布局,你需要跟随另外一个 ID。你需要回到你的 Java 代码,修改 UI。private Te原创 2017-07-25 16:33:51 · 306 阅读 · 0 评论 -
Android内存优化(使用SparseArray和ArrayMap代替HashMap)
在Android开发时,我们使用的大部分都是Java的api,比如HashMap这个api,使用率非常高,但是对于android这种对内存非常敏感的移动平台,很多时候使用一些java的api并不能达到更好的性能,相反反而更消耗内存,所以针对Android这种移动平台,也推出了更符合自己的api,比如SparseArray、ArrayMap用来代替HashMap在有些情况下能带来更好的性能提升。转载 2017-08-16 14:26:12 · 268 阅读 · 0 评论 -
重拾EventBus
官网地址:https://github.com/greenrobot/EventBusEventBus产生需求背景: 在做项目的时候往往需要应用程序内各组件间、组件与后台线程间的通信。比如耗时操作,等耗时操作完成后通过Handler或Broadcast将结果通知给UI,N个Activity之间需要通过Listener通信,之前的实现方式我们在Android消息传递之组转载 2017-07-24 17:21:53 · 430 阅读 · 0 评论 -
布局优化技巧
原文:http://blog.youkuaiyun.com/qq_17766199/article/details/52863741今天分享一些layout布局书写中的一些技巧,希望看过之后你也一样可以写出性价比高的布局。我个人的目标是用最少的View写出一样效果的布局。因为我相信View的数量减少伴随着的就是层级的减少。从而达到结构清晰,渲染速度快的效果。顺着这个逻辑,我将优化分为重用、合并、按需载转载 2016-12-06 14:30:33 · 508 阅读 · 0 评论 -
android使用intent实现分享操作
在构建一个intent时,必须指定这个intent需要触发的actions。Android定义了一些actions,比如ACTION_SEND,该action表明该intent用于从一个activity发送数据到另外一个activity的,甚至可以是跨进程之间的数据发送。为了发送数据到另外一个activity,我们只需要指定数据与数据的类型,系统会自动识别出能够兼容接受的这些数据的activi原创 2016-12-05 11:13:13 · 2078 阅读 · 0 评论 -
BaseActivity与BaseFragment的简单封装
原文:http://blog.youkuaiyun.com/tyk0910/article/details/51355026感觉本文写的不错。主要为了做个笔记。欢迎大家访问原文链接这篇博客主要是从BaseActivity与BaseFragment的封装开始,总结自己在实战开发中关于Fragment的注意事项以及心得体会。先看以下效果图: 这里模拟的是用户登录模块,你可能会说,很转载 2016-12-05 10:58:22 · 399 阅读 · 0 评论 -
android View滑动冲突解决
原文:http://blog.youkuaiyun.com/tyk0910/article/details/53414299?ref=myread欢迎大家访问原文,本人只是觉得这篇文章写的挺好,而且自己也遇到过相关问题,想记录下,以后遇到同样的问题方便查阅。最近在重新学习Android自定义View这一块的内容,遇到了平时开发中经常碰到的一个棘手问题:View的滑动冲突。相信不少小伙伴都有相同的感觉,转载 2016-12-02 10:39:24 · 373 阅读 · 0 评论 -
android 数据存储--SharedPreferences
当有一个相对较小的key-value集合需要保存时,可以使用SharedPreferences APIs。 SharedPreferences 对象指向一个保存key-value pairs的文件,并为读写他们提供了简单的方法。每个 SharedPreferences 文件均由framework管理,其既可以是私有的,也可以是共享的。 获取SharedPreference我们可原创 2016-12-02 15:26:49 · 329 阅读 · 0 评论 -
Android AndroidManifest.xml文件的android:supportsRtl属性详解
上次从网上下了一个Demo发现AndroidManifest.xml文件有个android:supportsRtl属性。于是搜了一下,发现原来是这样的,转载一下吧,没事看看还能记记。感谢原文作者:http://blog.youkuaiyun.com/aa464971/article/details/51372204Android Studio新建工程的AndroidManifest文件里会转载 2016-10-28 16:34:40 · 525 阅读 · 0 评论 -
XML布局文件出错问题解决办法
上次做项目布局文件遇到一个小问题,找了一会,最后在下面这篇文章找到个细节问题,觉得不错,转载一下。原文出处:http://blog.youkuaiyun.com/hustlwz/article/details/52873249?locationNum=2&fps=1先来看下报的异常,仅仅贴了主要部分:[java] view plain copy转载 2016-10-28 16:21:06 · 1720 阅读 · 0 评论