- 博客(135)
- 收藏
- 关注
原创 移动应用间跳转的方法
移动应用间跳转,可通过scheme的方式进行1、URL Scheme概念 URL Scheme 就是一个可以让 app 相互之间可以跳转的协议。每个 app 的 URL Scheme 都是不一样的,如果存在一样的 URL Scheme,那么系统就会响应先安装那个 app 的 URL Scheme,因为后安装的 app 的 URL Scheme 被覆盖掉了,是不能被调用的。 运用URL : 统一资源定位符 scheme协议头(必须):决定查找应用的方式, 如http...
2021-02-04 16:08:33 1417
原创 HTTP协议的Content-Encoding属性
Content-Encoding是HTTP协议的响应报文头,一般形式如:Content-Encoding:gzip,deflate,compressContent-Encoding在说明中指出deflate指的是在RFC1950说明的zlib格式,也就是说当Content-Encoding为deflate时,内容应该为zlib格式。compress据说chrome浏览器支持,但还没见到哪个web服务器支持gzip,deflate,zlib的关系:deflate(RFC1951):一种压缩算法,使
2021-01-25 14:41:00 2105
转载 JavaScript判断字符是否为空的方法
具体方法://判断字符是否为空的方法function isEmpty(obj){ if(typeof obj == "undefined" || obj == null || obj == ""){ return true; }else{ return false; }} ...
2020-01-03 16:18:44 299
原创 利用JavaScript控制HTML元素的显示和隐藏
第一种方法:这种方法控件隐藏后,还会有空白占用原来的位置。// 隐藏document.getElementById("id").style.visibility="hidden";// 显示document.getElementById("id").style.visibility="visible";第二种方法:这种方法控件隐藏后,不会有空白占用原来的位置。/...
2020-01-03 15:47:47 530
原创 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/util/ByteArrayBuffer 解决方法
错误原因是找不到org.apache.http.util.ByteArrayBuffer的类。解决方法为在AndroidManifest.xml的<application>中加入以下代码:<uses-library android:name="org.apache.http.legacy" android:required="false"/>原因可参考之前的...
2020-01-03 15:31:53 1968
原创 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android 解决方法
在ndk版本升级之后,项目编译出现了问题,提示没有对应的编译工具链,目前最多的做法是,下载之前的ndk版本,然后再拷贝缺少的部分。这种做法确实可以解决问题,但是既然新版的ndk删掉了这些库,肯定是有他自己的理由,所以建议还是在新版本ndk不改动的基础上解决No toolchains found in the NDK toolchains folder for ABI with prefix: ...
2019-05-15 09:23:28 423
原创 gradle打包aar去除引用的jar文件
在写libs module的时候,打包的arr的realese版本是包含libs目录下的文件,这时候你引入这个aar,可能会和你现有引入的jar文件冲突,在打包aar的时候可以设置不引入libs文件lib module的gradle文件里面应该有下面这样一段dependencies { compile fileTree(include: ['*.jar'],dir:'libs...
2019-03-01 17:33:08 3020
原创 calling startactivity() from outside of an activity context requires the flag_activity_new_task flag
问题:Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires theFLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?原因:使用applica...
2019-03-01 17:07:23 772
原创 获取Android签名打包keystore或者.jks文件的MD5
Android开发,经常会调用第三方,例如在申请第三方的时候,经常会用到MD5等信息,下面是从一个签名打包的key文件里面去获取这些信息。打开cmd或终端,找到对应的key签名文件,然后输入keytool -v -list -keystore xxx.jks,keytool -v -list -keystore xxx.keystore或回车,还会让你输入key的密码,其中xxx.jks或xx...
2019-03-01 16:59:33 1654 1
原创 Android 9.0/P 版本推荐使用HttpURLConnection
早在几年前,谷歌就推荐在Android2.3版本以上使用HttpURLConnection,而在正式发布的 Android P 版本中,谷歌彻底取消了对Apache HTTPClient的支持,针对此更改,开发者该如何正确适配 Android P 。Android 6.0 版本移除了对Apache HTTP客户端的支持。如果你的应用使用该客户端,并以 Android 2.3(API 级别为9)...
2019-02-21 16:48:10 1045
原创 Layout的setWeightSum函数使用方法
问题:在xml里面设置控件的android:layout_weight="1",LinearLayout的setWeightSum函数,参数设置为1,但是效果没有出来。解决方法1:setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1));1就是weight解决...
2019-02-21 16:17:42 1886
原创 Multiple dex files define Lcom/xxx/xxx/BuildConfig 报错解决方法
编译的时候会报这个问题。有可能是jar包、aar包或者依赖冲突了。 解决方法是:如果是多module的模式。当其中有一个module的manifest 中的package,和另外一个module的重复了。所以产生了两个相同的BuildConfig文件。例如:test module里的Android Manifest<manifest xmlns:androi...
2019-02-21 16:08:28 5156 1
原创 Android 7.0设置MODE_WORLD_READABLE出现异常解决方法
Android 7.0给SharedPreferences设置Context.MODE_WORLD_READABLE或Context.MODE_WORLD_WRITEABLE,会触发SecurityException。官方文档:Starting from N(N is for Nougat), attempting to use this mode will throw a Security...
2019-02-21 16:00:37 7225 1
原创 Android No slave process to process jobs, aborting 解决方法
当项目编译时,遇到这个报错:No slave process to process jobs, aborting只要重新启动Android Studio就能正常运行了。
2019-02-01 16:46:09 539
原创 Android处理guava-21.0不兼容错误:DexArchiveBuilderException: Failed to process guava-21.0.jar
在Android项目里使用guava-21.0报错:Error:com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\cc\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\21.0\3a3d111be1be1b745e...
2019-01-31 11:08:43 1093
转载 Android Manifest merger failed with multiple errors, see logs 报错解决方法
第一个问题:aar包和常用的jar包区别两者区别:*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。*.aar:包含所有资源,class以及res资源文件全部包含所以这就会导致出现的一个问题Manifest merger failed with multiple errors, see logs这是由于aar包中的清单文件等资源文件互相之间冲突。...
2019-01-31 11:04:58 2126 1
原创 AndroidStudio Duplicate files copied in APK META-INF/notice.txt 报错
Android Studio 如果遇到类似以下报错Error:Execution failed for task ':app:packageDebug'. Duplicate files copied in APK META-INF/notice.txt可以在build.gradle加入如下代码packagingOptions { exclude 'META-INF/...
2019-01-31 11:01:20 218
原创 ' ' is not a valid resource name character 报错解决方法
在gradle报错中没提示哪行代码出问题,甚至文件都没有指明。最后用AS的功能Inspect Code:res->Analyze->Inspect Code执行完后,可以在分析结果看到是哪个文件的哪行代码有问题。双击进入文件,进行修改,搞定。 ...
2019-01-30 17:00:30 5964 1
原创 ADB server didn't ACK的解决办法
国外有大神已经总结得比较全面Try below steps:Close the Eclipse if running Go to the Android SDK tools directory in Command Prompt type adb kill-server then type adb start-server No error message is thrown wh...
2019-01-30 15:33:49 497
转载 AsyncTask的用法
在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则: 1. 不要阻塞UI线程 2. 确保只在UI线程中访问Android UI工具包 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如...
2019-01-30 15:26:36 606
转载 Android Monkey黑盒测试
一、Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。 二、Monkey程序介绍1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework...
2019-01-30 15:11:49 486
原创 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES错误解决方法
adb is running normally. Performing com.xxx.xxx activity launch Automatic Target Mode: using device 'XXXX' Uploading XXX.apk onto device 'XXXX' Installing XXX.apk... Application already exis...
2019-01-30 15:02:40 557
原创 更改Android AVD模拟器创建路径位置的方法
Android AVD模拟器默认路径为c:\user\用户名\.android\avd,欲将其移植到d盘下,方法为:建立文件夹在D盘下建立Android_sdk_home文件夹,在其下建立.android子文件夹(注意前面有个点,如果系统提示请输入文件名,则将原路径下的文件夹拷贝过来即可),再在.android下建立avd文件夹,即建立了D:\Android_sdk_home\.andro...
2019-01-30 14:57:40 4644 3
原创 Android模拟器访问本地Web应用
如何在Android模拟器上访问本地的Web应用? 例如,在你的开发机器上启动一个Tomcat服务,接着打开电脑上的浏览器,默认情况下输入http://localhost:8080/就能够访问到Tomcat的主页面;那么,如果我们想在Android模拟器上来访问,可以吗?答案是肯定的,但是访问的URL会有所变化,这又是为什么呢?请继续往下看。 在一般的Java Web程序开发中,...
2019-01-30 14:52:03 1511
原创 浅谈Android的selector背景选择器
关于Listview和Button都要改变Android原来控件的背景,现在谈一下Android的selector的用法。首先Android的selector是在drawable/xxx.xml中配置的。先看一下listview中的状态:把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的...
2019-01-28 16:33:50 391
原创 Android获取SD卡视频音频文件
获取视频文件: ContentResolver contentResolver = mContext.getContentResolver(); String[] projection = new String[]{MediaStore.Video.Media.TITLE}; Cursor cursor = contentResolver.query(Medi...
2019-01-28 16:02:50 2879 1
原创 在managedQuery()和getContentResolver().query()方法中实现结果去重
有时候,我们需要对查询的数据库结果进行去重。在SQL中我们可以通过distinct关键字实现,但是当我们使用android提供的managedQuery()或getContentResolver().query()方法对数据库进行查询时,并不能使用distinct关键字。首先,让我们来了解一下android中query方法吧。当我们调用android系统的query操作的时候,androi...
2019-01-28 15:10:16 1142
原创 Android布局中设置android:gravity和android:layout_gravity属性
LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。 他们的区别在于: android:gravity属性是对该View中内容的限定。比如一个button 上面的text,你可以设置该text相对于View的靠左,靠右等位置。 android:layout_gravity是用来设置该view相对与父...
2019-01-28 15:06:30 751
原创 下拉框spinner获取选中值的几种方法
spinner绑定的值一般分3种形式存放: 1、存放在java页面的数组中:{"湖北","武汉","荆州"} 2、存放在strings.xml文件中 3、存放在数据库中,调用接口获得 1、2是在一般的页面中比较常用,这样你的页面看起来不会很乱。 3是需要调用接口,这里暂时不说。 下面就来对前两种方式的取值,进行说明。 1、若存放...
2019-01-28 14:50:35 5547
原创 Android实现ListView异步加载图片
ListView异步加载图片是非常实用的方法,凡是是要通过网络获取图片资源一般使用这种方法比较好,用户体验好import java.io.IOException; import java.io.InputStream; import java.lang.ref.SoftReference; import java.net.MalformedURLException; ...
2019-01-25 18:06:06 170
转载 如何为你的Android应用缩放图片
为了避免最常见的图片缩放问题。如下面的例子:Bitmap unscaledBitmap = BitmapFactory.decodeResource(getResources(), mSourceId);Bitmap scaledBitmap = Bitmap.createScaledBitmap(unscaledBitmap, wantedWidth, wantedHeight, tru...
2019-01-25 17:41:56 222
原创 Drawable转换为Bitmap两种方法
如果通过网络加载了一张位图,想拿到这张位图的Bitmap,有两种办法:1,根据已有的Drawable创建一个新的Bitmap:private Bitmap bitmap;private void drawableToBitamp(Drawable drawable) { int w = drawable.getIntrinsicWidth(); ...
2019-01-25 17:35:08 7785 4
原创 ListView.setOnItemClickListener无效
如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效,事件会被子View捕获到,ListView无法捕获处理该事件.解决方法:在checkbox、button对应的view处加android:focusable="false" android:clickable="...
2019-01-25 17:24:13 356 1
原创 Android的OnTouchListener、OnClickListener等事件响应
给listview添加onItemClickListener、onItemLongClickListener、onTouchEvent三种事件的时候,只执行了onTouchEvent事件,而其他的两个事件未执行。解决办法:在对应的onTouchEvent的action里面设置return false;当执行到该action的时候就会返回false,前两个事件就会执行了。 Andr...
2019-01-25 17:15:17 1393
原创 关于Android应用程序的入口
Android应用程序,由一到多个Activity组成。每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如android提供的发短信或者打电话的Activity. Intent call = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+p...
2019-01-24 17:33:04 2842
原创 Android中的ellipsize
textview中内容过长的话自动换行,但是调用measureText函数时发现返回值很不准确,单位也不确定,是pixel还是dip,都不准。textview中有个内容过长加省略号的属性,即ellipsize,可以较偷懒地解决这个问题。用法如下:在xml中android:ellipsize = "end" 省略号在结尾android:ellipsize = "start" 省...
2019-01-24 17:13:45 582
原创 Android中两种设置全屏的方法
在开发中我们经常需要把我们的应用设置为全屏,这里我所知道的有俩中方法,一中是在代码中设置,另一种方法是在配置文件里改。一、在代码中设置: import android.app.Activity; import android.os.Bundle; import android.view.Window; import an...
2019-01-24 16:57:30 1315
原创 JAVA参数传递
先看基本类型作为参数传递的例子:public class Test1 { public static void main(String[] args) { int n = 3; System.out.println("Before change, n = " + n); changeData(n); Syst...
2019-01-24 11:43:31 193
原创 JAVA实现把网页的图片下载下来
在Java下抓取网页上的图片并保存到本地文件夹中技术实现:import java.net.URL;import java.net.MalformedURLException;import java.io.IOException;import java.io.FileNotFoundException;import java.io.BufferedInputStream;...
2019-01-24 11:28:03 4758 1
原创 JAVA字符串转日期或日期转字符串
用的API是SimpleDateFormat,它是属于java.text.SimpleDateFormat,用法: SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );PS:为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小时制,而hh是12小时制。1...
2019-01-24 11:24:32 10397
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人