
Android应用
ljchlx
这个作者很懒,什么都没留下…
展开
-
Android进程保活招式大全
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ac4a0ea374c75371c08ce8作者:腾讯——张兴华目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。Android 进程拉活包括两个层面:A. 提供进程优先级,降低进程被杀死的概率B. 在...转载 2018-04-26 10:21:41 · 451 阅读 · 0 评论 -
Android am start 参数详解
am命令有很多个参数及使用方法,具体可参考官方网站:Android Debug Bridgeam的用法列表如下:[plain] view plain copy usage: am start [-D] [-W] [-P ] [--start-profiler ] [--R COUNT] [-S] [转载 2016-02-23 12:03:06 · 5210 阅读 · 0 评论 -
android工程下不能运行java main程序的解决办法
右击有main方法的类 ===> Run as ===> Run Configurations ===>双击java application ===> 单击有main方法的类===>选中classpath选项卡 ===> remove掉Bootstrap Entries下的android.jar ===> 然后点击advanced=转载 2015-09-01 10:11:39 · 504 阅读 · 0 评论 -
Android中实现静态的默认安装和卸载应用
最近好长时间都没有写blog了,主要是因为最近工作上的事以及下载Android源码的事耽误的(下载源码这件事会在后续的blog中写道,这个真的很有意义呀~~),那么今天来写点什么呢?主要的灵感来自于早上看新闻看到一篇文章说有一款应用在后台中卸载用户手机中的所有浏览器的app,不会被用户察觉,但是最后百度浏览器还是用反侦察技术找到这个邪恶的应用然后将其告上法庭了。那么我们就来看看怎么能够转载 2015-06-29 16:40:45 · 4632 阅读 · 1 评论 -
Ubuntu下Adb调试Android找不到设备的解决方法
Ubuntu下Adb找不到设备的解决方法首先按照 SDK 上的说明建立 udev 的 rules 文件,然后: 在 ubuntu 10.10 下通过usb连接 Android设备,使用 adb 时,会返回无法找到设备,解决办法如下: 1)原创 2011-10-11 23:42:19 · 6568 阅读 · 0 评论 -
Android 判断用户2G/3G/4G移动数据网络
在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以在 App 的设置模块里,让用户自己选择,在 2G / 3G / 4G 网络条件下,是否允许请求一些流量比较大的数据。通过 Android 提供的 TelephonyManager 和 ConnectivityManager 都可以获取到 N转载 2015-03-20 16:36:47 · 1045 阅读 · 1 评论 -
Java中System.loadLibrary() 的执行过程
System.loadLibrary()是我们在使用Java的JNI机制时,会用到的一个非常重要的函数,它的作用即是把实现了我们在Java code中声明的native方法的那个libraryload进来,或者load其他什么动态连接库。算是处于好奇吧,我们可以看一下这个方法它的实现,即执行流程。(下面分析的那些code,来自于android 4.2.2 aosp版。)先看一下这个方法的c转载 2014-11-26 15:37:01 · 1469 阅读 · 0 评论 -
关于/data/data/目录的一些重要结论
1. /data/data/com.your.packagename/files /data/data/com.your.packagename/databases 这两个目录,程序是可以操作的。可以在其中创建目录,向其中拷贝文件、删除文件等。 比较典型的用法是程序内置的数据库,初次使用时将其从assert拷贝到databases目录下。 另外,cont原创 2014-11-26 15:34:06 · 11723 阅读 · 2 评论 -
Android执行shell命令
一、方法/** * 执行一个shell命令,并返回字符串值 * * @param cmd * 命令名称&参数组成的数组(例如:{"/system/bin/cat", "/proc/version"}) * @param workdirectory * 命令执行路径(例如:"system/bin/") * @return 执行结果组成的字符串 * @throws IOExcept转载 2014-09-26 13:49:59 · 982 阅读 · 0 评论 -
apk反汇编之smali语法
类型Dalvik的字节码中拥有两个主要的类型:基类和引用类型。引用类型引用类型是对象和数组,其他的一切都是基类 基类被一个简单的字符描述。我没有提出这些缩写词———他们实际以字符串的形式存储于dex文件中他们被定义与dex格式网页文档中(在AOSP库中的路径是dalvik/docs/dex-format.html)V 空类型---仅仅可以用来作为返回类型Z转载 2014-06-12 01:04:41 · 880 阅读 · 0 评论 -
Android:onNewIntent()触发机制及注意事项
一、onNewIntent()在IntentActivity中重写下列方法:onCreate onStart onRestart onResume onPause onStop onDestroy onNewIntent1、其他应用发Intent,执行下列方法:onCreateonStartonResume发Intent的方法:转载 2014-03-16 16:31:03 · 836 阅读 · 0 评论 -
Android应用程序签名(官方文档中文版)
Android应用程序签名(官方文档中文版) 转载▼ 补充2011-05-24: 实践中, 用Eclipse的Export Wizard导出时, keystore所在的文件夹和导出的apk所在的文件夹,需要全英文命名. 如果路径中包含, wizard会出错 (Mac下如此,其他OS下尚未试过)概览And转载 2014-03-08 22:48:42 · 853 阅读 · 0 评论 -
android-getTextSize返回值是以像素(px)为单位的,setTextSize()以sp为单位
使用如下代码时,发现字号不会变大,反而会变小:size = (int) mText.getTextSize() + 1;mText.setTextSize(size);后来发现getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的,两者单位不一致才造成这样的结果。这里可以用setTextSize()的另外一种形式,可以指定单位:转载 2013-12-14 15:58:53 · 898 阅读 · 0 评论 -
adb shell 无法启动 (insufficient permissions for device)
adb shell 无法启动 (insufficient permissions for device)环境:Ubuntu 10.04 LTS ,Ophone SDK关键字:insufficient permissions for device出现如下错误信息:shily@hh-desktop:~$adb shellerror: insufficient per转载 2013-09-24 15:43:08 · 685 阅读 · 0 评论 -
ubuntu升级git
报错: fatal: git 1.7.2 or later required使用git提交github工程的时候, 报错: Java代码 Error: The requested URL returned error: 403 while accessing # https://github.com/user/repo.git/info/refs原创 2013-04-02 12:55:12 · 1975 阅读 · 0 评论 -
android开发实现静默安装(root权限)
方式是将应用设置为内置的系统应用,注意事system/app目录下面,采用copy2SystemApp()方法就可以,注意chmod 777的权限,若是直接将apk拷贝到system/app目录,没有这个权限还是不能静默安装的。public class ApkController { /** * 描述: 安装 */ public stat转载 2016-04-07 09:15:21 · 853 阅读 · 0 评论 -
dumpsys alarm 格式解读
最近在搞应用唤醒排序,一致疑惑dumpsys alarm后的一些东西到底是什么意思?通过几番查阅资料,总结如下: 在安卓adb root进如命令行后(没有root或者root群组的权限执行不了该命令),会吐出一串东西,大家可自行测试。一直不明白,这些格式是什么意思,今天搜索一下,stackvoerflow中找到了一个比较牛的答案,原文地址: htt转载 2016-06-22 17:57:02 · 1748 阅读 · 1 评论 -
BroadcastReceiver 使用goAsync 执行异步操作
from: http://blog.youkuaiyun.com/u012414584/article/details/43731799BroadcastReceiver 生命周期 一个BroadcastReceiver 对象只有在被调用onReceive(Context, Intent)的才有效的,当从该函数返回后,该对象就无效的了,结束生命周期。一个BroadcastReceiver 对象转载 2016-11-29 09:53:49 · 1543 阅读 · 0 评论 -
support-v4拆分
网上对Android Support Library中各个依赖包介绍的中文资料太少了,结合官方文档和有限的参考资料做了一次总结,有描述得不对的地方还请指正。一、主工程、依赖包、jar包、android.jar、Android Support Library的关系 一个Android工程通常包括主工程和依赖包,依赖包又有两种形式:一种是单独的工程或者aar:在主工程的配置文件中转载 2016-10-19 15:40:24 · 2855 阅读 · 0 评论 -
Android APK优化工具Zipalign详解
Android SDK中包含了一个用于优化APK的新工具zipalign。它提高了优化后的Applications与Android系统的交互效率(俗话:“要致富先修路”,Android小组重新为Applications与Android系统之间搭建了一条高速公路),从而可以使整个系统的运行速度有了较大的提升。Android小组强烈建议开发者在发布新Apps之前使用zipalign优化工具,而且对于已转载 2016-09-08 17:08:24 · 6465 阅读 · 0 评论 -
Android low memory killer 详解
Android在内存管理上与linux有些小的区别。其中一个就是引入了Low memory killer .1,引入原因 Android是一个多任务系统,也就是说可以同时运行多个程序,这个大家应该很熟悉。一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程序时,可以很转载 2016-09-12 17:30:49 · 781 阅读 · 0 评论 -
android OOM_adj 的设置流程
流程如下:setOomAdj--> framework/base/core/jni/android_util_Process.cppandroid_os_Process_setOomAdj {sprintf(text, "/proc/%d/oom_adj", pid);int fd = open(text, O_WRONLY);sprintf(text, "%d转载 2016-09-12 17:29:40 · 4116 阅读 · 0 评论 -
LMK 工作机制
【Android】LMK 工作机制Android分析之LowMemoryKiller Android Kernel 会定时执行一次检查,杀死一些进程,释放掉内存。 那么,如何来判断,那些进程是需要杀死的呢?答案就是我们的标题:Low memory killer机制。 Low memory killer 则是定时进行检查。Low memor转载 2016-09-12 17:00:23 · 1624 阅读 · 0 评论 -
android procrank
Android procrank (/system/xbin/procrank) 工具,能够列出进程所占用的内存使用情况。顺序为从高到低。每个进程占用内存大小以 VSS, RSS , PSS, USS 的形式列出。为了简化描述,内存占用以页为单位表述,而不是字节。 通常每页为 4096 字节。 VSS ( 等同于 ps 命令列出的 VSZ) 是单个进程全部可访问转载 2016-09-12 15:49:49 · 887 阅读 · 0 评论 -
Android 性能分析工具dumpsys的使用
Android提供的dumpsys工具可以用于查看感兴趣的系统服务信息与状态,手机连接电脑后可以直接命令行执行adb shell dumpsys 查看所有支持的Service但是这样输出的太多,可以通过dumpsys | grep "DUMP OF SERVICE" 仅显示主要的Service的信息一、列出dumpsys所有支持命令 > adb shell转载 2016-06-22 18:03:25 · 1674 阅读 · 0 评论 -
Android 进程常驻(5)----开机广播的简单守护以及总结
终于一口气写完了,这是去年在一个月搞的成果,也算是对自己有了一个交代。其实保活就是两个要点:1、怎样监听到进程挂掉2、怎样把进程拉起来把这两个点都解决,问题就解决了。大家把我之前的文章都看完,会发现这两个点上都有好多种策略,那么在不同的手机上,两个点的不同策略就有多种组合方式,也也是我适配手机的主要手段。当时我适配测试的手机有转载 2016-06-22 18:02:05 · 782 阅读 · 0 评论 -
Android 进程常驻(4)----native保活5.0以上方案推演过程以及代码详述
上一篇我们通过父子进程间建立双管道,来监听进程死掉,经过测试,无耗电问题,无内存消耗问题,可以在设置中force close下成功拉起,也可以在获取到root权限的360/cleanmaster下成功存活。可是放到5.0+的系统就不能用了,为什么呢?我们来看源码4.4系统和5.0系统在系统force close的时候都做了什么修改。4.4.3的ActivityM转载 2016-06-22 18:01:18 · 813 阅读 · 0 评论 -
Android 进程常驻(3)----native保活5.0以下方案推演过程以及代码详述
今天继续昨天,一鼓作气,争取这个礼拜全部写完。上一篇文章留了一个别人的github链接,他里面的native保活实现方案也是大多数公司采用的方案。我们先来讲一下他的方案。他是首先开启一个c进程,将需要保活的service名字传递进去然后定时给自己主进程发一个intent,如果主进程挂掉了,就可以顺利拉起来保证存活。所以转载 2016-06-22 18:00:39 · 857 阅读 · 0 评论 -
Android 进程常驻(2)----细数利用android系统机制的保活手段
年前就开篇了android进程常驻,但是一直琐事不断,也一直没有静下心来整理,只是把项目传到的github,有好多朋友会来问我其中实现原理,其实也是一点一点推演过来的。我的想法就是按照我当时的推演过程,按顺序写完这几篇博客,也算是对那一个月努力的一个交代。上一篇讲了系统管理进程和强杀进程的过程原理,今天就开始想一下,在此基础上,如何实现保活,当然作为一个android开发,最先转载 2016-06-22 18:00:00 · 753 阅读 · 0 评论 -
Android 进程常驻(1)----开篇
正文:Android 进程常驻,顾名思义,就是要让我们的进程在内存中永远存在,换句话说就是进程保活,臭不要脸的说法就是关不了,杀不死,干不掉。这不是耍流氓,是很多场景如果要想为用户服务,就必须有一个进程常驻,以便在特定的时候做特定的事情。比如在Android中,许多BroadcastReceiver事件不支持静态注册,也就是说如果我想接受屏幕开关的系统广播,必须要在进程中动转载 2016-06-22 17:58:43 · 603 阅读 · 0 评论 -
Android 进程常驻(0)----MarsDaemon使用说明
这是一个轻量级的库,配置几行代码,就可以实现在Android上实现进程常驻,也就是在系统强杀下,以及360获取root权限下,clean master获取root权限下都无法杀死进程支持系统2.3到6.0支持大部分设备,包括三星,华为,oppo,nexus,魅族等等可以简单对开机广播进行保护github地址:https://github.co转载 2016-06-22 17:58:02 · 672 阅读 · 0 评论 -
JNI技术与Android应用
本文转自http://www.cnblogs.com/yc_sunniwell/archive/2010/07/05/1771149.html1. 什么是 JNI JNI是Java Native Interface的缩写。从Java 1.1开始,JNI标准成为java平台的一部分,它允许Java和其他语言进行交互。JNI一开始为C和C++而设计的,但是它并不妨碍你使用其他语转载 2013-02-17 17:49:37 · 564 阅读 · 0 评论 -
介绍 Android DropBoxManager Service
什么是 DropBoxManager ?Enqueues chunks of data (from various sources – application crashes, kernel log records, etc.). The queue is size bounded and will drop old data if the enqueued data exceeds转载 2013-01-31 17:34:21 · 10919 阅读 · 2 评论 -
Android源码导入eclipse
Android源码可以导入eclipse中方便研究1、将 源码目录\development\ide\eclipse 中的.classpath复制到源码根目录下。 并根据你源码中的具体情总稍作修改. 把源码中没有的工程或目录去掉,否则会多加东西到你的源码中.2、更改eclipse缓存设置 在eclipse安装根目录下修改eclipse.ini -X转载 2012-12-17 11:39:27 · 494 阅读 · 0 评论 -
Android 调用系统应用
显示网页: 1. Uri uri = Uri.parse("http://www.google.com"); 2. Intent it = new Intent(Intent.ACTION_VIEW,uri); 3. startActivity(it); 显示地图: 1. Uri uri = Uri.parse("geo:38.899533,-77.转载 2012-06-06 14:13:07 · 811 阅读 · 0 评论 -
Android中通过Intent 调用图片、视频、音频、录音、拍照
1. android中的一个隐藏的类:ContentType,其中定义了android支持的mimetype类型 类的路径: com.google.android.mms.ContentType2. Action为Intent.ACTION_GET_CONTENT的Intent可以设置许多参数,如: intent.putExtra("crop", "true");转载 2012-06-05 18:22:37 · 9922 阅读 · 0 评论 -
ADT 17+ 引入jar包导致的运行时异常
http://tools.android.com/recent/dealingwithdependenciesinandroidprojectshttp://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-1703-21 19:20:56.455: E/AndroidRuntime原创 2012-05-15 22:10:20 · 739 阅读 · 0 评论 -
gl参考
http://www.khronos.org/opengles/sdk/1.1/docs/man/http://blog.youkuaiyun.com/sdlgxxy/article/details/6227863http://dev.10086.cn/cmdn/wiki/ind原创 2011-10-12 19:20:31 · 453 阅读 · 0 评论 -
ubuntu 10.10搭建java开发环境
ubuntu 10.04环境下载&编译Android-2.2.1(froyo)源代码 1. 前言本文叙述了如何从零开始搭建基于Google官方Android 2.2.1(froyo)源码的开发环境,包括如何下载源代码、编译源代码,以及在模拟器中运行编译转载 2011-09-27 13:05:41 · 957 阅读 · 0 评论 -
Eclipse快捷键大全(转载)
来源:http://www.blogjava.net/action/articles/17339.htmlCtrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复转载 2011-08-23 19:29:46 · 599 阅读 · 0 评论