【Android进阶】
文章平均质量分 89
幻影浪子
临渊慕鱼,不如退而结网
展开
-
Using WebView from more than one process at once with the same data directory is not supported
错误日志:Using WebView from more than one process at once with the same data directory is not supported错误原因:Android P行为变更,不可多进程使用同一个目录webView,需要为不同进程webView设置不同目录解决办法:Android 9 prohibit sharing WebView data directory among multiple processesadd below cod原创 2020-06-17 15:35:58 · 12633 阅读 · 5 评论 -
理解android中的内部存储与外部存储
我们先来考虑这样一个问题:打开手机设置,选择应用管理,选择任意一个App,然后你会看到两个按钮,一个是清除缓存,另一个是清除数据,那么当我们点击清除缓存的时候清除的是哪里的数据?当我们点击清除数据的时候又是清除的哪里的数据?读完本文相信你会有答案。在android开发中我们常常听到这样几个概念,内存,内部存储,外部存储,很多人常常将这三个东西搞混,那么我们今天就先来详细说说这三个东西是怎么回事...转载 2020-03-26 16:53:08 · 1494 阅读 · 0 评论 -
Android WebView 网页使用本地字体
要求在网页里面调用android app中assets目录下的某个字体文件。网页加载通常有两种方式:1、loadDataWithBaseURL2、loadUrl一、loadDataWithBaseURL网页中直接使用file://指定assets文件路径即可示例:font-family: url('file:///android_asset/xxx.TTF')二、loadUr...原创 2019-10-29 15:49:39 · 7150 阅读 · 3 评论 -
Android Download: unexpected end of stream
02-20 15:11:46.523: W/System.err(31752): java.io.IOException: unexpected end of stream02-20 15:11:46.558: W/System.err(31752): at libcore.net.http.FixedLengthInputStream.read(FixedLengthInputStream.原创 2013-02-20 15:19:16 · 15166 阅读 · 6 评论 -
android 中对apache httpclient及httpurlconnection的选择
在官方blog中,android工程师谈到了如何去选择apache client和httpurlconnection的问题: 原文见 http://android-developers.blogspot.com/2011/09/androids-http-clients.html 小结几点:1) apache httpclient比较稳定点,少BUG,但由于API的关系,扩展改造麻烦点, 所以an转载 2013-03-29 23:42:41 · 5229 阅读 · 0 评论 -
Handler,Looper,MessageQueue机制
线程与线程间的交互协作线程与线程之间虽然共享内存空间,也即可以访问进程的堆空间,但是线程有自己的栈,运行在一个线程中的方法调用全部都是在线程自己的调用栈中。通俗来讲西线程就是一个run()方法及其内部所调用的方法。这里面的所有方法调用都是独立于其他线程的,由于方法调用的关系,一个方法调用另外的方法,那么另外的方法也发生在调用者的线程里。所以,线程是时序上的概念,本质上是一列方法调用。那么线程之间要转载 2013-04-09 15:51:23 · 2563 阅读 · 0 评论 -
深入解析AsyncTask
AsyncTask的内幕AsyncTask主要有二个部分:一个是与主线各的交互,另一个就是线程的管理调度。虽然可能多个AsyncTask的子类的实例,但是AsyncTask的内部Handler和ThreadPoolExecutor都是进程范围内共享的,其都是static的,也即属于类的,类的属性的作用范围是CLASSPATH,因为一个进程一个VM,所以是AsyncTask控制着进程范围内所有的子类转载 2013-04-09 13:36:35 · 2338 阅读 · 0 评论 -
【Android UI】 Shape详解
在Android开发过程中,经常需要改变控件的默认样式, 那么通常会使用多个图片来解决。不过这种方式可能需要多个图片,比如一个按钮,需要点击时的式样图片,默认的式样图片。 这样就容易使apk变大。 那么除了使用drawable这样的图片外,还有其他方法吗? 本次就谈一下自定义图形shape,Android上支持以下几种属性shape、gradient、stroke、corners、p原创 2011-05-05 21:04:00 · 55154 阅读 · 10 评论 -
MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序
MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序 onInterceptTouchEvent()用于处理事件并改变事件的传递方向。处理事件这个不用说了,你在函数内部编写代码处理就可以了。而决定传递方向的是返回值,返回为false时事件会传递给子控件的onInterceptTouchEvent();返回值为true时事件会传递给当前转载 2013-08-29 13:47:17 · 2046 阅读 · 1 评论 -
Android JNA
Add Android SDK/NDK tools into PATH (used by native/Makefile).Set environment variable NDK_PLATFORM (used by native/Makefile).Build using: ant -Dos.prefix=android-arm dist.Tests must be run on the tar原创 2013-10-14 18:57:42 · 4063 阅读 · 0 评论 -
Android 自定义权限
在android系统的安全模型中,应用程序在默认的情况下不可以执行任何对其他应用程序,系统或者用户带来负面影响的操作。如果应用需要执行某些操作,就需要声明使用这个操作对应的权限。 (在manifest文件中 添加标记) android 系统提供了一系列这样的权限,具体可以查看android 权限,另外,android系统在新的版本中会增加一些permission,可以查看android 版本信息。原创 2013-12-24 15:40:03 · 2731 阅读 · 1 评论 -
Retrofit2 源码解析
原文链接:http://bxbxbai.github.io/2015/12/13/retrofit2-analysis/开发Android App肯定会使用Http请求与服务器通信,上传或下载数据等。目前开源的Http请求工具也有很多,比如Google开发的Volley,loopj的Android Async Http,Square开源的OkHttp或者Retrofit等。我觉得Retrofit转载 2016-08-18 10:22:44 · 2273 阅读 · 0 评论 -
ButterKnife框架原理
原文: http://bxbxbai.github.io/2016/03/12/how-butterknife-works/大部分Android开发应该都知道@JakeWharton 大神的ButterKnife注解库,使用这个库我们可以不用写很多无聊的findViewById()和setOnClickListener()等代码ButterKnife项目的主页在这里:http://jakewhar转载 2016-08-18 10:24:24 · 1795 阅读 · 0 评论 -
GreenDao升级时不要重建所有表
GreenDao的配置写在build.gradle,如下:greendao { schemaVersion 1 //<--数据库的版本,用于升级时候进行更改 daoPackage 'com.aidebar.greendaotest.gen' //存放自动生成代码的包 targetGenDir 'src/main/java' ...原创 2018-08-06 21:04:57 · 1188 阅读 · 0 评论 -
查看apk文件的签名类型(V1、V2)
命令:apksigner verify -v xxx.apk结果:VerifiesVerified using v1 scheme (JAR signing): trueVerified using v2 scheme (APK Signature Scheme v2): falseNumber of signers: 1表示此安装包使用了V1签名,没有使用V2签名。apksi...原创 2018-12-27 17:10:56 · 10295 阅读 · 0 评论 -
[Android Bug] ListView中Header, Footer无法隐藏(gone)的问题
ListView中Header、Footer View应该是会应该遇到, 比如说,滚动到底部时,自动开始加载; 对于一些应用市场,会在Header中加上ViewFlipper做应用推荐(滚动的那种,好像很不少市场都有这个功能)。添加时一般大家都会做如下处理: ListView listView = xxxx; listView.addHearderView(item_head); lis原创 2012-08-24 17:20:24 · 14288 阅读 · 6 评论 -
Google Cloud Messaging for Android
Google Cloud Messaging for Android 是谷歌新推出的云消息服务, 简称GCM,该服务科帮助你将数据从服务端发送至应用。C2DM帮助页上的讯息已经宣布,截至昨日,6月26日C2DM已被正式的GCM批准不再使用。C2DM不再接受新的用户,虽然谷歌将短期维持c2dm的使用。但C2DM开发商将不得不在未来使用的GCM,移除他们现有的应用程序C2DM,用GCM代替。详情参见官原创 2012-07-09 13:15:40 · 5843 阅读 · 1 评论 -
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate【已解决】
新浪微博 Android SDK 分享时出错,错误信息:javax.net.ssl.SSLPeerUnverifiedException: No peer certificatecom.weibo.net.WeiboException: javax.net.ssl.SSLPeerUnverifiedException: No peer certificate at com.weibo.net.原创 2012-06-05 17:56:27 · 19731 阅读 · 8 评论 -
【Android进阶】嵌套TabHost (TabHost中放TabHost,类似二级目录、二级树)
今天讲一下,如何在TabHost中,再放TabHost。先来看一下效果。一层TabHost两层Tabhost (内部TabHots在上面)两层TabHost (内层TabHots在下面)下面说一下代码,一共3个 java类,3个xml布局文件。看一下主画面:main.xml原创 2011-02-23 19:56:00 · 17852 阅读 · 33 评论 -
Android学习笔记:androidmanifest.xml 高级属性
<br /> <br />Android工程的的主配置文件androidmanifest.xml的一些高级属性大多数开发者可能不了解,下面我们一起来看一看。<br /> <br />支持的屏幕大小设置,我们可以显示的指定允许运行在:<br /><supports-screens android:largeScreens="true" //WVGA android:normalScreens="true" //HVGA and转载 2011-05-24 10:18:00 · 3099 阅读 · 0 评论 -
【Android设备管理】 利用DevicePolicyManager执行屏幕锁定
Android手机一般不用时,都会通过电源键来锁定屏幕同时关闭屏幕灯。其实从API Level 8 (也就是Android 2.2) 开始, Android提供了DevicePolicyManager类, 可以让你的应用程序也能执行屏幕锁定等操作。锁定效果:下面我们来看一下具体如何操作。 要让自己的应用实现该屏幕锁定,主要需要用到以下几个类: DevicePolicyManager这是设备管理的主类。通过它可以实现屏幕锁定、屏幕亮度调节、出厂设置等功能。 DeviceAdminReceiver 该类继承自原创 2011-04-14 16:28:00 · 33724 阅读 · 21 评论 -
【Android】Uri、UriMatcher、ContentUris详解
1.Uri通用资源标志符(Universal Resource Identifier, 简称"URI")。Uri代表要操作的数据,Android上可用的每种资源 - 图像、视频片段等都可以用Uri来表示。URI一般由三部分组成:访问资源的命名机制。 存放资源的主机名。 资源自身的名称,由路径表示。 Android的Uri由以下三部分组成: "content://"、数据的路径、标示ID(可选)比如: 所有联系人的Uri: content://contacts/people某个联系人的Uri: content原创 2011-04-18 16:01:00 · 52745 阅读 · 10 评论 -
android中permission_group与permisson区别、作用
阅读Android SDK时可以发现, Android Manifest下有两个内部类, 一个是permission ,还有一个是permission_group。这两个内部类是干什么的呢? 有什么区别呢?对于Permission, 可能做过Android开发的人应该都知道, 这就是权限。 在这个类中定义了很多的权限,比如网络访问权限、蓝牙设备访问权限、振动器使用权限等等.. 一般用法就是在 AndroidManifest.xml 中进行定义, 如下例:原创 2011-05-10 15:27:00 · 22058 阅读 · 6 评论 -
使用ActivityGroup时,如何保存Activity状态、如何使用子Activity的Menu?
由于很多朋友觉得,TabHost限制太多,发挥余地不大, 所以都会使用ActivityGroup来代替TabHost。但是在使用ActivityGroup时,很多朋友可能也碰上了标题中的问题。 下面简单讲一下解决办法。1. 使用ActivityGroup时,如何保存Activit原创 2011-07-08 12:41:04 · 10163 阅读 · 6 评论 -
WebView loadData出错(奇怪的设计)
今天遇到一个奇怪的问题。我使用WebView加载一个网页。 方法1. 直接使用 loadUrl() 方法,没有问题。完全可以。方法2. 使用loadData()方法,出现问题,无法显示。方法3. 使用loadDataWithBaseURL()方法, 完原创 2011-08-02 16:58:54 · 8237 阅读 · 7 评论 -
【Android 4.0】Android Icon Set的使用
Android4.0退出后,ADT也同步更新了,与之前稍微有一些变化,其中最明显是的就是多了一个 Android Icon Set。下面我们来看一下这个东西到底是干嘛用的.首先,在Eclipse中某个android项目上右击打开 New - Other 视图,找到Android,如图:进去之后,可以选择要生成的图片类型,如: Launch、Tab、Menu等原创 2011-10-21 10:20:00 · 6322 阅读 · 3 评论 -
【Android】通过手势切换屏幕的几种方法
第一种: ViewFlipper + GestureDetector第二种: ActivityGroup + GestureDetector第三种: ViewPager (Android3.0+)第四种: ViewFlow (开源项目) (示例: http://download.csdn.net/detail/feng88724/3812764)前两种大家应该都知道,尤其是第一种,应该都用原创 2011-11-15 16:51:41 · 15600 阅读 · 4 评论 -
【Android】报表、线图、饼图、柱状图 (工具整理)
1.achartengine(http://code.google.com/p/achartengine/)android2. android-ski-report(http://code.google.com/p/android-ski-report/)这个项目在Google Market也可以下载到。3. charts4j ( http:原创 2011-11-02 16:02:40 · 13006 阅读 · 0 评论 -
【Android】SAX解析之错误纠正!!
在讲这次错误之前,先看一下下面这段代码。 【◆以下解析方法是错误的×】import java.util.ArrayList;import java.util.List;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;impo原创 2011-11-26 00:20:51 · 8757 阅读 · 24 评论 -
动画(Animation) 之 (闪烁、左右摇摆、上下晃动等效果)
左右晃动的效果: (这边显示没那么流畅)一、续播 (不知道取什么名字好,就是先播放动画A, 接着播放动画B) 有两种方式。 第一种,分别动画两个动画,A和B, 然后先播放动画A,设置A 的 AnimationListener。当onAnimationEnd触发(即A播放完毕)时,开始播放B。 animation1.setAnimationListener(new Animatio原创 2011-11-22 15:49:39 · 48968 阅读 · 16 评论 -
【Android进阶】天天动听 悬浮歌词(迷你歌词)效果解读
天天动听, 这款Android手机上的音乐播放器,相信不少朋友都曾用过。 不知大家是否注意到,天天动听有一个迷你歌词的特效。 什么效果呢? 就是不管你切到什么画面, 歌词永远显示,并且可以拖动。 类型QQ音乐,在电脑上播放时显示的歌词效果。 下面先来看一下效果。 这个歌词是在所有界面之上的。 下面我们将这个效果解剖一下, 我认为主要有三个难点:1. 歌词悬浮在所有页面之上2. 歌词可以拖动位原创 2011-04-25 21:56:00 · 16478 阅读 · 48 评论 -
Android Intent.ACTION_CHOOSER 与 Intent.ACTION_PICK_ACTIVITY
1.Intent.ACTION_CHOOSER = “android.intent.action.CHOOSER” 其作用是显示一个Activity选择器。Intent提供了一个静态的createChooser方法,让我们能够更方便的创建这样一个Intent。具体的用法示例可以参考Launcher应用里Launcher.java的startWallpaper函数: private void s转载 2011-12-31 14:06:38 · 8776 阅读 · 0 评论 -
java.lang.IllegalArgumentException: The observer is null.
05-28 17:18:34.086: E/AndroidRuntime(973): Caused by: java.lang.IllegalArgumentException: The observer is null.05-28 17:18:34.086: E/AndroidRuntime(973): at android.database.Observable.unregisterObs原创 2012-05-28 17:15:53 · 3914 阅读 · 2 评论 -
【Android进阶】多抽屉效果 (类似最早QQ使用的效果)
<br /> <br />也不知道该怎么取名,暂且就叫他多抽屉效果吧~~ 最早QQ就是这样的效果,点一下,还有声音,呵呵。<br /> <br />一晃,都过去那么多年了...<br /> <br /> <br />废话不多说了,看下效果:<br /> <br /><br /> <br /> <br />这个就是类似抽屉的效果,这边做了三个抽屉,点击抽屉既可打开,同时关闭其他抽屉。<br /> <br />有人猜到怎么做的了吗?<br /> <br />其实很简单,就是三个 TextView + 三个La原创 2011-02-24 22:47:00 · 12022 阅读 · 18 评论