
android进阶之路
文章平均质量分 53
这里记录的是一个普通Android工程师从进阶之路。
我们有一天终会不普通。
SUMMER_L_L
秋水时至,百川灌河。
展开
-
Android进阶---android databinding 使用
1.配置,在 module里面添加android { .... dataBinding { enabled = true }}2.基础使用创建简单的model实体类public class SwordMan{ private String name; private String level;原创 2017-10-10 15:04:24 · 1413 阅读 · 0 评论 -
Android进阶---Android Webview重定向问题解决
项目中需要webview重定向,但是由于一个webveiw里面有许多加载操作,因此在调用webview。goback()方法时,往往达不到我们需要的操作效果。1.解决方法WebBackForwardList webBackForwardList=webview.copyBackForwardList()获取webview加载栈,然后更具加载栈做逻辑操作2.webBackForwardList常用的原创 2017-09-26 18:55:55 · 2459 阅读 · 0 评论 -
python爬数据小试牛刀--beautifulSoup使用
python爬数据小试牛刀–beautifulSoup使用1.环境配置编译环境:python 2.7编译器:pycharmHTML或XML提取工具:beautifulSoup(安装自行百度)2.网站分析网站:斗鱼(http://www.douyu.com)爬取目标:首页的图片步骤一:查看图片信息,鼠标右键图片,选择检查 步骤二:分析发现图片连接都在src下面步骤三:代码编写导入库原创 2017-05-15 23:19:26 · 970 阅读 · 0 评论 -
Android进阶--android自动化测试python+uiautomator
android自动化测试常用的一些API,具体的请参考API导入设备唯一一个设备from uiautomator import device as d导入具体设备from uiautomator import Deviced = Device('014E05DE0F02000E')具体的设备和端口连接from uiautomator import Deviced = Device('014E0原创 2017-08-09 20:54:30 · 2850 阅读 · 0 评论 -
Android studio 使用ndk开发JNI
今天写JNI Demo搞了一天,其中遇到了许多错误,不过一一解决了,下面是我根据网上总结的开发过程:1.在project 下的gradle.properties,里面加上:android.useDeprecatedNdk=true2.在app 的build.gradle的defaultConfig里面加入ndk { moduleName "JniTe原创 2016-10-20 18:02:00 · 497 阅读 · 0 评论 -
eclipse 开发 jni
eclipse 开发 jni昨天用了android studio 开发jni,今天尝试下并总结了eclipse开发jni.第一步 配置ndk http://tools.android-studio.org/ 下载地址 第二步 创建项目,添加支持库 右键项目->android tools ->add native support 然后创建so库名 第三步 你发现多了一个jni文件夹,里面多了两个原创 2016-10-21 10:04:40 · 2017 阅读 · 0 评论 -
Android studio 使用So库
Android studio 使用jni创建so库后,以下步骤轻松使用so库:1.把so文件放到libs目录下2.在module的build.gradle的android里面加入sourceSets{ main{ jniLibs.srcDir(['libs']) }}3.把native类拷贝到src目录下,包括包,如图(别只拷贝类):原创 2016-11-21 19:12:02 · 917 阅读 · 0 评论 -
AndroidHttpCapture---手机轻松抓包工具
AndroidHttpCapture网络诊断工具 是一款针对于移动流量劫持而开发的手机抓包软件 主要功能包括:手机端抓包、PING/DNS/TraceRoute诊断、抓包HAR数据上传分享。你也可以看成是Android版的"Fiddler" \(^o^)/~github地址:androidHttpCapture AndroidHttpCapture网络诊断工具转载 2016-10-27 08:58:48 · 55233 阅读 · 3 评论 -
Android Studio 如何使用Service 的AIDL
Android Studio 如何使用Service 的AIDL我们在eclipse使用aidl后,但是在android studio使用aidl和eclipse还是不同的,但是也比较简单,使用如下:service服务端的创建 第一步创建aidl文件如下图 创建好as自动生成如下的样子 然后我们在aidl文件里写一个方法: 创建完一定重新build原创 2016-07-23 00:18:32 · 701 阅读 · 0 评论 -
Android Studio advanced configuration
本文主要内容来自 Dmytro Danylyk 在 Medium 的文章Configuring Android Studio。在此感谢!虽然使用Android Studio 有一定的时间了,但文中的某几个设置之前还真不知道,且原文在长城外,因此在翻译原文的基础上作了一些补充,若有新的发现会即时更新。当然,原文中个别技巧也谈不上高级,出于对作者的尊重,仍然全部翻译了过来,希望对大家尤其是刚接触转载 2016-04-26 02:02:20 · 672 阅读 · 0 评论 -
Error:Execution failed for task ':app:clean'. > Unable to delete directory: E:\Work\Testjni\app\buil
解决方法一: 进入File> Settings> Build,Execution,Deployment> Instant Run >取消选择(Enable Instant Run to hot swap code)解决方法二: 打开下面的Terminal 输入gradlew clean: 解决方法三: 关掉 Android studio ,原创 2016-10-20 09:30:54 · 2095 阅读 · 0 评论 -
Error: NDK integration is deprecated in the current plugin. Consider trying the new experimental plu
在progect 的gradle.properties文件里面添加android.useDeprecatedNdk=true即可原创 2016-10-20 11:25:04 · 853 阅读 · 0 评论 -
error: Error retrieving parent for item: No resource found that matches the given name 'android:Wind
Error:(33) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'. Error:(4) Error retrieving parent for item: No resource found tha原创 2016-10-31 15:27:47 · 853 阅读 · 0 评论 -
解决Android studio 不能使用ArrayMap
关于ArrayMap的优点,参考下面:Android内存优化:ArrayMapAndroid内存优化(使用SparseArray和ArrayMap代替HashMap)我们导入android studio 时找不到Arraymap ,只需要添加:compile 'com.android.support:support-compat:25.0.0'原创 2016-11-24 10:59:27 · 1691 阅读 · 0 评论 -
解决Android Studio卡顿的问题
有时我们操作后,AS要很久才能反映过来。严重影响开发的心情,做完如下操作,会好很多: (1) Android Studio 2.0 以下: 每次升级/安装 AndroidStudio 之后最好都修改一下这个参数:到 Android Studio 安装目录,找到 bin/studio(64?).vmoptions(文件名可能因操作系统而不同,但大同小原创 2016-11-24 14:16:08 · 3645 阅读 · 0 评论 -
Android开发中常见的5大内存泄漏问题及解决办法
在android开发中,内存泄漏是比较常见的问题,有过一些android编程经历的童鞋应该都遇到过,但为什么会出现内存泄漏呢?内存泄漏又有什么影响呢?在android程序开发中,当一个对象已经不需要再使用了,本该被回收时,而另外一个正在使用的对象持有它的引用从而导致它不能被回收,这就导致本该被回收的对象不能被回收而停留在堆内存中,内存泄漏就产生了。 内存泄漏有什么转载 2016-06-01 17:36:16 · 555 阅读 · 0 评论 -
Android Bitmap inBitmap 图片复用
原文链接:Android Bitmap inBitmap 图片复用?主要就是指的复用内存块,不需要在重新给这个bitmap申请一块新的内存,避免了一次内存的分配和回收,从而改善了运行效率。需要注意的是inBitmap只能在3.0以后使用。2.3上,bitmap的数据是存储在native的内存区域,并不是在Dalvik的内存堆上。使用inBitmap,在4.4之前,只转载 2016-06-01 18:21:21 · 8709 阅读 · 0 评论 -
Android中的动态加载机制
在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势。本文对网上Android动态加载jar的资料进行梳理和实践在这里与大家一起分享,试图改善频繁升级这一弊病。Android应用开发在一般情况下,常规的开发方式和代码架构就能满足我们的普通需求。但是有些转载 2016-06-01 18:59:00 · 678 阅读 · 0 评论 -
Android查看方法耗时利器---TraceView
1.简介Traceview是android平台配备的一个很好的性能分析工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。android开发中可以用来:方法耗时,性能优化2.使用生成.trace文件 在我们需要追踪的代码中,前后输入: Debug.startMethodTracing(“test”);//设置参数为生成的trace文件名 ####CODE原创 2017-08-18 10:27:52 · 6662 阅读 · 0 评论 -
Android抓取优快云首页极客头条内容--网页数据抓取
今天,写了个小代码。抓取首页中的极客头条。效果如图:分享给新手朋友。要点:1. 使用Apache HttpClient库实现GET请求。2. 异步请求处理。3. 正则表达式抓取自己需要的数据。1. 使用Apache HttpClient库实现GET请求。使用Apache只需简单三步[java] view plain copy转载 2016-04-26 21:07:26 · 798 阅读 · 0 评论 -
Android开发中,那些让你相见恨晚的方法、类或接口
PS:本文类容来自我在知乎上对Android开发中,有哪些让你觉得相见恨晚的方法、类或接口?这一问题的回答,目前就总结这些,日后若有新的发现,随时补充。欢淫点赞。getParent().requestDisallowInterceptTouchEvent(true);剥夺父view 对touch 事件的处理权,谁用谁知道。ArgbEvaluator.evaluate(flo转载 2016-04-13 09:22:57 · 473 阅读 · 0 评论 -
项目中遇到的bug及相关经验
1.在为listview添加头布局的时候,一定要把头布局设置为单独的view,头布局不要和listview在同一个布局里面,再添加给listview不然会报错 2.为imageview 设置背景,需要全控件显示,设置iamgeview的一个属性 scaletype="fitXY" 3. 事件分发,当不想让父控件影响子控件的动作时可以用/** * 事件分发请求父控件及祖宗原创 2016-04-22 02:39:36 · 1243 阅读 · 0 评论 -
handler 的post方法解惑
我们在子线程使用handler的post方法时,如下:new Thread(new Runnable() { @Override public void run() { System.out.println("UI线程ID2="+Thread.currentThread().getId()); hh.post(new Runnable() {原创 2016-08-07 22:20:57 · 1214 阅读 · 4 评论 -
五年Android开发,让我“刻骨铭心”的那些坑
前言 这篇文章是本人对在开发过程中踩坑经历的一次总结;分为系统API的坑、使用不当导致的坑、开源项目中的坑等几个方面,知识面有限,认知难免会有偏颇,如发现有问题还请指正。1 系统API的坑 Android library中的资源ID在R.java中不是final类型: 问题现象:在library中使用swit转载 2016-08-27 19:01:38 · 2401 阅读 · 2 评论 -
自定义CrashHandler轻轻松松让你查看程序崩溃
今天测试遇到崩溃,而我又没办法查看,于是老司机教了我一招。下面是CrashHandler类:package com.bbk.bfcupload.bfcuploadtestdemo.util;import android.annotation.SuppressLint;import android.content.Context;import android.content.pm原创 2017-01-16 18:11:09 · 5804 阅读 · 0 评论 -
Android线程池
1.线程池的引入 引入的好处: 1)提升性能。创建和消耗对象费时费CPU资源 2)防止内存过度消耗。控制活动线程的数量,防止并发线程过多。 使用条件: 假设在一台服务器完成一项任务的时间为T T1 创建线程的时间 T2 在线程中执行任务的时间,包括线程间同步所需时间 T3 线程销毁的时间原创 2016-02-08 17:42:41 · 640 阅读 · 0 评论 -
android中异步任务
在android中有很多方法处理异步,目前我知道的有五种(挖个坑,有时间写详细用法):1.handler+thread2.AsyncTask3.Service4.IntentServiceAndroid异步加载全解析之IntentServiceAndroid中Services之异步IntentServiceIntentService是继承Service的,但是Servi原创 2016-06-01 16:27:38 · 438 阅读 · 0 评论 -
android studio 运行项目gradle出错
错误信息如下:Information:Gradle tasks [:app:clean, :app:generateDebugSources, :app:mockableAndroidJar, :app:prepa..此处省略:slidingMenuLibrary:preDebugAndroidTestBuild UP-TO-DATE:slidingMenuLibrary:copy原创 2016-04-20 01:52:32 · 14753 阅读 · 0 评论 -
Android关于OnTouch 和OnClick同时调用冲突的解决方案
Button的onTouch,onClick,onLongClick事件发生先后顺序和关联:一,onTouch返回false首先是onTouch事件的down事件发生,此时,如果长按,触发onLongClick事件;然后是onTouch事件的up事件发生,up完毕,最后触发onClick事件。二,onTouch返回true首先是onTouch事件的down事件发生,然后是o转载 2016-04-25 14:57:19 · 676 阅读 · 0 评论 -
Android Studio使用Lambda表达式出错
配置过环境后,运行写好的Demo出现如下错误:搜索无果后,我又仔细的看了配置,错在配置环境,配置分为三步:1.首先先项目根目录下的build.gradle中加入(注意加黑字)as2.0以后版本用3.4classpath 'me.tatarka:gradle-retrolambda:3.2.0'2.然后再module目录下的build.gradle中使用插件(放在原创 2016-05-17 18:15:11 · 2413 阅读 · 0 评论 -
Dialog第二次点击报错
错误信息如下:自定义dialog,里面添加了一个自定义布局,一不小心报错。 java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first(自view已经有了父view,你必须先原创 2016-08-31 15:26:41 · 1876 阅读 · 0 评论 -
Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
错误信息: Error running testdate: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.解决方法如下:解决方法:原创 2016-09-01 09:20:51 · 390 阅读 · 0 评论 -
Error:Execution failed for task >!zip.isFile()
今天写项目遇到这个问题:看了一些方法没有解决。最后自己写了一个demo.发现更改下自己的gradle版本解决了这个问题:我把版本由2.2.3改为2.2.2其他的情况请参考:这里原创 2017-04-22 02:17:57 · 1757 阅读 · 0 评论 -
小米手机Installation failed with message Failed to establish session.
手机小米6,编译环境android studio3.0,编译后安装时一直提示:Installation failed with message Failed to establish session. It is possible。。。此时打开开发者选项,关闭:小米UI优化。重新启动手机即可。参考:http://www.voidcn.com/blog/himayan46/a原创 2017-07-21 14:58:03 · 1791 阅读 · 0 评论 -
Failure [INSTALL_FAILED_ALREADY_EXISTS]
1.错误用命令窗口安装apk文件时,总是报Failure [INSTALL_FAILED_ALREADY_EXISTS],如下: 2.过程使用adb uninstall packagename卸载,没有什么作用。又使用命令:adb shell ls data/app 和 adb shell ls system/app 查询,发现并没安装此应用。分析后,可能是卸载后存留部分数据,导致应用不能安装原创 2017-08-16 15:41:37 · 1653 阅读 · 1 评论 -
Android官方MVP架构示例项目解析
前段时间Google在Github推出了一个项目,专门展示Android引用各种各样的MVP架构,算是官方教程了。趁着还新鲜,让我们来抛砖引玉一探究竟,看看在Google眼里什么样算是好的MVP架构。App架构在Android开发者中一直是讨论比较多的一个话题,目前讨论较多的有MVP、MVVM、Clean这三种。google官方对于架构的态度一直是非常开放的,让开发者自主选择组织和架构转载 2016-04-13 09:26:13 · 4281 阅读 · 2 评论 -
选择恐惧症的福音!教你认清MVC,MVP和MVVM
相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候想用MVP的,代码写着写着就变成了MVC,久而久之就对它们三个的选择产生了恐惧感,如果你也是这样的人群,那么这篇文章可能会对你有很大的帮助,希望大家看完都会有收获吧!文章重点:(1)了转载 2016-04-15 09:39:29 · 2302 阅读 · 0 评论 -
深入理解Android之AOP
一、闲谈AOP大家都知道OOP,即ObjectOriented Programming,面向对象编程。而本文要介绍的是AOP。AOP是Aspect Oriented Programming的缩写,中译文为面向切向编程。OOP和AOP是什么关系呢?首先:l OOP和AOP都是方法论。我记得在刚学习C++的时候,最难学的并不是C++的语法,而是C++所代表的那种看问题的方法,即转载 2016-05-30 19:08:06 · 1607 阅读 · 0 评论 -
Android 使用存放在存assets文件夹下的SQLite数据库
因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面。一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机自身的存储上之后再使用,后来考虑到每次都拷贝的话效率不高,并且如果涉及到对数据库的修改操作的话拷贝之后数据就被恢复了。因此就写了该封装,该封装只是在第一次使用数据库文件的时候把该文件夹拷贝到手转载 2016-09-01 11:26:12 · 1026 阅读 · 0 评论 -
Android中使用Intent传递Object和ArrayList<Object>对象和获取
序列化的两种方式,使用Serializable接口和parcelableserializable只需要bean类继承serializable接口,而parcelable重写Parcelable接口中的两个方法和静态变量CREATOR.传递一些基本类型数据的方法如下:putExtra(String name, int value)putExtra(Stri原创 2016-09-01 16:09:21 · 2223 阅读 · 0 评论