- 博客(80)
- 资源 (12)
- 收藏
- 关注
原创 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
3546
原创 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
1359
转载 详解Java中的clone方法 -- 原型模式
Java中对象的创建浅拷贝:只复制一个对象,对象内部存在的指向其他对象数组或者引用则不复制深拷贝:对象,对象内部的引用均复制clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1 使用new操作符创建一个对象2 使用clone方...
2018-04-02 16:12:23
206
转载 if else 和 switch的效率
switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。具体地说,switch...case会生成一份大小(表项数)为最大case...
2018-03-21 14:16:37
236
转载 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
1560
转载 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
354
原创 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
324
转载 android webview遇到的坑,及优化
很感谢博主的总结,许多问题我实际项目中都遇到过。当时也是各种google找解决方案。问题也是解决,但是过一段时间又忘记了,记录一下博主的总结,地址:webview遇到的坑,及优化
2018-01-23 18:04:15
332
原创 listview里嵌套Edittext点击相同的item输入法遮挡Edittext
listview 中嵌套 Edittext ,清单文件中设置 activity android:windowSoftInputMode="adjustPan" ,加载的数据超出屏幕。例如: 点击 item 5 软键盘弹出,屏幕整体上移,再点击软键盘右上角隐藏软键盘,此时点击 item 6 软键盘弹出,屏幕整体上移再点击软键盘右上角隐藏软键盘,这时候再点击 item 6 软键盘遮挡住 item 6
2018-01-18 15:52:25
372
转载 深入理解JVM之三:垃圾回收算法
原文:http://blog.youkuaiyun.com/dd864140130/article/details/500844711. 标记——清除算法(Mark-Sweep)标记——清除算法是第一种使用和比较完善的垃圾回收算法,算法分为两个过程:1、标记所有需要回收的对象2、标记完成后清除被标记的对象。其标记的过程就是判断对象有效性,执行可达性分析的过程。其执行流程图大体如何下所示
2018-01-05 14:16:53
269
原创 android集成华为push 6003错误,以及华为低版本crash问题
前段时间项目需要接入推送功能,最终对比选择了使用极光推送,但是极光结束后台进程是收不到push消息的,需要我们自己去集成第三方平台,比如:小米,华为,魅族极光接入华为:极光根据 EMUI 系统版本间差异,现采取的方案是 EMUI 4.1 及以上版本,使用 HMS 服务,通知 HMS 通道;对于 EMUI 4.1 以下版本还是⾛极光通道。当初接入华为push时候 SHA256指纹证书
2018-01-02 16:43:13
9869
原创 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
363
原创 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
890
原创 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
2396
1
原创 android路由框架
1,什么是路由?映射页面跳转关系,包含跳转相关的一切功能简单描述:路由是一个框架,可以控制,转发对页面的跳转。并在转发前做相应的修改。2,android原生已经提供startActivity,为什么还要使用路由框架呢?1)使用startActivity()的缺点是需要打开的那个Activity的类已经存在,否则无法通过编译,但是在协同开发中,这往往是无法得到满足的。2)我们的模
2017-11-16 11:03:41
761
原创 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
4217
转载 android插入联系人
public void addContact(String name, String phoneNumber) { // 创建一个空的ContentValues ContentValues values = new ContentValues(); // 向RawContacts.CONTENT_URI空值插入, // 先获取And
2017-11-10 15:15:53
669
原创 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
3972
转载 java.lang.NoClassDefFoundError: okhttp3.Dispatcher
今天开发遇到这么个奇葩问题:java.lang.NoClassDefFoundError: okhttp3.Dispatcher咋一看以为是OKHttp出了问题,也以为是包冲突的问题,但都不是.而且这个错误只在红米(准确的说是5.0以下的机子)手机上才会出现,其他手机上不会出现.网上百度了一圈,连这个问题都没有!也就可以从侧面推测出,包应该是没问题的.那应该是怎么回事儿呢!我仔细分
2017-11-07 16:31:23
1056
转载 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
410
原创 程序包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
1320
原创 使用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
1677
原创 android String文件中修改部分字体颜色
修改部分字体颜色各位同学都知道可以使用SpannableStringBuilder,其实我们可以还有别的简单方式配合Html.fromHtml()以前用SpannableStringBuilder1.为指定的区间[1,4)设置指定的颜色 ssb = new SpannableStringBuilder("为指定的区间[1,4)设置指定的颜色"); s
2017-09-12 15:37:32
16123
转载 AlertDialog,Toast对Activity生命周期的影响
转自:http://blog.youkuaiyun.com/scorpioneal/article/details/19049475经常可以在网上看到一些文章介绍Activity生命周期, 说只要一个Activity被覆盖,不是完全可见, 那么它就处于onPause状态或者不可见, 则处于onStop状态, 之前自己也是一直这样以为, 知道后来碰到一些情况(toast的弹出, AlertD
2017-09-06 14:44:27
1110
2
转载 github使用发现优秀的开源项目
原文:http://mp.weixin.qq.com/s/a1x4_fT8Omq_0dxnfktZcg关注一些活跃的大牛 GitHub 主页有一个类似微博的时间线功能,所有你关注的人的动作,比如 star、fork 了某个项目都会出现在你的时间线上,这种方式适合我这种比较懒的人,不用主动去找项目,而这种基本是我每天获取信息的一个很重要的方式。不知道
2017-08-30 10:55:38
497
转载 Android内存优化(使用SparseArray和ArrayMap代替HashMap)
在Android开发时,我们使用的大部分都是Java的api,比如HashMap这个api,使用率非常高,但是对于android这种对内存非常敏感的移动平台,很多时候使用一些java的api并不能达到更好的性能,相反反而更消耗内存,所以针对Android这种移动平台,也推出了更符合自己的api,比如SparseArray、ArrayMap用来代替HashMap在有些情况下能带来更好的性能提升。
2017-08-16 14:26:12
266
原创 android 内存泄露分析及调试(LeakCanary使用)
LeakCanary是一个傻瓜化并且可视化的内存泄露分析工具为什么需要LeakCanary?因为它简单,易于发现问题,人人可参与。简单:只需设置一段代码即可,打开应用运行一下就能够发现内存泄露。而MAT分析需要Heap Dump,获取文件,手动分析等多个步骤。易于发现问题:在手机端即可查看问题即引用关系,而MAT则需要你分析,找到Path To GC Roots等关系。
2017-08-14 15:01:57
516
原创 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
2132
转载 android ViewStub
原文地址:http://blog.youkuaiyun.com/hitlion2008/article/details/6737537/在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵
2017-07-28 17:16:03
391
转载 Data Binding学习(二)
Data Binding 布局文件 - (View)Data binding 的布局文件与传统布局文件有一点不同。它以一个 layout 标签作为根节点,里面是 data 标签与 view 标签。view 标签的内容就是不使用 Data Binding 时的普通布局文件内容。以下是一个例子: <LinearLayout
2017-07-25 17:08:46
378
原创 Data Binding学习(一)
1.为什么要使用Data Binding?当我们没使用Data Binding时候布局是这样的 这是一个你经常会看到的 Android UI。 假设你有一堆带 ID 的视频内容。你的设计师来了,说:“好吧,让我们尝试添加新的信息到这个布局,”这样,当你添加任何布局,你需要跟随另外一个 ID。你需要回到你的 Java 代码,修改 UI。private Te
2017-07-25 16:33:51
303
转载 线程池这一篇就够了
说到线程,我想大家都不陌生,因为在开发时候或多或少都会用到线程,而通常创建线程有两种方式:1、继承Thread类 2、实现Runnable接口虽说这两种方式都可以创建出一个线程,不过它们之间还是有一点区别的,主要区别在于在多线程访问同一资源的情况下,用Runnable接口创建的线程可以处理同一资源,而用Thread类创建的线程则各自独立处理,各自拥有自己的资源。
2017-07-25 10:56:12
983
android配置profile实现环境切换
2017-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人