android
文章平均质量分 78
三火哥
android系统开发
展开
-
安卓集成第三方APK
修改权限:$(shell chmod -R a+w $(LOCAL_PATH))include $(CLEAR_VARS)# Module name should match apk name to be installed.LOCAL_MODULE := LSF-Device-Phone-RoWLOCAL_SRC_FILES := LSF-Device-Phone-RoW/$(LOCAL_MODULE).apkLOCAL_MODULE_TAGS := optionalLOCAL_MODULE转载 2021-12-02 11:26:31 · 1802 阅读 · 0 评论 -
Android7.1 Settings加入永不休眠选项
前言 做车机的公司没有系统应用工程师,只要涉及到系统的所有问题,全部由系统工程师解决,测试提出需要在Settings中加入永不休眠选项,下面是具体实现。实现zhoujy@TP:~/data/android/sc826_cn_01_00_a620/msm_8953_git$ git show 19cfd7ff7d73f1835def9eb3f7d97db524f2081ccommit 19cfd7ff7d73f1835def9eb3f7d97db524f2081cAuthor: zhouj..原创 2020-10-15 18:02:23 · 1274 阅读 · 2 评论 -
faad2-2.7在ubuntu上面编译过程
说明 目前android上面不支持G711A,项目中有时候需要将音频文件ACC转成G711A,或者G711A转成ACC格式的,这时候就需要用到三方库faad2。步骤1.将faad2库解压到自己的目录,比如:/home/zhoujy/faad2-2.7。2.下载android-ndk-r14b-linux-x86_64.zip文件,解压到zhoujy这个目录下。3.在faad2-2.7目录下新建一个build_android.sh文件。NDK目录就是上面下载和解压的android...原创 2020-07-09 19:47:50 · 642 阅读 · 0 评论 -
Logcat 命令行工具
ogcat 是一个命令行工具,用于转储系统消息日志,包括设备抛出错误时的堆栈轨迹,以及从您的应用中使用 Log 类写入的消息。本页面介绍了命令行 Logcat 工具,但在 Android Studio 中,您也可以从 Logcat 窗口查看日志消息。要了解如何在 Android Studio 中查看和过滤日志,请参阅使用 Logcat 写入和查看日志。命令行语法要通过 adb shell 运行 Logcat,一般用法如下: [adb] logcat [<option>] ..转载 2020-07-02 11:09:46 · 1224 阅读 · 0 评论 -
Android跨进程通信:图文详解 Binder机制 原理
前言如果你接触过 跨进程通信 (IPC),那么你对Binder一定不陌生 虽然 网上有很多介绍 Binder的文章,可是存在一些问题:浅显的讨论Binder机制 或 一味讲解 Binder源码、逻辑不清楚,最终导致的是读者们还是无法形成一个完整的Binder概念 本文采用 清晰的图文讲解方式,按照 大角度 -> 小角度 去分析Binder,即: 先从 机制、模型的角度 去分析 整个...转载 2020-04-09 14:53:04 · 275 阅读 · 1 评论 -
造成OOM(内存溢出)的几种情况
数据库Cursor没关。 当我们操作完数据库后,一定要调用close()释放资源。 构造Adapter没有使用缓存ContentView。 @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vHolder =...转载 2020-04-08 16:41:47 · 928 阅读 · 0 评论 -
Android 进程保活招式大全
目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。Android 进程拉活包括两个层面: 提供进程优先级,降低进程被杀死的概率 在进程被杀死后,进行拉活 本文下面就从这两个方面做一下总结。1. 进程的优先级Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,最终...转载 2020-04-02 17:19:56 · 747 阅读 · 0 评论 -
23种设计模式
设计模式:http://c.biancheng.net/view/1348.html原创 2020-04-01 16:43:07 · 83 阅读 · 0 评论 -
一种获取手机信号强度的方法
出于项目需求,需要获取到手机信号强度。本人不才,以前都是采用toString()的方法,然后截取,得到强度,但发现很多机型都不适合。苦苦在API中搜寻,结果都不是很理想。最后在Stackoverflow上发现了一个方法,试之,发现大部分机型适合,故写成方法,以便后续需要。但此方法还不是很全面,无法保证所有机型都适合,若各位大虾有更好的方法,还望不吝赐教。 /** * 获取手机...转载 2020-03-18 14:36:19 · 1643 阅读 · 2 评论 -
Retrofit2 使用FastJson作为Converter
Retortfit2Retrofit是由Square公司出品的针对于Android和Java的类型安全的Http客户端,网络服务基于OkHttp 。 个人觉得更为准确的说法是,Retrofit是OkHttp的一个包装工具类,可以更加方便的调用Restful API。Retrofit2 默认提供的ConverterGson: com.squareup.retrofit2:converter-...转载 2020-03-12 22:29:23 · 1402 阅读 · 0 评论 -
ANDROID-封装JSON数据(JSON对象/JSON数组)
Android-封装JSON数据(JSON对象/JSON数组),一般情况下不会在Android端封装JSON的数据,因为封装JSON的数据是在服务器端进行封装了,Android更多的工作是解析(JSON对象/JSON数组)而且在服务端封装JSON会更加简单灵活: 例如:JsonTools.createJsonString("persons", list);/JsonTools.cr...转载 2020-03-11 19:39:02 · 596 阅读 · 0 评论 -
APK反编译工具与使用方法
apkTool:https://ibotpeaches.github.io/Apktool/操作步骤: WIN7下载附件apktool压缩包,解压得到apktool文件夹,里面包含apktool.bat和apktool.jar启动Window命令行窗口,进入到apktool文件夹执行如下命令:apktool>apktool d ../apk/es.apk 这里es.apk放到...转载 2020-03-06 12:14:25 · 284 阅读 · 0 评论 -
Android O 连接WiFi AP流程梳理
前言:之前已经梳理了WiFi的启动、扫描,扫描到了AP,是时候看下连接AP的流程了。1. WIFI AP简介WiFi AP即WIFI Acess Point,它的安全性分无、WEP、WPA/WPA2 PSK和 802.1x EAP,我们日常生活中用的最多的应该是WPA/WPA2 PSK,连接该类型的热点的时候只需要输入对应的密码就好了。本文梳理也只梳理这种最常见类型的AP连接流程,当然...转载 2020-02-26 11:41:04 · 1229 阅读 · 0 评论 -
Android wifi打开流程(Android O)
根据自己的理解整理了AndroidO的wifi启动流程,为便于理解,绘制了AndroidOwifi架构图。有理解不到之处和错误之处,请各位指出,一起学习。一.AndroidOwifi架构:由于AndroidO的Treble化,AndroidO上Wifi架构变动也比较大,尤其是JNI层、Hal层、HIDL层。下图是AndroidOTrebleHIDL大致结构:...转载 2020-02-26 10:17:45 · 992 阅读 · 0 评论 -
android studio打patch
git生成patch和应用patch: 1)、git diff > test.patch (生成patch) 2)、git apply test.patch (打上patch)原创 2020-02-18 19:06:30 · 1184 阅读 · 0 评论 -
recovery下的init.rc语法解析
#import <filename>一个init配置文件,扩展当前配置。import /init.recovery.${ro.hardware}.rc# 触发条件early-init,在early-init阶段调用以下行on early-init # Apply strict SELinux checking of PROT_EXEC on mmap/mprotect...转载 2020-01-04 10:46:31 · 900 阅读 · 0 评论 -
安卓系统启动脚本init.rc说明文件readme.txt翻译
本说明文件位于system/core/init/readme.txt本文参考深入解析安卓系统一书,进行翻译,版权部分归书的作者 刘超,资深Android专家,系统架构师。博客地址:http://blog.csdn.net/u013234805/article/details/45438219Android Init Language---------------------T...转载 2020-01-04 09:52:15 · 391 阅读 · 0 评论 -
Android Activity 的详细启动过程分析
Android Activity 的详细启动过程分析在正式内容开始之前,我建议读者朋友下载platform/framework/base源代码备用,我们可以到 Android 源码托管站下载:https://android.googlesource.com/,可以下载具体某个模块源代码,可以指定分支或者 tag,需要翻阅 GFW。另外如果你没有翻阅 GFW 的条件的话,可以使用清华大学镜像...转载 2020-01-03 11:23:41 · 1541 阅读 · 0 评论 -
android studio中导入framework.jar包编译,运行全部通过
调用自己定义的api方法: 1》、在Z:\C10\src\LINUX\android\out\target\common\obj\JAVA_LIBRARIES\framework_intermediates目录中找到classes.jar,重命名为framework.jar 2》、然后将该jar包放入libs中, 3》、添加compileOnly files('libs/fram...原创 2019-12-25 14:15:25 · 858 阅读 · 0 评论 -
增加多流
一、简介 本文主要介绍如何android6.0添加localsocket通信、添加自定义uid的权限问题,以及增加虚拟网卡。二、详细介绍 添加selinux权限:1.src/LINUX/android/device/qcom/sepolicy/Android.mk--- a/src/LINUX/android/device/qcom/sepolicy/Andro...原创 2019-12-21 10:03:43 · 628 阅读 · 0 评论 -
android调用python脚本
前言文章可以帮你解决android下调用python方法获取返回值,往python函数中传参等。开发环境基于Android studio.详细介绍一.环境准备在官网下载最新的CLE for Android 开发包,其中包含示例工程和API文档。解压开发包,拷贝如下文件http://www.srplab.com/cn/files/products.html你可能会遇到的问题...原创 2019-11-22 09:01:21 · 8703 阅读 · 9 评论 -
在Android的运行时执行嵌入Java的Groovy脚本
从2.4版开始,groovy支持android。我想在我的Android应用程序中运行一个嵌入Java中的Groovy脚本。本网站解释这是可能的:http://melix.github.io/blog/2014/06/grooid2.html适应groovy语言的一个困难是,尽管如此,groovy是一种高度动态的语言。它的能力之一是在运行时执行脚本。如果我们想输入一个groovy在设备上...转载 2019-11-21 17:39:00 · 444 阅读 · 0 评论 -
android6.0 解决wifi不休眠问题
前言在Settings里面,选中电池,查看详细电量使用记录,发现手机在休眠状态下,WLAN一直不休眠(使用电量显示一条直线),分析原因发现在WLAN-》高级-》在休眠状态下保持WLAN网络连接是始终,将默认选项改为永不,或者仅限充电时就能解决WLAN不休眠问题。修改内容zhoujinyan@bdsvr6-S2600CP:~/C10/src/LINUX/android$ git d...原创 2019-11-13 10:10:04 · 1758 阅读 · 0 评论 -
解决CPU使用过高问题
android层方法一:1.用android studio打开android Profile工具2.可以选择添加哪个进程进行监听:3.点击第一个CPU进入CPU监听界面4.点击record记录cpu使用情况:5.以wifi为例,开始操作手机设置里面的wifi开关,操作完后,点击停止。这时候会生成cpu使用情况表:表是按照执行的顺序显示,将鼠标移动到上面可以看到具体...原创 2019-11-04 17:06:51 · 1490 阅读 · 0 评论 -
Native进程之Trace原理
一. 概述 当发生ANR(Application Not Response,对于Java进程可通过kill -3向目标进程发送信号SIGNAL_QUIT, 输出相应的traces信息保存到目录/data/anr/traces.txt;而对于Native进程可通过 debuggerd输出traces信息。 可通过一条命令来获取指定Native进程的traces信...转载 2019-11-04 16:30:57 · 372 阅读 · 0 评论 -
解读Java进程的Trace文件
分析Art虚拟机的trace原理,相关源码都位于/art/runtime目录:/art/runtime/ - signal_catcher.cc - runtime.cc - intern_table.cc - thread_list.cc - java_vm_ext.cc - class_linker.cc - gc/heap.cc...转载 2019-11-04 16:02:48 · 1318 阅读 · 0 评论 -
ANR解决方法研究
前言不论从事安卓应用开发,还是安卓系统研发,应该都遇到应用无响应(简称ANR)问题,当应用程序一段时间无法及时响应,则会弹出ANR对话框,让用户选择继续等待,还是强制关闭。绝大多数人对ANR的了解仅停留在主线程耗时或CPU繁忙会导致ANR。面试过无数的候选人,几乎没有人能真正从系统级去梳理清晰ANR的来龙去脉,比如有哪些路径会引发ANR?有没有可能主线程不耗时也出现ANR?如何更好的调试...转载 2019-11-04 15:19:34 · 4092 阅读 · 0 评论 -
系统添加自定义的UID android4.4
1、简介根据业务需要,需要系统自定义UID,设置相应的权限。2、修改系统,自定义UI 1)、添加UID: 在src/LINUX/android/frameworks/base/core/java/android/os/Process.java中自定义int类型的,静态常量:MCWILL_UID@@ -144,6 +144,7 @@publicclassProcess...原创 2019-11-02 10:25:39 · 1174 阅读 · 0 评论 -
将anr日志拷贝到SD卡里面去 android6.0
系统anr日志如果没有root手机,就没办法拿到,所以需要修改系统,将ANR日志拷贝到sdcard目录里面。1.在init.qcom.corelog.sh文件中添加创建目录和拷贝文件的动作:--- a/src/LINUX/android/device/qcom/msm8952_64/init.qcom.corelog.sh+++ b/src/LINUX/android/device/q...原创 2019-11-01 16:51:42 · 407 阅读 · 0 评论 -
去掉系统错误弹框 android6.0
之前公司有个需求就是当发生异常时,系统弹的那个对话框需要去掉。修改如下:原创 2019-11-01 09:40:54 · 643 阅读 · 0 评论 -
Android 6.0 策略路由
实现648 Android 6.0端与410 Linux端通过Switch通信1. 虚拟网卡配置648中延用638中方法在有线网络接口eth0上创建虚拟网卡eth0.1并设置ip 10.66.1.3用以与410地址10.66.1.2通信。echo "busybox ifconfig eth0:1 10.66.1.3 up"# set VLAN 1 on eth0 and set i...转载 2019-09-10 15:55:59 · 1125 阅读 · 1 评论 -
app选择指定的网络类型
1. app 可以用ConnectivityManager.setProcessDefaultNetwork() 接口来选择需用的网络类型,例如下面代码选择移动网络上网: privatevoidchooseNetwork(){ ConnectivityManagercm=(ConnectivityManager)this.getSystemService(C...原创 2019-09-16 10:16:11 · 779 阅读 · 0 评论 -
Android 8.0权限管理源码分析
Android 8.0权限管理源码分析 Android 8.0 Notification 源码分析(一) Android O 8.0 Notification 源码分析( Android 8.0 动态权限变更 Android:8.0中未知来源安装权限 Android 8.0 Service源码分析:启动流程及后台限 Android权限管理PermissionsDispatcher A...转载 2019-09-19 16:41:32 · 1748 阅读 · 0 评论 -
android8.1 MediaProvider中添加字段
在相机拍的照片中添加定位信息(市,区),并且在数据库中保存:--- a/src/com/android/providers/media/MediaProvider.java+++ b/src/com/android/providers/media/MediaProvider.java@@ -721,13 +721,13 @@ public class MediaProvider exten...原创 2019-02-16 11:54:21 · 504 阅读 · 0 评论 -
android6.0修改默认dns
我们的手机做了个多流功能,该功能可以实现上google,在这个过程中,创建了个虚拟网卡tun0,如下图:有了这个虚拟网卡,然后我们需要将默认DNS改为tun的DNS。修改如下:1.ConnectivityService.java修改如下:2.Tethering.java修改如下:3.修改后查看DNS结果如下:通过验证发现,以上修改只是修改了配置文件,但是...原创 2019-09-03 16:01:34 · 2472 阅读 · 0 评论 -
android6.0 手机内存满打开应用报错隐藏系统出现异常对话框
android手机将内存填充满后,打开应用由于没有内存,应用打开的时候需要写文件或者写数据库,就会报错,小米手机的做法是将系统的错误弹框去掉,然后应用自动闪退,隐藏对话框解决方法如下:...原创 2019-07-18 18:51:06 · 301 阅读 · 0 评论 -
android8.1系统刘海屏适配修改记录
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.javaindex c670351..01dadb2 100644 (file)--- a/core/java/android/view/View.java+++ b/core/java/android/view/View.java@@...原创 2019-04-01 11:16:02 · 799 阅读 · 2 评论 -
android系统资源添加-刘海屏宽高
index 6bac703..3f21cbd 100644 (file)--- a/core/res/res/values/dimens.xml+++ b/core/res/res/values/dimens.xml@@ -609,6 +609,10 @@ autofill_save.xml layout; this dimension is just used to avoi...原创 2019-04-01 10:52:56 · 204 阅读 · 0 评论 -
更新系统api接口需要同时提交current.txt android
更新android系统接口后,只是提交java文件会导致其他人编译不通过,需要提交/framework/base/api下面更新的三个问文件:原创 2019-03-29 20:42:37 · 1662 阅读 · 0 评论 -
failed to set system property
android8.1系统应用在使用SystemProperties.set(String key, String value)时报java.lang.RuntimeException: failed to set system property错误,修改方式如下:(原文内容是:SystemProperties.set("persist.vendor.debug.camera.pic...原创 2019-03-12 14:30:58 · 9438 阅读 · 0 评论