自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (4)
  • 收藏
  • 关注

原创 flutter 开发中的问题与技巧

刚开始上手 flutter 开发的时候,总会遇到这样那样的小问题,而官方文档又没有明确说明不能这样使用,本文总结了一些开发中经常会遇到的一些问题和一些开发小技巧。

2023-10-13 15:20:24 913

原创 Flutter开发之Package与Plugin

在flutter中有包和插件两个概念,插件 (plugin) 是 package 的一种,全称是 plugin package,我们简称为 plugin,中文叫插件。包(Package)主要指对flutter相关功能的封装,类似于Android中的插件和iOS中的三方库。而插件(Plugin)主要指通过插件调用原生的功能

2023-09-27 16:24:42 2137

原创 详解flutter刷新流程,让你的应用更流畅

Flutter是谷歌推出的高性能、跨端UI框架,可以通过一套代码,支持iOSAndroid等多个平台,且能达到原生性能。Flutter也可以与平台原生代码进行混合开发,其更新迭代速度很快,技术发展也日趋成熟,如今已经有很多公司在使用这种新跨端技术。我们知道在flutter中可以使用setState()来刷新的UI,这会遍历调用子Widget的build()重构视图。当一个页面内容比较复杂时,会包含多个widget,如果直接调用根组件的setState(),会遍历所有子Widget的build()

2023-05-21 15:21:08 1671

原创 Android gradle执行顺序问题

在Android开发中,你有没有这样一个疑问,一个Android工程,现在有settings.gradle、app下的build.gradle、project下的build.gradle,甚至还有我们自己自定义的一些gradle,这些gradle的执行顺序是怎样的呢? 最近在优化项目中的配置文件,由于三方SDK的配置文件是个.config后缀的文件,为了能够在多个环境中自由切换配置文件,我打算通过gradle脚本的方式来实现,免得手动往项目中丢文件,效率低下,还容易出错。这...

2021-08-12 11:39:18 1159

原创 Android自动打包Jenkins中NDK cmake配置问题

2020这一年转眼过去了,很久时间没有写博文了,一个是过去的这一年相对较忙,有3个APP并行开发并且还有一些SDK要开发,再一个就是懒,于是乎拖着拖着就拖到了现在。现在年末了,稍微闲了下来了就想着把之前一直需要升级因为赶项目怕升级遇到坑耽误时间而没升级的,该升级的升级一下,于是就遇到了接下来的问题:升级的内容:AndroidStudio从3.6.2升级到4.1.2 将项目Android Gradle plugin从3.6.2升级到4.1.2 项目Gradle从5.6.4升级到6.5 项目ta.

2021-02-03 16:35:25 1159 2

原创 android jni动态注册

题外话 转眼间2019年也已经接近尾声了,回顾这一年也发生了很多事,换工作、搬家、赶项目、学习新技术等等很多事,忙碌的一年,博客也被放下了,真的是越来越懒了,每次都有一万个不写博客的理由,之前每年至少还要更新几篇文章,然而今年一篇文章也没写,趁着这个周末没事情,抓住2019年的小尾巴,把自己一直想写的文章写了,于是就有了今天这篇文章。jni简介JNI是Jav...

2019-12-28 20:30:28 444

原创 关于Retrofit 2.0使用中遇到的问题

一、说明本文主要是记录了在使用retrofit 2.0+的版本中遇到的问题,以免后面忘记了,也给遇到同样问题的兄弟提个醒,避免入坑,后续有问题会持续更新二、问题描述因为对retrofit结合rxjava做了封装,然后也没有打印返回error信息,导致一个很诡异的问题就是请求一个接口一直没有任何反应,日志也没显示异常,找了一下午没找到原因,而且发现同一个接口不同地方调用,请求参数不同,有...

2018-11-13 18:59:45 2856

原创 超详细的安卓ndk编译的两种方式(ndk-build和cmake)

