Android
文章平均质量分 81
Rainbow Chang
这个作者很懒,什么都没留下…
展开
-
adb 发送广播和启动activity,清除数据
1.启动acitivtyadb shell am start -a (action name) -c (category name) -es (package name)例如adb shell am start -a android.media.action.IMAGE_CAPTURE_SECURE -c android.intent.category.DEFAULT -es com.application.demo2.发送广播adb shell ambroadcast-...原创 2020-07-01 11:50:09 · 569 阅读 · 0 评论 -
获取视频位置信息的方法
获取视频位置信息的方法public static String getVideoLocationInfo(String path) { MediaMetadataRetriever metadataRetriever = new MediaMetadataRetriever(); try { metadataRetriever.setDataSource(pa...原创 2020-05-05 17:00:30 · 7176 阅读 · 2 评论 -
Android 获取屏幕宽度和高度的几种方法
方法0 Display display = getWindowManager().getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight(); Log.d(TAG, "width = " + width + ",height = " + height)...转载 2019-11-08 14:50:20 · 2855 阅读 · 0 评论 -
android 夜间模式
自7.0开始谷歌提供了夜间模式,用于将屏幕色彩调成较为柔和的琥珀色,但因该模式需要硬件的支持,所以不是所有设备上都可用,也不常见。相关代码:\frameworks\base\services\core\java\com\android\server\display\NightDisplayService.java\frameworks\base\core\java\com\android\...转载 2019-11-05 15:03:28 · 1077 阅读 · 0 评论 -
Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
Android中触摸事件传递过程中最重要的是dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()方法。这个是困扰初学者的问题之一,我开始也是。这里记录一下dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()的处理过程,以供记忆。 dispat转载 2016-08-31 16:35:25 · 254 阅读 · 0 评论 -
理解Fragment生命周期
官网帮助文档链接: http://developer.android.com/guide/components/fragments.html主要看两张图,和跑代码一,Fragment的生命周 二,与Activity生命周期的对比 场景演示 : 切换到该Fragment11-29 14:26:35.095: D/AppListFra转载 2016-08-30 13:52:42 · 279 阅读 · 0 评论 -
框架模式 MVC 在Android中的使用
算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识。越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很多知识科学),二来网络上的很多框架已经帮我们做了太多的事情了,我们只需要画画UI就可以了,感觉Android开发没有太多的技术含金量。最近闲来无事,开始总结之前学过的知识点,想着是否应该学点其他的东西呢?总转载 2016-07-07 10:48:30 · 500 阅读 · 0 评论 -
Android跨进程通信的四种方式
由于android系统中应用程序之间不能共享内存。因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。其中Activity可以跨进程调用其他应用程序的Activity;Conte转载 2016-07-03 23:04:38 · 21909 阅读 · 1 评论 -
Android四大基本组件介绍与生命周期
Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。一:了解四大基本组件Activity :应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent转载 2016-07-03 20:24:53 · 871 阅读 · 0 评论 -
Android JNI知识简介
Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。 1.从如何载入.so档案谈起 由于Android的应用层的类都是以Java写的,这转载 2016-07-02 23:12:21 · 216 阅读 · 0 评论 -
Android中的AlarmManager的使用
1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent,通常我们使用 PendingIntent,PendingIntent可以理解为Intent的封装包,简单的说就是在Intent上在加转载 2016-07-11 21:40:14 · 651 阅读 · 0 评论 -
Activity四种启动模式和例子
Activity启动方式有四种,分别是:standardsingleTopsingleTasksingleInstance可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题。设置Activity的启动模式,只需要在AndroidManifest.xml里对应的标签设置android:launchMod转载 2016-07-11 20:47:25 · 319 阅读 · 0 评论 -
handler机制的原理
目录(?)[+]Handler创建消息andriod提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。 2)Handler:转载 2016-09-03 10:52:25 · 229 阅读 · 0 评论 -
Android按键事件处理流程
刚接触Android开发的时候,对touch、key事件的处理总是一知半解,一会是Activity里的方法,一会是各种View中的,自己始终不清楚到底哪个在先哪个在后,总之对整个处理流程没能很好的把握。每次写这部分代码的时候都有些心虚,因为我不是很清楚什么时候、以什么样的顺序被调用,大都是打下log看看,没问题就算ok了。但随着时间流逝,这种感觉一直折磨着我。期间也在网上搜索了转载 2017-03-15 15:24:17 · 5142 阅读 · 1 评论 -
android开发笔记之Makefile(一)
指定编译文件指定特定的Makefile,你可以使用make的“-f”和“–file”参数,如:make -f Make.Linux或make –file Make.AIX make -f test.mk1有这个命令后,我们就可以调试我们的命令了。 注释Makefile中,“#”是注释符 # -----------------------------------...转载 2018-10-16 08:18:48 · 674 阅读 · 0 评论 -
Android编程实现自定义分享列表ACTION_SEND功能的方法
本文实例讲述了Android编程实现自定义分享列表ACTION_SEND功能的方法。分享给大家供大家参考,具体如下:看到最近都在做自定义的东西,因为比较灵活,还可以摆脱系统自身不怎么漂亮的UI,(大家都懂得)所以自己也做了下自定义的分享列表,用PopupWindow的方式弹出。先上效果图:1、布局:popup_share.xml?转载 2018-02-02 13:35:34 · 835 阅读 · 0 评论 -
android之android.intent.category.DEFAULT的用途和使用
1、要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent。 Explicit Intent明确的指定了要启动的Acitivity ,比如以下Java代码:[java] view plain copyIntent intent= new Intent(this, B.cla转载 2017-12-07 13:57:51 · 4995 阅读 · 0 评论 -
AndroidManifest.xml文件详解(activity-alias)
语法(SYNTAX): android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="str转载 2017-12-07 13:44:12 · 449 阅读 · 0 评论 -
TexturePacker使用详解
TexturePacker是一款把若干资源图片拼接为一张大图的合图工具,在游戏开发以及网页制作中经常会使用到这个工具。为什么需要使用这个工具呢?1.我们知道,大部分游戏引擎底层的渲染方式都是基于OpenGL的,但是,你知道吗?OpenGL载入纹理图片时,所用内存会自动扩张到2的N次方。比如,一张图片的大小为10*10像素,OpenGL会按照16*16的规格将图片载入到内存中;如果图片大小为64转载 2017-09-21 10:42:17 · 9183 阅读 · 0 评论 -
android开发教程之startActivityForResult使用方法
最近做的一个小东西遇到这样的情况,我从一个页面MainActivity修改一些内容,需要跳转到一个新的EditActivity去做修改操作,修改完成后就回到之前的MainActivity,因为信息被修改了,最好还是从服务器上重新获取一下,那么就要在MainActivity里重新获取,假如把重新获取数据的操作放在MainActivity的onStart()方法里,那么MainActivity跳转到其转载 2017-07-14 16:29:11 · 428 阅读 · 0 评论 -
adb指令整理贴
请记住:指令是死的,人是活的。看清指令理解里面的意思,然后自己测试搞明白。不提供任何技术支持。贴内命令行内容功能介绍:1. adb设置模拟器属性imei、imsi、手机号、sim卡号2. adb设置充电模式3. 开启|关闭飞行模式4. 获取所有已安装程序apk路径和包名5. adb对指定设备执行指令6. 安装应用7. 删除应用数据8. 卸载应用9.转载 2017-07-13 13:52:42 · 855 阅读 · 0 评论 -
通过 adb命令发送广播
我们经常用到模块设备发送广播,此处记录一下:首先进入adb 使用命令: adb shell发送广播例: am broadcast -a action.com.custom.broadcast.quit --es package "com.test.broadcast" am broadcast 后面为key 加参数 具体见: [-a ][-转载 2017-07-13 11:07:51 · 3201 阅读 · 0 评论 -
Activity的四种启动模式-图文并茂
1、对于使用standard 模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例。例如A启动A,A再接着启动A,A继续启动A,然后再分别出栈,如图所示2、当活动的启动模式指定为 singleTop,在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。3、当活转载 2016-07-11 17:53:03 · 333 阅读 · 0 评论 -
Android中使用Handler机制更新UI的三种解决方案
使用Handler其实不得不与Android中的线程或者说Java中的多线程扯上关系。本篇文章只会用到最基本的线程使用,不会涉及太难的,关于Android的线程我们以后再讨论。在Android中每新建一个Activity,该Activity(理解为界面)就是一个线程,是一个主线程,也称之为UI线程。主线程可以更新界面元素,不会出现问题。每当新建一个线程new Thread,该线程就是一个子线程转载 2016-07-11 17:06:58 · 4545 阅读 · 0 评论 -
Android Asynctask与Handler的比较,优缺点区别,Asynctask源码
1 AsyncTask实现的原理,和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:l 简单,快捷l 过程可控使用的缺点:l 在使用多个异步操作和并需要进行Ui转载 2016-04-01 17:49:44 · 2023 阅读 · 0 评论 -
java synchronized详解
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问ob转载 2016-04-15 11:08:57 · 242 阅读 · 0 评论 -
AsyncTask执行的注意事项
1. AsyncTask对象不可重复使用,也就是说一个AsyncTask对象只能execute()一次,否则会有异常抛出"java.lang.IllegalStateException: Cannot execute task: the task is already running"2. 在doInBackground()中要检查isCancelled()的返回值,如果你的异步任务是可以转载 2016-04-18 10:44:07 · 355 阅读 · 0 评论 -
Android实战技巧:深入解析AsyncTask
AsyncTask的介绍及基本使用方法关于AsyncTask的介绍和基本使用方法可以参考官方文档和Android实战技巧:多线程AsyncTask这里就不重复。AsyncTask引发的一个问题上周遇到了一个极其诡异的问题,一个小功能从网络上下载一个图片,然后放到ImageView中,是用AsyncTask来实现的,本身逻辑也很简单,仅是在doInBackground中用HT转载 2016-04-18 11:23:10 · 232 阅读 · 0 评论 -
Android研究院之应用开发线程池的经典使用
有一段时间没写博文了,今天抽空总结一下,也希望能通过自己写的这些文章,加深理解的同时能帮助在技术方面有疑点的朋友搞清楚个所以然来,由于经常会在网上或群里看到有朋友会问线程方面的东西,就像我一个朋友他们老师讲的,J2SE、J2EE里面使用的线程方面的东西可能不是太多,但是在Android开发里面,玩的就是线程(UIThread)!好了,废话就说这么多吧转载 2016-04-18 14:10:02 · 499 阅读 · 0 评论 -
桌面widget详解(一)——基本demo构建
目录(?)[+]前言:这段时间真的是有点堕落了,没怎么看书,项目也做的乱七八糟,基本没什么长进,好像男人也有生理期一样,每个月总有那么几天提不起精神,等自己彻底感到罪恶感的时候再重新整装前行。这几天做桌面widget,现将所涉及内容整理分享给大家。写博客时间长了,觉得只是把学到的知识写出来才算是已经学会了的。这也算是强迫症了吧。今天头有点痛,心情不太好,就不多请废话了,估计也没转载 2016-04-20 15:48:10 · 434 阅读 · 0 评论 -
[Android实例] Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式
android线程池的理解,晚上在家无事 预习了一下android异步加载的例子,也学习到了一个很重要的东东 那就是线程池+缓存 下面看他们的理解。[size=1.8em]Handler+Runnable模式我们先看一个并不是异步线程加载的例子,使用 Handler+Runnable模式。这里为何不是新开线程的原因请参看这篇文章:Android Runnable 运行在那转载 2016-04-18 14:20:18 · 340 阅读 · 0 评论 -
桌面widget详解(二)—— 基本的与service通信
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]前言:发现只有让自己忙起来,内心才会感到舒畅,才没有罪恶感,男人好像也有大姨妈,一个月总想懒那么几天,懒到极限的时候就又开始继续前行。哈哈相关文章:1、《桌面widget详解(一)——基本demo构建》2、《桌面widget详解(二)—— 基本的与service通信》转载 2016-04-20 15:49:51 · 612 阅读 · 0 评论 -
桌面widget详解(三)——桌面widget中的控件交互方法
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]前言:其实桌面widget桌面交互也是一个大坑,我在开发中遇到了真是一个又一个的问题,其中问题很多,主要原因还是android对widget的支持不够完美,比如remoteView传送数据太大就会崩等,无缘无故widget不响应等等,但在开发中逐渐琢磨,解决方法总还是有的,另外,我答应了一个转载 2016-04-20 15:50:45 · 430 阅读 · 2 评论 -
桌面widget详解(四)——桌面音乐播放器(实战)
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]前言:这将是这个系列的最后一篇了,我写这几篇文章也是累的快不行了,再写就真的要吐了,言归正转,前面三篇已经把widget中涉及到的基本知识基本上讲完了,今天我们就做一个小例子,看看桌面音乐播放器widget是怎么做出来的。相关文章:1、《桌面widget详解(一)——基本de转载 2016-04-20 15:51:42 · 579 阅读 · 0 评论 -
HandlerThread 和 Handler
HandlerThread继承于Thread,所以它本质就是个Thread。与普通Thread的差别就在于,它有个Looper成员变量。这个Looper其实就是对消息队列以及队列处理逻辑的封装,简单说就是 消息队列+消息循环。当我们需要一个工作者线程,而不是把它当作一次性消耗品,用过即废弃的话,就可以使用它。Handler在android里负责发送和处理消息。它的主要用途有: 1转载 2016-04-01 17:40:19 · 515 阅读 · 0 评论 -
“permission is only granted to system apps ” eclipse 调试修改
在AndroidManifest.xml中使用了如下的配置:就会报错:Permission is only granted to system apps原因如下:此类权限仅授予系统级应用,可以修改下Link Error Checking项的安全级别;In Eclipse: Window -> Preferences -> Android -> Lint Error Ch转载 2016-04-01 10:06:04 · 665 阅读 · 0 评论 -
安卓开发如何延时执行
我们在安卓开发中,有时候会遇到需要一个程序推迟一段时间执行,也就是延时执行,比如说App首页显示定格3秒,然后自动跳到登录页的情况,这个怎么做呢?本文参考网上,整理了一下几点,供广大安卓开发者参考,希望对读者有所帮助。 一、以定时器的方式实现延时 TimerTask task = new TimerTask(){ public void run()转载 2016-07-11 15:55:38 · 1043 阅读 · 1 评论 -
Android LayoutInflater详解
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。具体作用:1、对于一个没有被载入或者想要动态载入的界面,都需要使用L转载 2016-06-13 13:38:44 · 302 阅读 · 0 评论 -
Android开发实践:使用Service还是Thread
原文出处: tickTick的博客 Service是Android的四大组件之一,被用来执行长时间的后台任务,同样,线程也可以实现在后台执行任务,它们的区别在哪呢?何时使用Service何时使用Thread呢?今天我也来说说我的理解和总结。首先,需要了解Service的几个特点。(1) 默认情况下,Service其实是运行在主线程中的,如果需要执行复杂耗时的操作,必须在转载 2016-05-12 10:15:37 · 283 阅读 · 0 评论 -
AsyncTask的介绍
在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验。但是在子线程中无法去操作主线程(UI 线程),在子线程中操作UI线程会出现错误。因此android提 供了一个类Handler来在子线程中来更新UI线程,用发消息的机制更新UI界面,呈现给用户。这样就解决了子线程更新UI的问题。但是费时的任务操作转载 2016-03-28 14:25:11 · 223 阅读 · 0 评论