android
文章平均质量分 84
怀君
可以没文凭,不可以没文化。可以不上学,不可以不读书。
展开
-
Hanlder
Handler常见的问题详解原创 2022-11-01 17:06:41 · 3474 阅读 · 4 评论 -
转载 : Android webview在https下实现ssl的双向认证
解决APP应用安全报告WebView 无HTTPS 校验风险 的问题。一、概述1.简介Https简单来说是Http的安全版,Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比Http协议更加安全。这里说的安全靠的就是SSL,SSL的作用如下:a.认证用户和服务器,确保数据发送到正确的客户机和服务器。(验证证书)b.加密数据防止传输数据中途被窃取。(加密)c.维护数据的完整性,确保数据在传输过程中不被改变。(摘要算法)Https在传输数据之前需要客户端与服务器端转载 2021-11-17 15:28:25 · 1811 阅读 · 1 评论 -
Flutter优秀第三方常用框架
名称GitHub地址下拉刷新上拉加载EasyRefresh下拉刷新上拉加载PullToRefreshSharedPreferencesshared_preferences中国城市选择器city_picker设备信息device_infourl_launcherurl_launcher视频播放器video_playerWebViewWebViewPackageInfopackage_info系统分享share引...转载 2021-10-19 15:54:57 · 4400 阅读 · 0 评论 -
Android--史上最全、最完整,获取设备信息、获取手机唯一标识
史上最详细、最完整、获取Android设备详细信息。原创 2021-07-08 19:13:00 · 28093 阅读 · 42 评论 -
安卓BroadcastReceiver使用
Android中的广播主要分为两种类型,标准广播和有序广播。标准广播: 是一种完全异步的广播,当广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,没有顺序可言。这种广播的效率会比较高,同时也无法被截断有序广播: 是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕之后,广播才会继续传递。所以此时的广播接收...原创 2020-01-17 16:57:14 · 170 阅读 · 0 评论 -
安卓Fragment生命周期
Fragment生命周期与Activity相似Fragment必须依赖于Activity才能运行,所以Activity生命周期调用优先于Fragment,并且Fragment比Activity要轻量很多。onAttach:Fragment与Activity的建立关联时调用,用于获得Activity传递的值onCreate:视图创建之前调用onCreateView:创建Fragment视图...原创 2020-01-15 17:58:27 · 375 阅读 · 0 评论 -
Android国外Google地图定位
相关的详细教程地址:https://blog.csdn.net/hffugff/article/details/83882049https://www.cnblogs.com/zhujiabin/p/7570960.html实现定位的步骤:首要的是电脑需要翻墙,也就是能否访问外网登录Google官网申请密钥key定位Demo代码简单的配置实现定位遇到的一些问题:在国内时定位一...原创 2019-11-16 09:50:37 · 858 阅读 · 0 评论 -
OKHttp使用拦截器(Interceptor)POST与GET方法,统一封装传公共参数
我们在使用retrofit联网开发的过程中,会遇到API每一次请求数据都会带有相同的公共参数。 例如:用户ID : 1111111设备唯一ID:132131290客户端版本号:2.3.0等一些参数……然而,我们请求有post与get两种方式,我再百度的过程中基本都是用的get请求方式,可能大多都是为了测试方便。一般开发过程中我还是建议用post来请求数据。在这儿我们就多扯一点两者的区别。原创 2017-01-05 11:10:04 · 13364 阅读 · 0 评论 -
简单了解Handler
Android的消息机制概述 在开发中,对于一些比较耗时的操作,通常会开启一个单独的线程来执行,尽可能的减少用户的等待时间。再Android中,所有的操作都在主线程中进行,主线程负责管理与UI 相关的事件,而在用户自己创建的子线程中,不能对UI组件进行操作。因此,Android提供了消息处理传递机制来解决这一问题。流程Android的消息机制主要是指Handler的运行机制,Handler的运行翻译 2017-03-24 18:26:50 · 384 阅读 · 0 评论 -
《Android开发艺术与探索》第15章笔记——性能与优化
概述 Android一些有效的性能优化方法,主要包括布局优化,绘制优化,内存泄露优化,响应速度优化,Bitmap优化,线程优化以及一些性能优化建议,同时在介绍响应速度优化的同时还介绍了ANR日志的分析方法。布局优化布局优化其实就是减少布局文件的层级嵌套,布局中的层级少了,这就意味着Android绘制时的工作量少了,那么程序的性能自然就高了。首先删除布局中无用的控件和层级,其次有选择地使用性原创 2017-03-28 15:55:49 · 452 阅读 · 0 评论 -
Android RectF()用法
这个星期研究了一下,自定义控件。Paint方法,之前看大神的博客,一直有个疑问,RecF()的用法,就是一直没搞懂。今天花了点时间,亲自测试大概已经了解了一些。查看源码的注释 Rect F holds four float coordinates for a rectangle . The rectangle is represented by the coordinates of it原创 2017-02-08 14:40:20 · 44916 阅读 · 10 评论 -
Android studio2.2 NDK,JNI的简单使用
今天聊聊Android studio 2.2 添加C 和C++ 的代码1.下载NDK和构建工具要为您的应用编译和调试原生代码,您需要以下组件: - Android 原生开发工具包 (NDK):这套工具集允许您为 Android 使用 C 和 C++ 代码,并提供众多平台库,让您可以管理原生 Activity 和访问物理设备组件,例如传感器和触摸输入。 - CMake:一款外部构建工具,可与原创 2017-01-12 15:07:34 · 843 阅读 · 0 评论 -
Android用户界面设计
Android用户界面设计 用户界面设计是Android应用开发的一项重要内容。在进行开发的过程中,我们需要了解UI元素如何呈现给用户,也就是如何控制UI界面。andorid提供了4种控制UI的方法。一、控制UI布局使用xml布局文件来控制UI使用JAVA代码来控制UI使用xml布局与JAVA代码来控制UI使用自定义View来控制UI具体的东西我们需要简单讲解:1.如何使用xml布局原创 2017-01-10 11:20:20 · 18466 阅读 · 2 评论 -
android 5.0 抛弃 httpclient 解决方法
在API 23中,Google已经移除了移除了Apache HttpClient相关的类 。谷歌推荐使用HttpUrlConnection,如果要继续使用需要Apache HttpClient,有两种方法。Eclipse下libs里添加org.apache.http.legacy.jar,Android studio里在相应的module下的build.gradle中加入即可。 andro原创 2016-12-20 11:47:54 · 5709 阅读 · 0 评论 -
android H5 应用内跳转Scheme协议
直接进入主题想必大家在开发项目的过程中,都会遇到android与H5界面的交互。并且还有H5界面 跳转到APP内部的功能需要,同志们可能就会想,我们要用什么方法来做。那么接下来我们直接开撸,今天要讲解的应用内跳转Scheme协议什么是URL Scheme 概述: android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转ap原创 2016-12-30 12:33:19 · 14716 阅读 · 4 评论 -
RxJava的简单使用(一)
1.RxJava的介绍 主要特点有: 易于并发从而更好的利用服务器的能力。 易于有条件的异步执行。 一种更好的方式来避免回调地狱。 一种响应式方式。 2.RxJava的与众不同 有三个重要的功能:生产者在没有更多的数据可用时能够发出信号通知:onCompleted()事件。生产者在发生错误时能够发出信号通知:onError()事件。RxJava Obse原创 2017-06-28 10:45:01 · 1621 阅读 · 0 评论 -
Android遇到的问题,解决方法和一些小技巧
1. 动态修改Shape的solid属性的color值平常我们在xml中经常会用到Shape,开发中可能要公用同一个Shape,但是颜色背景颜色又不一样,//比如:<shape xmlns:android="http://schemas.android.com/apk/res/android"> &a原创 2017-01-05 13:58:38 · 41247 阅读 · 0 评论 -
.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1
.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ 像这种低级错误,我今天找了半个多小时。1.首先第一步,检查你联网的URL是否正确。 2.第二步,检查你写的模型是否正确。我今天就是 URL地址由于复制搞错。 所以,复制的时候一定要小原创 2016-06-08 17:14:27 · 16144 阅读 · 8 评论 -
Android微信第三方登录
1.创建应用2.进入应用详情,填写应用的签名与包名注意:1.应用签名需要通过下载APK,进行生成https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android2.apk填写应用相关的包名,得到相关签名2.这里必须要填写,否则导致后期调用接口出错。3.回到应用进...原创 2019-08-22 16:44:00 · 1056 阅读 · 0 评论 -
Android第三方QQ登录,实用教程
1.登录账号,创建应用,生成APPID与APPKEY2.下载相关SDKSDK下载地址:https://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD3.将其SDK里面相关的文件拷到自己的项目当中去需要将 open_sdk_r6137_lite.jar包放到自己的项目当中去,并引用Androidminfist.xml里面...原创 2019-08-23 16:35:34 · 1310 阅读 · 0 评论 -
Retroft 源码——请求接口流程
Retrofit使用教程地址 http://square.github.io/retrofit/源码版本com.squareup.retrofit2:retrofit:2.5.0有时候看源码,似懂非懂的感觉。着实让人迷惑不堪,所以这次直接针对源码进行阅读,调试。看看retrofit是执行流程。第一步,创建Retrofit对象,通过创建者模式配置Retrofit里面的一些参数(具体参数可...原创 2018-12-18 15:53:14 · 367 阅读 · 0 评论 -
Kotlin之集合类型使用——笔记
1.有序可重复–Array数组数组从(索引)0开始,以此类推到N。最常使用的集合类型Array的特点是,大小固定不可变,并且其中元素的类型不可变。 val nollstations = arrayOf( "嘉定北", "徐家汇", "商翔", "桃浦新村", "徐家汇", &q原创 2018-12-06 17:04:00 · 514 阅读 · 0 评论 -
HTTPS笔记
1.HTTPS概述 HTTPS就是在安全的传输层上发送HTTP。HTTP在安全层进行加密之后的报文发送到TCP,并通过网络进行传输。 HTTP安全层是通过SSL及其现代替协议TLS来实现的。2.HTTPS方案 如果URL是http,客户端就会打开一条到服务器端口80(默认情况下)的连接,并向其发送老的HTTP命令。 如果是https,客户端就会打开一条服务器端口到443的链接,原创 2017-11-14 14:44:53 · 427 阅读 · 0 评论 -
Android长截图与长图分享
1.第一步如何实现长截图Android长截屏– ScrollView,ListView及RecyclerView截屏 这个链接地址写的很清楚了,建议进行实际操作。概述:其实长截图就是将布局存成图像,由于Android中的所有可视组件都是绘制在屏幕上的,因此,Android SDK提供了API允许直接将可视组件绘制在Bitmap对象上。涉及到的有两个 //打开图像缓存view.setDrawin原创 2017-11-10 12:05:39 · 6123 阅读 · 1 评论 -
CountDownTimer空指针(NULL)与Cancel无效的问题
1.先看源码API=20 的CountDownTimer源码/* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in com原创 2016-12-28 11:31:12 · 2609 阅读 · 2 评论 -
This version of Android Studio is incompatible with the Gradle Plugin used.
今天因为该问题导致,我花费了一天的时间。不过也因此学到了东西,不怕问题,没有解决不了的问题。找准问题所在,一定能解决。 我们直接进去正题, 英文:This version of Android Studio is incompatible with the Gradle Plugin used. Try disabling Instant Run (or updating either the原创 2017-01-03 17:26:59 · 2296 阅读 · 0 评论 -
《第一行代码》3.2View测量 笔记
1.View测量 如果我们要想绘制一个图形,首先我们要知道这个图形的大小;再是这个图形具体在什么位置;最后将图形绘制出来。 onMeasure() 如果我们想知道这个图形的大小,必须通过onMeasure()方法来发帮助我们测量View,MeasureSpec是以个32位的int值,其中高2位为测量模式,低30为测量的大小,在计算中使用位运算原因是为了提高并优化效率。 测量的模式原创 2016-07-19 16:10:25 · 652 阅读 · 0 评论 -
安卓Activity之生命周期
看了Scott的博客,不如自己去动手。这样印象更加深刻。方便以后更加灵活的运用。启动Activity,首先运行 onCreate,再调用onStart,最后调用onResume方法。当前Activity跳转到另一个活动或者锁屏,覆盖当前Activity,首先调用 onPause 暂停,再调用onStop 停止,进入停滞状态。从另一个活动,返回到Activity,首先系统会调用onRestar原创 2016-06-20 13:54:17 · 472 阅读 · 0 评论 -
安卓Activity之四大启动模式
Activity四大启动模式转载《android第一行代码》 2.5章节。 具体内容,请参照书中内容 启动模式一共有四种,分别是 standard,singleTop,singleTask 和singleInstance,可以在AndroidManifest.xml中通过给标签指定android:launchMode属性来选择启动模式。1. standard该启动模式为默认的启动模式,在未原创 2016-06-15 10:40:10 · 677 阅读 · 0 评论 -
方法onActivityResult,返回数据给上一个活动(Activity)
Activity中有一个startActivityForResult()方法也是用于启动活动(Activity)的,但这个方法期望在活动销毁的时候能够返回一个结果给上一个活动。 startActivityForResult()方法接收两个参数,第一个参数是Intent,第二个参数是请求码requestCode,用于在之后的回调中判断数据的来源。比如 A 活动(Activity)里面其中一个按钮bt转载 2016-06-14 11:17:41 · 6173 阅读 · 0 评论 -
MVC和MVP的介绍
转载:http://www.raye.wang/2016/06/09/android-appjia-gou-xin-de/MVCmvc是以XML为V(视图)层,以Activity和Fragment为C(控制)层,bean数据实体为M(模型)层的一种模式来编写代码。但是因为XML的局限性,所以我们需要对V(视图)层进行操作,所以这也就是为什么那么多人抵制MVC的原因,因为这也算不上完整的MVC优点:开转载 2016-06-13 09:35:04 · 992 阅读 · 0 评论 -
Unable to create converter for class`
测试的时候出了问题。 java.lang.IllegalArgumentException: Unable to create converter for class` 最后查看代码少了一句话而已。真是闹心啊。Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://apis.baidu.com/ac原创 2016-06-08 14:43:46 · 17757 阅读 · 5 评论 -
This warning can be disabled by using the command line flag -Dcom.android.build.gradle.overridePath
Error:(1, 0) Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See http://b.android.com/957原创 2016-04-21 21:49:11 · 4266 阅读 · 0 评论 -
CardView,android代码设置颜色没效果,解决
<android.support.v7.widget.CardView xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/status_cardview" android:layout_width="wrap_content" android原创 2016-04-21 18:14:21 · 24071 阅读 · 1 评论 -
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.proces原创 2016-04-29 16:01:31 · 915 阅读 · 0 评论 -
android 代码TextVeiw 尾部添加图片
这个有一个缺陷,就是当文本换行了之后,图片并没有跟在文字后面。 若想要让图片跟在文字后面请猛戳链接 http://blog.csdn.net/u013290250/article/details/50800815?ticket=ST-73855-V0oYS0mm7tAvB73Tp7Ue-passport.csdn.net//这一句获取图片资源Drawable drawable = contex原创 2016-03-21 17:11:18 · 887 阅读 · 0 评论 -
android apk反编译 查看源码
首先请下载所需要使用的工具包。 工具包有这三个工具: 工具介绍:apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件)jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件接下来我们直接进入正题。一、我们解压apktool工具包,可以看到这三原创 2016-08-16 11:58:32 · 4749 阅读 · 2 评论 -
Android消息机制概述 Handler
Android消息机制概述 Android 的消息机制主要是指 Handler 的运行机制, Handler 的运行需要MessageQueue 和 Looper 来支撑。MessageQueue是消息队列,就是内部存储了一组消息,以队列的形式对外提供插入和删除的工作。是采用单链表的数据结构来存储消息列表。Looper是消息循环,由于MessageQueue不能处理消息,然而Looper弥翻译 2016-08-30 09:14:56 · 842 阅读 · 0 评论 -
Android studio 配置 lambda 和 dataBinding
在build.gradle(Module:app)文件里配置 apply plugin: ‘me.tatarka.retrolambda’ android{ compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion原创 2016-09-06 16:05:22 · 1641 阅读 · 0 评论 -
Glide简单使用(四)
1.用Modules()定制Glide 概述:Glide module是一个抽象方法,可以全局改变Glide行为的一个方式, 如果需要访问GlideBuider,需要创建Glide实例,定制Glide,需要实现一个GlideModule接口的公共类。public class SimpleGlideModule implements GlideModule { @Override原创 2016-12-27 14:24:15 · 1491 阅读 · 1 评论