
Android
文章平均质量分 88
昨夜星辰_zhangjg
Android开发
展开
-
Android是如何使用selinux来保护系统属性的
Android是如何使用selinux来保护系统属性的尝试获取Android设备的序列号SerialNo1 Build.SERIAL新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入尝试获取Android设备的序列号Seri原创 2021-12-24 17:15:26 · 3764 阅读 · 2 评论 -
Android后台限制
Andriod后台限制汇总从Android开发者网站上,目前看到4种限制机制,分别是低电耗模式,应用待机模式,应用待机分组和省电模式。本文对这些后台限制模式进行简单的汇总。该文章的内容均来自于Android开发者网站。对于这些限制,本人没有全部实际测试,只是为了记录。此外,每个手机厂商可能会定制一些自己的逻辑,所以可能和Android开发者网站的描述可能不一致。低电耗模式低电耗模式就是doze模式。Android开发者网站对低电耗模式的描述如下:如果用户未插接设备的电源,在屏幕关闭的情况下,让原创 2021-05-19 18:33:27 · 12376 阅读 · 0 评论 -
如何在Activity中获取调用者包名,以及如何通过伪造mReferrerr让Activity无法获取调用者的包名
如何在Activity中获取调用者包名,以及如何通过伪造mReferrerr让Activity无法获取调用者的包名背景可选方案使用Binder.getCallingUid获取调用者的uid调用Activity的getReferrer方法调用Activity的getCallingPackage方法或者getCallingActivity反射Activity的mReferrer可以获取调用者包名mRe...原创 2019-11-27 22:23:42 · 7517 阅读 · 6 评论 -
实现拖拽删除的TouchListener
源码如下原创 2014-10-11 09:24:35 · 5769 阅读 · 0 评论 -
编码规范(补充)
1 成员变量以m开头2原创 2014-06-03 19:29:38 · 3084 阅读 · 3 评论 -
在Android源码环境下编译系统App使用第三方jar包的方法(备忘)
1 将要使用的jar包放入App的根目录, 即Android.mk所在原创 2014-10-11 10:29:27 · 5748 阅读 · 0 评论 -
android中dumpsys命令用法详解
在android手机上, 通过使用adb shell命令可以进入原创 2014-10-08 10:19:05 · 27086 阅读 · 1 评论 -
Android开发代码片段积累(一)
本博客积累Android开发中常用的原创 2014-05-30 17:41:51 · 4618 阅读 · 0 评论 -
解决ubuntu 64bit AndroidStudio中的SDK无法使用的问题
最近ntu开始在Ubu原创 2014-06-02 22:08:47 · 7218 阅读 · 1 评论 -
Activity的task相关
转载自: 古人學問無遺力,少壯工夫老始成。紙上得來終覺淺,絕知此事要躬行。南宋.陸遊《冬夜讀書示子聿(yù)》软件行业也是一样,多少前辈不遗余力的奋斗才出现了软件行业的繁荣的景象,其中已有不少成为大师级人物。今天我们站在伟人的肩膀上,自然会有不少的优势,但不要忘了,要在对技术的认知方面有所提升,仍需我们去实践,去实践。今天我们来讲一下Activity的task相关内容。转载 2014-06-15 17:03:33 · 3388 阅读 · 3 评论 -
调用系统Acitivity获取数据代理
public abstract class StartActivityForResultDelegate { private Activity mCurrentActivity; private int mReqCode; public StartActivityForResultDelegate(Activity currentActivity, int reqCod原创 2014-12-25 17:47:03 · 3754 阅读 · 0 评论 -
Android上实现仿IOS弹性ScrollView
前言IOS的UI和用户体验是它的优势, 与IOS相比, Android的UI和用户体验可能要差一些。 虽然Android版本已经到了4.4, 对系统的各个方法进行了大量实质性的优化, 但他的显示效果和交互体验依然不及IOS。 例如IOS上的很多控件都是带弹性的, 也就是用于拖拽一个控件到了该控件的边界, 但是控件依然可以随着手指的移动而移动一段距离。 这样的话, 给用户的感觉就不那么生原创 2014-02-17 09:59:59 · 17899 阅读 · 28 评论 -
Android Binder传递文件描述符原理分析
Android Binder传递文件描述符原理分析前言问题描述问题原因前言Binder是Android中最常用,最重要的进程间通信机制。我们知道,Binder不仅可以传递普通的数据,还可以传递文件描述符。本文尝试分析Binder传递文件描述符的原理,切入点是工作中遇到一个和文件藐视符相关的问题。本文讲解分析和解决该问题的思路,在分析该问题的过程中,Binder传递文件描述符的原理也会呈现出来。...原创 2018-10-29 11:30:16 · 8454 阅读 · 0 评论 -
Android Binder异常传递流程分析
Android Binder异常传递流程分析从一个异常日志开始到底在哪里抛出的异常App中调用栈分析ActivityManagerService中异常处理分析从一个异常日志开始作为Android程序员,经常会遇到如下的异常日志:AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo...原创 2018-10-26 20:02:59 · 6526 阅读 · 2 评论 -
Android消息循环实现原理分析
Android消息循环实现原理分析Android消息循环消息循环的创建实现原理分析1 Looper.prepare分析Looper.loop分析Android消息循环在Android中,如果一个线程有消息循环(如UI线程),那么其他线程可以获取它的Handler对象,使用这个Handler对象发送消息到消息循环所在的线程,这个线程收到这个消息后,可以做一些操作,最典型的就是子线程执行耗时任务,...原创 2018-10-31 17:05:35 · 1990 阅读 · 0 评论 -
Android中ps命令各字段的含义
Android中ps命令各字段的含义通过ps命令查看进程的状态,看到如下输出:USER PID PPID VSIZE RSS WCHAN PC S NAMEu0_a91 3140 356 2220664 85240 SyS_epoll_ 7f97b29798 S com.qiku.cardmanager各字段的意义...原创 2018-10-30 10:37:12 · 3350 阅读 · 0 评论 -
使用Android模拟器调试linux内核
使用Android模拟器调试linux内核为什么需要调试linux内核如何在Android上调试内核开发环境创建模拟器下载goldfish内核源码编译goldfish内核编译内核遇到的问题使用自己编译的linux内核启动模拟器使用gdb调试内核为什么需要调试linux内核最近几年一直在学习linux内核,源码也看过一部分,但是没有系统的分析。正好最近想研究Android上的sdcardfs源...原创 2018-11-27 16:52:57 · 9607 阅读 · 11 评论 -
Android9.x应用待机群组特性导致后台应用无法联网问题分析
Android9.x应用待机群组特性导致后台应用无法联网问题分析9.x增加的电源管理新特性1 应用分组2 查看和修改分组3 省电管理白名单源码分析9.x增加的电源管理新特性我们在工作中发现一个问题,我们的一个应用,启动时只启动一个后台服务,而不会启动界面。并且在后台服务中网络请求超时。但是如果启动一个activity之后,就可以正常联网。Android P(9.x)为了更加严格的限制后台应用...原创 2018-12-10 17:39:40 · 4955 阅读 · 1 评论 -
Android外置存储备忘
Android外置存储备忘本文是我和大牛同事的聊天记录,只是备忘。各位看官可能会觉得前言不搭后语,如果看不懂请勿喷。本人工作忙,没有时间仔细整理。A :为什么android的外置存储这块搞那么复杂/data/media挂到/mnt/runtime/(default,read,write)/emulated上,然后在进程创建的时候,/mnt/runtime/(default,read,w...原创 2019-01-07 18:09:53 · 1703 阅读 · 0 评论 -
Sqlite3中replace语句用法详解
由于自己的孤陋寡闻, 也由于之前的项目中, 很少参与过数据库模块的开发, 以至于前几天才知道Sqlite数据库也支持replace语句。 本文主要讲解在Sqlite中replace语句的行为,也算是学习笔记。此外, replace语句和update语句有相似的地方, 但是也有很多不同之处。 本文还要对比一下Sqlite中的 replace语句和update语句 。 在本例中使用如下数据库表:原创 2014-04-10 09:48:56 · 58805 阅读 · 5 评论 -
Android中为ViewGroup设置selector无效果
在测试程序时, 这个selector无论如何也没有任何效果!!!将这个selector文件检查了很多遍, 没发现什么错误。 这让我很抓狂啊。 然后想到是不是因为是为ViewGroup设置的selector而不是为单一的控件设置的selector。 所以, 我在布局中加入了一个Button, 然后把这个selector设置到Button上, 它是有效果的。 难道ViewGroup不能使用selector吗? 在网上搜了半天, 也没有找到答案。所以决定先写代码逻辑, 在代码中为这个条目设置点击监听:原创 2014-04-11 14:31:13 · 6644 阅读 · 3 评论 -
关于Android中的消息机制和异步
Android中的异步android中的应用开发,不像是写控制台程序,他是一种和UI相关的程序。几乎所有的UI应用程序都会有这样的要求:不能在主线程(即UI线程)中做耗时的操作。因为一般情况下,主线程负责处理消息和更新界面。其实更新界面也是基于消息驱动的。在android设备上, 我们做的每个操作,比如按下菜单键或返回键,或者点击了界面上的一个按钮,这些事件 都会被封装成一个消息,发送到主原创 2013-10-22 17:48:09 · 6641 阅读 · 0 评论 -
关于android应用开发中性能优化的一些建议
1 调用频繁的方法尽快返回, 减少耗时操作这种方法有一个特点,那就是由程序员覆盖系统中的方法来实现, 并且不是由程序员显示的调用而是由系统框架调用在android开发中有一个具体的例子: Adapter的getView()方法该方法被框架调用,以获得listview中的一个条目. 这个方法在listview初始化或上下滑动listview时会被多次调用所以该方法要尽快返回一个vie原创 2013-10-10 15:21:35 · 3944 阅读 · 0 评论 -
Android上实现仿IOS弹性ListView
前言众所周知,与android相比,IOS的界面更炫,用户体验更好。现在Android虽然已经到了4.4,在UI上已经得到了很大的提升,但是依然和IOS有一定的差距。例如,IOS上的控件在拖拽时会有弹性效果,在拖拽控件时,控件会随手势的移动而移动,并且停止拖拽放开手指时。本人没有开发过IOS程序,对IOS的了解不是很深,但是从搞IOS开发的同事那里得知,控件会回弹这种效果是IOS默认的。A原创 2013-12-23 21:51:33 · 7260 阅读 · 4 评论 -
Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分
build target存在于android项目中的工程文件project.properties中,是eclipse自动创建(build)工程时用到的一个设置。project.properties文件代码minSdkVersion,targetSdkVersion是android清单文件AndroidManifest.xml中标签的属性AndroidManifest.xml原创 2014-01-23 13:14:18 · 79565 阅读 · 25 评论 -
参加工作四个月了 -- 关于项目开发,项目管理,技术学习,有效沟通和开发技巧的总结
自从2013年7月3日正式入职以来,已经参加工作将近4个月。加上毕业之前两个多月的实习,这样算来在这个公司也工作了半年的时间了。并且在这个月,我经过了试用期,正式成为公司员工。在这里对这几个月的工作做一下总结。 首先简单列举一下在这几个月里,我所参与的项目以及在每个项目中所做的具体工作。项目列表以下部分是我在工作中的感悟 一 关于业务和需求原创 2013-10-24 23:15:02 · 7517 阅读 · 1 评论 -
Android4.0网络操作必须放在子线程中
好久没写技术博客了。关于为什么这么久没写,是因为写伤了。写过几篇博客后,深刻感觉到要把博客写好是一件很累的事情,花的时间也肯定不会少。记得前段时间写Android中Activity四种启动模式和taskAffinity属性详解这篇博客,前前后后写了一个星期,从那之后真有点怕写这么长的博客了。所以, 以后尽可能不写这种总结性的,篇幅较长的博客,因为自己水平真的有限,写这种长博客太累, 写了之后别人还原创 2013-10-22 16:22:47 · 6577 阅读 · 4 评论 -
Android代码贡献者编码风格指南
原文链接: https://source.android.com/source/code-style.html翻译 2014-05-07 10:28:46 · 4343 阅读 · 4 评论 -
Android系统中标准Intent的使用
一 Android系统用于Activity的标准Intent1 根据联系人ID显示联系人信息 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); //显示联系人信息 intent.setData(Uri.parse("content://contacts/people/492")); st原创 2013-09-02 12:26:40 · 40827 阅读 · 9 评论 -
Android开发中adb命令的常用方法
Android的SDK中提供了很多有用的工具,在开发过程中如果能熟练使用这些工具,会让我们的开发事半功倍.adb是SDK提供的一个常用的命令行工具,全称为Android Debug Bridge,用于在调试时连接本机和手机设备. adb有很多命令,本文只列出一些常用的命令,要查看所有的adb命令和用法, 可以在命令行中输入adb进行查看.这些命令都是根据本人在开发原创 2013-08-28 10:47:45 · 42193 阅读 · 7 评论 -
实例剖析单例模式的局限性
单例模式是23中设计模式之一,我认为单例模式是一种极其简约的模式。因为在设计或开发中,肯定会有这么一种情况,一个类只能有一个对象被创建,如果有多个对象的话,可能会导致状态的混乱和不一致。这种情况下,单例模式是最恰当的解决办法。在23种设计模式中,单例模式应该是最简单的一种了。但是要把单例模式用的恰到好处还是有一定的困难的,尤其是在实际应用中,还需考虑很多因素。本文主要讲解单例模式的几个原创 2014-01-10 23:57:47 · 5280 阅读 · 4 评论 -
Android中Activity四种启动模式和taskAffinity属性详解
在android应用开发中,打造良好的用户体验是非常重要的。而在用户体验中,界面的引导和跳转是值得深入研究的重要内容。在开发中,与界面跳转联系比较紧密的概念是Task(任务)和Back Stack(回退栈)。activity的启动模式会影响Task和Back Stack的状态,进而影响用户体验。除了启动模式之外,Intent类中定义的一些标志(以FLAG_ACTIVITY_开头)也会影响Task和原创 2013-09-06 23:40:07 · 115660 阅读 · 62 评论 -
Android上用模板方法模式实现具有自动重用View功能的Adapter
在Android App的开发中, ListView和GridView等控件是使用非常频繁的控件。 这两个控件的特点是使用数据适配器来显示数据, 并且在数据项较多的时候, 可以重用用于显示数据的条目(这里的条目指的是ListView或GridView中用于显示每一个数据项的子View)。本文的重点并不是讲解ListView和GridView的内部实现或使用方法,但是后文讲解的自定义Adapter是被ListView和GridView所调用的,所以在这里简单提及ListView和GridView。原创 2014-02-20 11:52:01 · 4277 阅读 · 8 评论