一、概述        搞安卓的工作中难免需要使用native的方法,高效,安全。。。优点就不说了。以前使用到native方法的时候,都是临时抓起来一种方式就用了,也没详细整理两种方式的差别和详细的使用方式,虽然不复杂,但是中间还是有很多小细节需要注意的。虽然ndk-build的方式谷歌官方已经不支持使用了,新版的studio和ndk中工具中已经将其移除了,但是还是有必要了解怎么使用的,以备不...

2018-10-18 18:41:51 11833 1

原创 安卓文件操作api与路径对应关系整理

一、简述 apk中有两种资源文件,raw下的和assert下的,这些数据只能读取,不能写入,两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。需要注意的是两种资源文件中单个文件大小不能超过1M (Android2.3之前,目前貌似没有这个限制了)。res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文...

2018-09-25 18:33:22 1474

原创 安卓开发中学习使用ndk开发jni注意事项

最近在学习使用安卓的ndk开发遇到了一些问题,在这里记录下,免得再次踩坑,虽然谷歌官方推荐使用CMake编译,ndk即将废弃,但是依旧还是有很多人在使用ndk编译的,两种方式差别主要在于编译方式上,其他的大体相同,本着学习的态度,学习从ndk开始也是很有必要的,循序渐进,下面开始:环境:电脑系统 win7旗舰版   安卓工具 Androidstudio2.3.11.首先是环境的配置,n

2017-08-13 17:47:51 1057

原创 一条广播onReceive方法多次执行

在最近的项目中用到了极光推送,集成进去后,发送自定义消息,接收到自定义消息后,通过广播的形式将消息发送出去,自定义消息自然需要用到自定义的receiver,自定义完成receiver后,运行项目发现一条广播发送后,onReceive()方法竟然执行了多次,尤其是在将消息发送到BaseActivity时,更奇怪的事情发生了,打开了几个activity,onReceive()方法就会执行几次,可是极光

2017-03-13 18:38:43 6636 1

原创 安卓中原生与H5(webview)之间交互时cookie的同步

一、问题描述最近的项目中使用了H5页面和原生之间的交互,主要是原生通过js调用webview来加载H5页面,但是在进行通信时,涉及到一个cookie同步的问题,如果没处理好,真的是问题多多,纠结了好久,遇到了不少坑,今天在这里记录下:首先是在网上找到很多地方都有的通用的webview同步cookie的方法如下: SharedPreferences spf = getSharedPre...

2017-02-17 11:54:25 21295 11

转载 Android自定义动画类——实现3D旋转动画

Android中的补间动画分为下面几种:(1)AlphaAnimation :透明度改变的动画。(2)ScaleAnimation:大小缩放的动画。(3)TranslateAnimation:位移变化的动画。(4)RotateAnimation:旋转动画。然而在实际项目中透明度、缩放、位移、旋转这几种动画并不能满足我们的需求,比如我们需要一个类似下面的3D旋转动画。

2016-08-16 10:52:48 659

原创 在Android中调用浏览器打开网页方式

在安卓代码中我们有时需要调用浏览器来打开相应的网页,此时可以有以下几种实现方式:一、调用浏览器实现调用默认浏览器 1 2 3 4 5 Intent intent = new Intent();         //Intent intent = new Intent(Intent.ACTION_VIEW,uri);...

2016-08-11 17:11:58 32726

原创 android中String与InputStream之间的相互转换方式

在android中我们涉及到网络访问以及文件访问时,难免需要写String与InputStream之间的相互转换的相关代码,这里我写了几种方式供参考,主体有两种实现形式:一:纯手戳代码:1.String to InputStreamString str = "String与InputStream相互转换";InputStream   in_nocode   =   new  

2016-08-07 11:52:21 11149

原创 android中通过添加view使用ViewPager出现的问题及解决方法

最近写了一个小程序,在android中通过添加ImageView使用ViewPager实现几个界面的切换,当滑动到最后一个页面时继续向后滑动的时候程序崩溃了,出现了一个异常,异常详细信息如下:08-06 04:54:57.704: E/AndroidRuntime(2429): FATAL EXCEPTION: main08-06 04:54:57.704: E/AndroidRuntim

