![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
dreamxiang68
Good good study, day day up.
展开
-
Android studio 编译项目出现error: <item> inner element must either be a resource reference or empty错误
环境:Android studio:3.4compileSdkVersion 28gradle:3.4.0错误如下:Android resource compilation failedD:\workspace\demo\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\val...原创 2019-05-10 11:07:56 · 3323 阅读 · 8 评论 -
android 动画总结
3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画系统:property animation,这三种动画模式在SDK中被称为property animation,view animation,drawable animation。 1. View Animation(Tween Anima转载 2015-12-22 20:52:16 · 337 阅读 · 0 评论 -
Java日期格式处理
日期字符串:Wed, 16 Jan 2013 19:01:18 EST日期格式:EEE, dd MMM yyyy HH:mm:ss ZZZ参考:http://blog.163.com/zhaowenchao_vip/blog/static/1715151442011524114322505/为了防止遗忘,先将页面copy一下[html转载 2016-01-22 09:32:15 · 4755 阅读 · 0 评论 -
通过addDataScheme("file") 浅析android事件过滤策略
有一个问题,在网上被频繁的问到,就是为什么自定义的Receiver总是无法接收到SD卡插拔的事件。而此问题大部分情况下可以通过增加一句代码解决: filter.addDataScheme("file"); // filter是IntentFilter对象那么为什么增加这句代码就可以解决了呢?这个问题尽管有人问到,但是却没有太好的回答。可能是因为对于精通Intent转载 2016-01-18 20:18:18 · 658 阅读 · 0 评论 -
Activity的四种启动模式(LaunchMode)
Activity一个有4种启动模式,分别是:standard、singleTop、singleTask、singleInstance。这4种启动模式可以在AndroidManifest.xml文件中的标签下的android:launchMode 属性进行设置。Activity栈是一个后进先出的列表,用于保存要启动的Activity实例。1.standard st原创 2015-09-08 23:35:14 · 378 阅读 · 0 评论 -
理解Activity Fragment生命周期
1.Activity生命周期2.Fragment生命周期3.Activity和Fragment对比图原创 2015-09-09 22:35:08 · 401 阅读 · 0 评论 -
Android的系统架构
Android的系统架构采用了分层架构的思想。包含了四个层级,从上层到底层依次为 应用程序层(APPLICATIONS)、应用框架层(APPLICATION FRAMEWORK)、系统库(LIBRARIES)和Android运行时(ANDROID RUNTIME)、Linux内核(LINUX KERNEL)。如图所示: 一 应用程序层 该层提供一些核心应原创 2015-05-08 11:00:49 · 821 阅读 · 0 评论 -
Android ListView CheckBox状态错乱
listView中包含checkBox的时候,经常会发生其中的checkBox错乱的问题,大多时候的代码如下:先看一下效果图:奇数行为选中状态,偶数行为非选中状态 具体代码:布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_wid转载 2015-04-16 16:31:15 · 2568 阅读 · 1 评论 -
Android中Launcher对于AppWidget处理的分析:AppWidgetHost角色
Launcher在Android的AppWidget整个体系中扮演AppWidgetHost的角色,本文分析Launcher对于AppWidget的处理,主要包括:选取AppWidgetProvider之后的处理;Launcher初始化过程中加载(包括第一次加载和之后正常的加载)AppWidget信息的处理,等。 由《Android中选取并绑定AppWidget》中知道,Launcher发转载 2015-04-08 16:34:58 · 765 阅读 · 0 评论 -
Android AppWidget系统框架
本文简要描述AppWidget系统框架,并对AppWidget系统里的AppWidgetHost(IAppWidgetHost) / AppWidgetProvider / AppWidgetService(IAppWidgetService) / AppWidgetManager等组件做简要的阐述。Android中的AppWidget也就是“窗口小部件”,实现了桌面(Launcher)上转载 2015-04-08 16:17:04 · 423 阅读 · 0 评论 -
Android中选取并绑定AppWidget
Android添加一个窗口小部件的过程,实际是AppWidgetPickActivity为AppWidgetHost选取AppWidgetProvider并与之绑定的过程。一般地,Launcher扮演AppWidgetHost角色,AppWidgetProvider可以从系统中所有已安装的AppWidgetProvider列表中选取。本文描述AppWidgetPickActivity选取并绑定Ap转载 2015-04-08 16:20:16 · 560 阅读 · 0 评论 -
Android 之 Handler 使用
Handler是Android系统中重要的组成部分,不管是Android的原生代码中,还是我们在开发应用程序的过程中,都会大量使用Handler,来进行消息的处理。要想更好的使用Handler,就发须理解Android的Handler消息处理机制。详细的Handler消息处理机制,请移步Android应用程序消息处理机制(Looper、Handler)分析原创 2016-08-25 22:54:29 · 366 阅读 · 0 评论 -
去除ScrollView滑动到尽头时再拖动的阴影效果
一、删除android ScrollView边界阴影方法方法 1) 在xml中添加:android:fadingEdge=”none” 2) 代码中添加:ScrollView.setHorizontalFadingEdgeEnabled(false); 二、删除ScrollView拉到尽头(顶部、底部),然后继续拉出现的阴影效果 适用于2.3及以上的 否则不用设置转载 2016-02-15 14:28:56 · 5846 阅读 · 0 评论 -
java.net.UnknownServiceException: CLEARTEXT communication to wanandroid.com not permitted by network
java.net.UnknownServiceException: CLEARTEXT communication to wanandroid.com not permitted by network错误原因:这个错误是在安卓P系统上当调用远程接口进行网络通信时报的错误。大白话:由于 Android P(版本27以上) 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。所以如果...转载 2019-04-24 16:02:34 · 311 阅读 · 0 评论 -
make: *** [out/host/linux-x86/obj32/SHARED_LIBRARIES/libjavacore_intermediates/luni/src/main/native/
现象:使用Ubuntu12.04编译Andorid代码出瑞如下问题:make: *** [out/host/linux-x86/obj32/SHARED_LIBRARIES/libjavacore_intermediates/luni/src/main/native/android_system_OsConstants.o] Error 254log:clang++: err...原创 2019-04-08 11:21:05 · 1004 阅读 · 0 评论 -
Glide不重新加载图片的问题
现象图片URL地址没有变,但是图片内容变了,每次都是显示第一次加载的图片内容。解决办法Glide.with(this) .load(URL) .signature(new StringSignature(UUID.randomUUID().toString())) // 重点在这行 .error(R.drawable.error_img) .into...转载 2018-08-30 17:15:49 · 4193 阅读 · 0 评论 -
Android分辨率适配layout布局的问题
android3.0之前,适配指定分辨率,将layout文件夹做如下命名:layout layout-1024x768 layout-1024x600 layout-1280x768 android3.0以后,需将高度减去48像素,即底部状态栏的高度:layout layout-1024x720 layout-1024x552 l转载 2017-12-22 08:51:15 · 2780 阅读 · 0 评论 -
Ubuntu12.04下安装配置Android SDK NDK
Android SDK安装1. 下载Android SDK官网http://developer.android.com/sdk/index.html,下载最新的Android SDK包(android-sdk_r24.4.1-linux.tar)。2. 解压SDK包在命令行终端中运行命令$ sudo tar -zxvf android-sdk_r24.4.1-linux.tgz,解压出来...原创 2016-10-08 15:44:22 · 4061 阅读 · 0 评论 -
android4.2.2修改出厂默认输入法
1、 需要提前将用到的默认输入法(.apk)内置到系统中2、将系统中所有的输入法设置为可用,修改frameworks/base/core/Java/com/Android/internal/inputmethod/InputMethodUtils.java public void enableAllIMEsIfThereIsNoEnabledIME() {转载 2017-03-28 18:46:27 · 1160 阅读 · 0 评论 -
Android OTA升级包制作流程
0.签名java -Xmx2048m -jar out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8这个key是debug模式下自动生成的key你也可以通过openssl创建自转载 2017-01-19 16:24:05 · 1561 阅读 · 0 评论 -
Android6.0 锁屏(Keyguard) 简介
锁屏(Keyguard)是Android是一个非常重要的模块。包含的功能有:解锁(指纹、图案、PIN等)、锁屏通知显示、快速启动相机、快速拨号、显示日期/时间等。 Keyguard的代码路径如下: \frameworks\base\packages\Keyguard Android系统中的各个功能模块、应用,都是根据各个模块下的Android.mk文件中原创 2016-01-19 23:11:58 · 10695 阅读 · 0 评论 -
Android中RemoteViews的实现
本文结合AppWidget的应用场景,分析Android中RemoteViews的内部具体实现。从前文《Android中AppWidget的分析与应用:AppWidgetProvider》和《Android中Launcher对于AppWidget的处理的分析:AppWidgetHost角色》中得知,Android中AppWidget的图形资源是由AppWidgetProvider通过Remot转载 2015-04-08 16:39:33 · 567 阅读 · 0 评论 -
Android中AppWidget的分析与应用:AppWidgetProvider
本文从开发AppWidgetProvider角度出发,看一个AppWidgetPrvodier在整个AppWidget体系中所扮演的角色。分析了AppWidgetProvider如何被AppWidget系统所识别;AppWidgetProvider何时/如何通过RemoteViews提供并更新数据;如何响应通过RemoteViews提供的PendingIntent的按钮点击操作。 因为一般转载 2015-04-08 16:27:10 · 393 阅读 · 0 评论 -
Android ProGuard Java代码混淆器
ProGuard工具通过移除不用的代码,用语义上混淆的名字来重命名类、字段和方法等手段来压缩、优化和混淆你的代码。结果是更小的.apk文件,并且更难于被反编译。由于ProGuard能够让你的程序难于被反编译,因此,当你的程序使用了一些机密的信息的时,使用它就显得更加重要。 ProGuard已经集成到Android的编译环境中,因此,用不着手动来触发它。ProGuard只在r转载 2012-05-02 12:38:42 · 695 阅读 · 0 评论 -
发布release版的android apk应用
平时通过Eclipse生成在bin目录下的apk文件,都是debug版的,如何创建release版的软件呢?其实还是挺简单的。keytool -genkey -v -keystore keystore_name.keystore -alias alias_name -keyalg RSA -validity 10000keystore_name.keystore:要创建的releas转载 2012-04-25 17:47:41 · 690 阅读 · 0 评论 -
Android中的invalidate()和postInvalidate()
invalidate()是用来刷新View的,必须是在UI线程中进行工作。比如在修改某个view的显示时,调用invalidate()才能看到重新绘制的界面。invalidate()的调用是把之前的旧的view从主UI线程队列中pop掉。 一个Android 程序默认情况下也只有一个进程,但一个进程下却可以有许多个线程。在这么多线程当中,把主要是负责控制UI界面的显示、更新和控件交互的线程称为UI转载 2012-02-29 17:48:29 · 739 阅读 · 0 评论 -
Android Service
•Service概念及用途:•Service 是 Android 系统中的一种组件,它和Activity 的级别差不多,但又Activity不同,它是不能与用户交互的,但可以和其他组件进行交互。它不能自己运行,只能后台运行。•如果我们退出应用时,Service进程并没有结束,它仍然在后台运行,那我们什么时候会用到Service呢?比如我们播放音乐的时候,有可能想边听音乐边干些其他事情,当我转载 2012-02-29 22:48:00 · 405 阅读 · 0 评论 -
Android 的网络编程
android的网络编程分为2种:基于socket的,和基于http协议的。基于socket的用法 服务器端: 先启动一个服务器端的socket ServerSocket svr = new ServerSocket(8989); 开始侦听请求 Socket s = svr.accept(); 取得输入和输出 DataInputSt转载 2011-12-25 23:17:31 · 259 阅读 · 0 评论 -
android知识链接汇总
一、开发环境Android开发环境搭建全程演示(jdk+eclipse+android sdk)二、XML轻松使用xmlpull解析xmlandroid之XmlSerializer序列化XML(写入)Android中使用XmlSerializer拼装XML数据使用 SAX 处理 XML 文档Java6.0新特性之StAX--全面解析J转载 2011-12-22 23:53:40 · 970 阅读 · 2 评论 -
TabActivity中onKeyDown无法响应的解决方法
Android中某个类继承Activity的子类TabActivity时,重载Activity中的public boolean onKeyDown(int keyCode, KeyEvent event)方法时,点击按键时并得不到响应,解决的方法是:重载public boolean dispatchKeyEvent(KeyEvent event)方法,其示例代码如下:@Overridepub原创 2011-12-17 00:49:47 · 544 阅读 · 0 评论 -
Android只显示月和日的DatePickerDialog
前言 需求要只显示月和日的日历控件,又不想自定义控件,最简单的办法就是隐藏显示年的这个框了,但DatePickerDialog并没有直接提供方法来操作,这里分享一个笨办法:)正文 一、效果图 1.1 默认1.2 处理后二、实现代码 2.1 代码片段1 /** * 从当前Dialog中查找DatePicker子控件 *转载 2011-12-07 13:19:27 · 791 阅读 · 0 评论 -
Android: NDK编程入门
为何要用到NDK?前段时间,工作中需要用android的应用程序访问android的根文件系统中的文件,但是由于应用程序的权限限制,无法访问这些文件,怎么办? 所以这就要用到了NDK编程了,既用C/C++代码实现访问系统文件,并将其生成本地库,供android中的java代码调用,这样就可以在java代码中通过调用C/C++编写的库的接口来实现对系统文件的访问。 下面就介绍下Andro转载 2011-11-29 23:26:05 · 390 阅读 · 0 评论 -
Android获取Ip的通用方法
public String getLocalIpAddress() { try { for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElemen转载 2011-11-22 13:27:13 · 328 阅读 · 0 评论 -
Android之单元测试——下
在项目中实际遇到的问题,和大家做一个分享.#1.在控件的模拟事件执行的时候,尽量不要使用@UiThreadTest.因为如果一个Activity中,控件很多的话,很容易造成UI线程阻塞.可以采用如下一段代码代替之:private class PerformClick implements Runnable { Button hhButton;转载 2012-05-28 11:45:46 · 2239 阅读 · 2 评论 -
Android之单元测试——上
单元测试是在软件开发过程中,最低级别的测试活动,在该活动中软件的独立单元将在与程序的其他部分相隔离的情况下进行测试.android的单元测试其实也是一样的.android中的测试框架是扩展的junit3,所以在学习android的单元测试之前,可以先学习junit3的使用.junit3要学习的东西其实也不多.junit3的入门可以参考:http://android.blog.51cto.c转载 2012-05-28 11:37:35 · 920 阅读 · 0 评论 -
android:sharedUserId问题
android:sharedUserId问题Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户Shared User id通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访问其他APK的数据目转载 2015-04-02 18:45:18 · 545 阅读 · 0 评论 -
Android中gravity与layout_gravity的区别
LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。他们的区别在于:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式。举个例子,我们可以通过设置android:gravity="center"来让EditText中的文字转载 2012-05-22 10:57:59 · 405 阅读 · 0 评论 -
使用MAT分析内存泄漏(二)
前言在使用Memory Analyzer tool(MAT)分析内存泄漏(一)中,我介绍了内存泄漏的前因后果。在本文中,将介绍MAT如何根据heap dump分析泄漏根源。由于测试范例可能过于简单,很容易找出问题,但我期待借此举一反三。一开始不得不说说ClassLoader,本质上,它的工作就是把磁盘上的类文件读入内存,然后调用java.lang.ClassLoader.defineC转载 2012-06-02 10:31:42 · 8434 阅读 · 0 评论 -
使用 Eclipse Memory Analyzer 进行堆转储文件分析
概述对于大型 JAVA 应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现。JVM 能够记录下问题发生时系统的部分运行状态,并将其存储在堆转储 (Heap Dump) 文件中,从而为我们分析和诊断问题提供了重要的依据。通常内存泄露分析被认为是一件很有难度的工作,一般由团队中的资深人转载 2012-06-02 10:07:04 · 789 阅读 · 0 评论 -
Android的内存泄露测试
Android下,如何进行内存泄漏的测试,除了长时间运行的间接测试,有没有工具帮我们进行这方面的测试呢?安装 MAT和其他插件的安装非常类似,MAT 支持两种安装方式,一种是“单机版“的,也就是说用户不必安装 Eclipse IDE 环境,MAT 作为一个独立的 Eclipse RCP 应用运行;另一种是”集成版“的,也就是说 MAT 也可以作为 Eclipse IDE 的一部分,和现转载 2012-06-02 16:44:17 · 700 阅读 · 0 评论