2016-08-06 17:17:58 2582

原创 使用Volley框架发起网络访问的写法

Volley的使用步骤:step 1: 创建一个请求队列step 2: 创建请求对象     1)获得字符串类型的内容使用  StringRequest         2) 获得图片类型的内容使用 ImageRequestImageRequest需要6个参数,分别是:        i.要加载的图像路径        ii.加载图片成功后的监听器。在图像获取完毕后,v

2016-08-04 10:52:55 596

原创 Android中常用的两种动画写法

在Android中常用的两种动画,一种是补间动画(Tween Animation),另一种是帧动画(Frame Animation)。用一张图片实现的是补间动画;定义给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变是帧动画,一般两种动画的写法如下:一、补间动画(Tween Animation)主要分为: 渐变alpha旋转rotate平移tran

2016-08-03 23:04:14 882

原创 与Service交互的三种方式

一般与Service交互有以下三种方式:1)start的方式与Service交互Activity是不能很直接的与Service进行交互,需要借助于其它组件来完成。常见的就是利用广播接收器。Service发送广播,Activity接收广播2)bind的方式与Service交互需要在Service中准备一个IBinder接口的实现类。将该实现类的对象作为on

2016-08-03 20:25:27 737

原创 Android中的SpannableString以及Pattern/Matcher的使用

在Android中有一个类叫做SpannableString,它具有很强大的替换功能,可以设置各种Span的字符串,比如常用的可以将TextView、EditText等中的文本替换为相应的图片、表情等显示出来。他自身还有很多属性可以进行相应的设置修改,比较灵活。这里介绍他的几个常用属性,以及使用方式。//设置前景色ForegroundColorSpan(Color.GREEN)//

2016-06-21 09:59:46 1407

原创 Android中发起网络访问的方式,以及Json、Gson的网络解析

什么是JSON ?JSON是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,易于人阅读和编写,同时也易于机器解析和生成(数据量相对较少,网络传输速度相对较快)。JSON语法:JSON语法有JSONObject与JSONArray之分JSONArray(用于描述JSON数组):--【JSONArray用于以JSON的格式描述数组数据】--【JSONArray也有下

2016-06-19 18:59:53 1009

原创 如何在BaseFragment中直接调用BaseActivity中相关属性代码的问题

通常我们要写多个Activity时,很多属性是相同的,为了减少代码量,我们通常写一个BaseActivity来继承自Activity,再让其他的新创建的Activity继承自BaseActivity即可,一般BaseActivity可以这样写,都是套路性的东西,记住怎么写就可以了,实例如下:package com.example.catmessage.ui;import android

2016-06-13 12:49:28 1779

原创 安卓中自定义view控件代替radiogroup实现颜色渐变效果的写法

利用自定义控件代替radiogroup,同时实现在使用viewpager进行翻页的时候,实现颜色渐变的效果。一:首先创建一个自定义view类继承自View类,所有的控件均用canvas绘制出来(包括图片及文字),这里以MyTabIcon这个类为例,相关代码如下:package com.example.catmessage.view;import android.conten

2016-06-12 17:45:59 953

原创 安卓通过jar包使用butterKnife以及拍照相关Intent学习

一:butterknife的引入及使用annotation(注解)简介注解是JDK5.0开始的新增特性。为代码添加一句特殊的"说明",添加了注解的代码会引起编译器的“格外重视”系统提供了一些注解@Override @Deprecated我们也可以写自己的自定义注解,步骤如下:step 1 创建注解类。step 2 在注解类中,声明注解类需要的信息       这些信息以方法的...

2016-06-04 15:09:56 1174

原创 安卓中引入第三方汉字转拼音架包的写法及注意事项

在安卓APP编写中经常需要对获取的数据进行排序显示,这就需要我们在获取到数据源后,对数据源进行处理。由于中文不能直接排序,需要借助汉语拼音,于是就有了引入第三方的架包,极大的方便了我们对数据的转换,下面来介绍下应该怎么运用,以及注意事项。1.将第三方架包下载后导入到我们的项目中lib下,这里我使用的是Eclipse,用安卓studio的方法类似。2.在代码中的实现,事例如下:publi

2016-05-30 22:32:59 1046

原创 Android中的小组件(widget)的写法

在安卓中完成一个小组件一般分为以下几步来写:1)写布局文件在res下为widget写一个布局文件,此布局文件与一般的布局文件无区别,但需要注意以下几点:对于widget的布局文件有限制!不是所有的组件都能够使用的。   容器类视图目前只支持四种:LinearLayout,RelativeLayout,FrameLayout,GridLayout容器类目前支持的视图组件:An

2016-05-20 20:54:28 1641

原创 Android中的图片压缩

Android中经常需要对图片进行压缩处理后存取,因为移动设备不仅内存有限,有很多图片需要从网络加载,会消耗用户大量的流量,造成大量的流量费用,压缩图片的处理则可以很好的解决了这个问题,一般压缩图片的写法如下:根据要显示的ImageView的大小对图像进行压缩* @param is 图像源* @param iv 要显示图像的ImageView* @return 压缩过后的图像

2016-05-19 20:06:28 392

原创 将url或者字符串转换成MD5格式(md5加密算法)的写法

通常在Android中,我们会将URL地址处理为MD5格式,不仅仅是为了安全考虑,而且存储方便,不会因为编码方式的差异而出现存取时的乱码现象。例如将一个字符串类型的url转换为MD5格式,一般转换的写法如下:private static String getMD5(String url) {String result="";try {MessageDigest md=Message

2016-05-19 19:41:57 8075

原创 Android中自定义控件的写法

一:自定义控件假如我们在写一个程序时,需要圆形的头像,而原有图片是方形的,此时我们一般有两种方式可以将方形头像处理为圆形显示:第一就是利用画布画笔,采用混合模式中的DST来处理方形头像,将其处理为圆形后再拿到imageview 中显示,一般代码实现如下:private static Bitmap getCircleAvatar(Context context,Bitmap avatar) ...

2016-05-16 12:53:30 2151

原创 Android中发送短信的几种常见写法及注意事项

在Android中常见的发送短信的方式有以下两种:1.利用系统的短信发送程序发送短信这里面又可以分为两种写法:1.1 利用Intent发送一个隐式意图Intent intent = new Intent(Intent.ACTION_SENDTO);Uri data = Uri.parse("smsto:"+ "15555215556");intent.setData(d

2016-05-12 18:39:30 769

原创 在eclipse使用中adb报错出现cannot parse version string:kg01的解决方法

今天在使用Eclipse时,在用虚拟机运行项目时,突然间虚拟机启动报错,报adb启动失败,以及出现cannot parse version string:kg01的错误,翻译过来就是不能够解析adb字符串的版本kg01,在网上搜索的几种解决方案是:1、adb 的path路径不对,就是adb的环境变量添加错误,或者文件改动后路径没有改动;2、防火墙添加了拦截的规则。3.cmd里运

2016-05-11 23:40:32 1378

DynamicJniDemo.zip

Android使用ndk开发调用本地方法,jni调用本地方法动态注册demo,适合初学者学习简单快速上手的jni本地方法动态注册的demo。

2019-12-28

安卓实现动态波浪滚动

安卓通过自定义view实现动态波浪,随着波浪的滚动,水位实现直线下降,波长和振幅可控制,波浪的动态滚动以及水位的动态下降都是由属性动画实现

2018-11-02

Android编译ndk的两种方式

安卓编译ndk的两种方式,ndk-build和cmake,demo中主要针对这两种不同的编译方式做了简单的演示

2018-10-18

安卓aidl学习demo

最简单通俗易懂的安卓aidl学习demo,即使初学者也一眼即可看懂

2018-10-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除