![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android笔记
sunxiaolin2016
只争朝夕
展开
-
mk文件中配置lib arm64 文件夹
使用 android:sharedUserId="android.uid.system"后,有时候需要配置lib arm64 文件夹。$(shell mkdir -p (PRODUCTOUT)/system/app/(PRODUCT_OUT)/system/app/(PRODUCTOUT)/system/app/(LOCAL_PACKAGE_NAME)/lib/arm64)例如://...include $(BUILD_PREBUILT)include $(CLEAR_VARS)LOCAL_原创 2020-06-12 18:24:08 · 1312 阅读 · 0 评论 -
使用Android Parcelable code generator自动生成Parcelable代码
在使用Parcelable对数据进行序列化时,有一些代码是固定的,可以使用插件来自动生成。在Android Studio–>Settings–>Plugins,搜索Parcelable,安装Android Parcelable code generator插件。安装完成后,重启Android Studio;编写java文件,实现Parcelable接口;右键–>Generate–>Parcelable,或者直接 Alt + Insert,Parcelable,就可以直接生成P原创 2020-05-21 16:12:46 · 2330 阅读 · 0 评论 -
获取U盘路径和读取U盘文件
1.只有系统应用才有权限读写U盘文件2.使用StorageVolume,通过反射的方式获取U盘的绝对路径,系统应用不需要反射//AudioDatabase.java//数据库操作/**A helper class that manages all operations relating to the database. This class should notbe accessed directly. Instead, {@link AudioStorage} interfaces d原创 2020-05-21 16:02:13 · 2781 阅读 · 0 评论 -
Linux sed命令批量替换字符串
命令如下:sed -i "s/oldStr/newStr/g" `grep oldStr -rl Folder`注意 grep的字段有个字符 : `如果漏掉这个字符会报错。含义:在文件夹Folder中,搜索所有文件的oldStr,并替换成newStr...原创 2020-04-08 11:31:08 · 295 阅读 · 0 评论 -
使用am命令发送带参数的广播和服务
有时候使用adb命令发送广播测试会更有效率。命令如下:adb shell am broadcast -n "com.autonavi.amapauto/com.autonavi.amapauto.adapter.internal.AmapAutoBroadcastReceiver" -a AUTONAVI_STANDARD_BROADCAST_RECV --ei "KEY_TYPE" 1004...原创 2020-03-10 20:14:35 · 4779 阅读 · 1 评论 -
logcat命令总结
1.输出log并保存到文件logcat > log.log2.输出某个TAG的loglogcat -s TAG原创 2020-01-09 10:33:44 · 327 阅读 · 0 评论 -
查看和设置Android Log等级和Log.isLoggable使用方法
Android中Log等级分为一下几种:private static final String TAG = “Demo”;private boolean VERBOSE = Log.isLoggable(TAG, Log.VERBOSE);private boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);private boolean INFO ...原创 2019-12-26 20:21:50 · 4936 阅读 · 0 评论 -
修正Beyond Compare 4无右键菜单的问题
安装的Beyond Compare 4之后,发现无右键菜单,使用起来特别不方便。但是,尝试过网上的通用方法之后,发现不起作用。方法1(在我这不起作用):打开Beyond Compare 4主页–>工具–>选项–>启动–>资源管理器整合–>勾选在资源管理器环境菜单中包含Beyond Compare(E).如下图:于是继续找,找到了一个有用办法。方法2(生效...原创 2019-12-24 21:33:32 · 3817 阅读 · 6 评论 -
git命令git push成功后撤销回退
当git push上传代码到本地分支后,发现与远程分支的代码有冲突。所以需要进行撤销和回退。1.查看版本号git reflogc2b96dc HEAD@{0}: reset: moving to c2b96dce5ab07824ce95f48593810051867b245272a2723 HEAD@{1}: reset: moving to 72a2723d545046 HEAD@{...原创 2019-12-18 16:24:33 · 764 阅读 · 0 评论 -
Android封装SharedPreferences的简单用法
封装一个SharedPreferences的简单用法:public class DemoPerference { private final static String name = "demo_perference"; public static final String KEY_DEMO1= "key_demo1"; public static final String K...原创 2019-12-16 15:46:48 · 203 阅读 · 0 评论 -
将Android.mk工程迁移为Gradle项目
在Android系统中,我们的项目工程都是以Android.mk的形式存在的。不能用Android Studio直接打开。解决方法1:用Eclipse打开Android.mk工程,导出为gradle项目,在用Android Studio打开就可以了。解决方法2:在项目根目录,手动编写一个build.gradle文件。(需要根据Android.mk来编写)build.gradlebui...原创 2019-12-16 10:02:33 · 1620 阅读 · 0 评论 -
Android P替换源生桌面背景
路径:\frameworks\base\core\res\res\drawable-nodpi\default_wallpaper.png原创 2019-12-14 19:48:47 · 236 阅读 · 0 评论 -
repo命令总结
更新分支(并不更新文件)repo sync查看本地文件修改状态repo status遍历所有的仓库,查询从2019-12-01到2019-12-11的修改记录:repo forall -c git log --since=“2019-12-01” --until=“2019-12-11”遍历所有的仓库并在每个仓库执行git checkoutrepo forall -c git che...原创 2019-12-12 09:48:39 · 719 阅读 · 0 评论 -
Android鼠标焦点的问题
在Android系统中,触摸模式下,点击按钮,按钮不会有一个焦点框;而在键盘、 鼠标模式下,与界面进行交互时,当交互的时候必须使目标控件获得焦点(比如高亮起来),这样用户才会注意到是什么控件接受输入。所以按钮有一个系统默认的焦点框。参考文献:http://vi1zen.cn/2017/06/01/Android%E7%84%A6%E7%82%B9%E8%8E%B7%E5%8F%96/修改方法...原创 2019-12-02 19:18:26 · 1285 阅读 · 0 评论 -
git log将修改日志保存到文件中
git log是查看修改日志的命令。但是有时候修改日志太多,保存到文件中看比较方便。以下命令将日志保存到commit.log文件中:git log --date=iso --pretty=format:’"%h","%an","%ad","%s"’ > commit.log demo/DemoView.java或者:git log --date=iso --pretty=fulle...原创 2019-11-25 16:38:33 · 1764 阅读 · 0 评论 -
git命令总结
1.查看上传日志git log2.查看本地修改的文件git diff3.查看本地修改的文件列表(这个实用)git diff --name-only4.查看本地文件状态,包括未跟踪的文件(没有add的新增文件)(实用)git status5.增加本地文件commitgit add6.提交本地文件git commit7.上传提交的文件git push8.查看修改记录和该记录...原创 2019-11-25 09:31:54 · 334 阅读 · 0 评论 -
Android使用PopupMenu实现下拉框效果
首先在res中新建menu文件夹,新建文件menu.xml<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/item1" ...原创 2019-11-23 14:41:24 · 612 阅读 · 0 评论 -
Android自定义带文字标题和方框的控件
1.使LinearLayout布局带有方框线;2.使LinearLayout布局Top方框线加入一个文字标题。要想实现LinearLayout布局带有方框线,这个很简单,直接加一个方框线的布局即可。但是要实现Top方框线加入一个文字标题,则需要自定义View来实现。效果如下:TitleBorderLayout.javapackage com.hsae.audiodemos.view;...原创 2019-11-23 11:48:58 · 758 阅读 · 0 评论 -
Android Studio使用技巧之左右光标和快捷键
Android Studio中有个功能是快速返回到上一个光标。勾选View --> ToolBar,即可出现左右箭头的光标。或者使用快捷键,也非常方便:Ctrl + Alt + 左键,返回上一个光标Ctrl + Alt + 右键,返回下一个光标...原创 2019-11-23 11:36:12 · 1687 阅读 · 0 评论 -
Android Studio使用技巧之自动引入代码中所需要的包
步骤:File --> Settings --> Editor --> General --> Auto Import勾上选项:Add unambiguous imports on the fly (快速导入明确的引用的包名)Optimize imports on the fly(for current project) (即使优化引用的包名(去掉无使用的包名))...原创 2019-11-23 11:25:35 · 614 阅读 · 1 评论 -
Android Calendar类获取时间更新
使用import java.util.Calendar;public class InfoFragment{private Handler mHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {cas...原创 2019-11-13 14:43:17 · 529 阅读 · 0 评论 -
init.rc文件中执行shell命令
device/fsl/imx8q/etc/reboot_adbdevice/fsl/imx8q/mek_8q/BoardConfig.mkdevice/fsl/imx8q/mek_8q/init_car.rcdevice/fsl/imx8q/sepolicy_car/file_contextsdevice/fsl/imx8q/sepolicy_car/reboot_adb.tesyste...原创 2019-11-06 21:19:18 · 5908 阅读 · 2 评论 -
关于start service Intent not found与android:directBootAware="true"属性的问题
在一个程序中设置了一下属性,android:persistent="true"android:directBootAware="true"以上属性的含义分别为:android:persistent=“true”,设置该程序为常启动程序,开机启动,并且异常崩溃后,重新自动启动;android:directBootAware=“false”,允许程序在android未启动完成时期(解锁阶段...原创 2019-11-05 14:24:25 · 4254 阅读 · 2 评论 -
Android P文件读写
// 将字节数组byteArray数据写入到文件mcu_version.txt中public static void saveVersionFile(byte[] byteArray){String sdCardDir = Environment.getExternalStorageDirectory().getAbsolutePath();Log.i(TAG,“McuCommunicati...原创 2019-10-16 10:32:17 · 411 阅读 · 0 评论 -
ASCII字节数组转换成字符串
有一些通信中,需要字符串装换成ASCII字节数组数据,进行数据通信。在数据解析的过程中,就需要将字节数组转换成字符串。byte[] data;String version;data的数据如下:50 4D 55 2D 56 31 2E 30 2E 30代码:version = new String(data,"ascii");转换后字符串version如下:PMU-V1.0.0...原创 2019-10-16 10:16:41 · 3605 阅读 · 0 评论 -
Android P adb调试命令总结
adb shell am broadcast -a com.ad.action.SYSTEMUI_RUN_RADIO -c android.intent.category.LAUNCHER -n com.ad.radio/com.ad.radio.StaticBroadcastReceiveradb logcat -v time process >D:/system.logadb she...原创 2019-10-16 09:39:44 · 3441 阅读 · 0 评论 -
Android P Kernel增加一个驱动模块
Android P Auto版本,imx8平台。相关源码路径:android9.0.0\vendor\nxp-opensource\kernel_imx\arch\arm64\configs\android_car_defconfigandroid9.0.0\vendor\nxp-opensource\kernel_imx\drivers\mxc\vehicle\Kconfigandroi...原创 2019-09-19 11:17:17 · 655 阅读 · 0 评论 -
Android P App中调用Shell命令
Android中可以执行很多Shell命令。例如://测试网络能否ping通 -c 10 指发送10个数据包测试ping -c 10 192.168.10.22//查看目录ls//am start命令启动Settings程序am start -n com.android.settings/com.android.settings.Settings --display 0有时候...原创 2019-09-18 10:52:01 · 6259 阅读 · 5 评论 -
Android P系统设置之默认音量值
build\make\tools\buildinfo.sh增加:#多媒体音量echo "ro.config.media_vol_default=15"#闹钟音量echo "ro.config.alarm_vol_default=7"#系统音量echo "ro.config.system_vol_default=15"...原创 2019-09-15 10:24:24 · 2044 阅读 · 0 评论 -
Android P实现minicap客户端和解析minicap数据
minicap的socket方式:UNIX domain sockets。所以连接minicap的方式为:LocalSocket一、运行minicapminicap运行后,建立socket服务端。minicap的编译和运行请参照文章:https://blog.csdn.net/Sunxiaolin2016/article/details/90697555二、Android代码建立客户端连...原创 2019-06-01 18:16:15 · 3811 阅读 · 14 评论 -
Android P九轴传感器数据读取
前提,传感器驱动层程序正常。九轴传感器包括:陀螺仪,加速度计和磁力计。陀螺仪,Gyroscope,GYRO-Sensor,通过测量自身的旋转状态,判断出设备当前运动状态,是向前、向后、向左还是向右,是加速还是减速。加速度计,Accelerometer,G-Sensor,重力感应器,可以感知任意方向上的加速度,可以感知受力情况。磁力计,Magnetic,M-Sensor,测试磁场强度和方向,...原创 2019-09-20 17:49:35 · 1622 阅读 · 0 评论 -
vim使用技巧之查找字符串
vim工具是开发中非常好用的一个文本编辑工具,尤其在linux开发中,有着不可或缺的作用。vim查找功能也非常强大。vim查找字符串的方法:1、/后跟查找的字符串,从前往后进行查找2、?后跟查找的字符串,从后往前进行查找查找字符串:/sunxiaolin?sunxiaolin继续输入查找下一个。...原创 2019-09-27 10:32:20 · 1201 阅读 · 0 评论 -
Android P之监听Process Activity TaskStack状态变化
安卓系统提供了监听Process,Activity和Stack的状态变化的API,但是是Hide类型,并不能提供给非系统应用使用。但是,在系统应用中,还是可以使用的。import android.app.TaskStackListener;import android.app.ActivityManager;import android.app.ActivityManager.StackI...原创 2019-09-27 18:06:11 · 5994 阅读 · 0 评论 -
关于Yocto环境构建流程笔记
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-devsudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2ht...原创 2019-10-08 19:15:06 · 650 阅读 · 0 评论 -
Android P在状态栏加入USB图标并根据插入/拔出状态显示/隐藏USB图标
代码路径:frameworks\base\packages\SystemUI\res\layout\system_icons.xmlframeworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\CollapsedStatusBarFragment.java在system_icons.xml中加入USB图标...原创 2019-10-11 20:04:33 · 962 阅读 · 0 评论 -
Android P图形架构之虚拟屏实现
Android P默认支持两个物理屏和一个虚拟屏显示。物理屏两块分为:主屏和副屏。虚拟屏可以有多块。mDisplayManager = getActivity().getSystemService(DisplayManager.class);mDisplayManager.registerDisplayListener(mDisplayListener, new Handler());...原创 2019-09-14 19:30:18 · 8136 阅读 · 6 评论 -
Android P包管理机制之PackageManagerService授予权限流程解析
PackageManagerService中默认给系统app授予相关需要的权限。PackageManagerService中的systemReady是在SystemServer中执行的。\frameworks\base\services\java\com\android\server\SystemServer.java/*** Starts a miscellaneous grab bag...原创 2019-09-12 16:30:15 · 1405 阅读 · 0 评论 -
Android P使用AccessibilityService监听当前窗口变化
当切换安卓应用时,有时候我们需要知道当前切换窗口或者界面的包名和activity名,从而知道当前运行的app状态。AccessibilityService辅助功能服务本来是应用于帮助残障用户使用Android设备和应用。利用他可以接收到一些系统的回调信息。例如界面变化,焦点,按钮点击状态等。原创 2019-06-22 16:41:31 · 6906 阅读 · 1 评论 -
Android Studio编译报错:Password verification failed
今天从github上面导入一个工程,编译时报错:Password verification failed还是第一次见到这种错误,网上找不到合适的详细说明。只能阅读错误信息,详细的错误信息如下:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processInstantRunDebugRes...原创 2019-06-10 21:58:51 · 12724 阅读 · 0 评论 -
Android P摄像头开发和V4l2视频处理
基于安卓9.0系统,简单实现打开摄像头并获取视频流数据。1、打开摄像头摄像头设备为:/dev/video0//打开摄像头 deviceName为/dev/video0if ((fd = open(deviceName, O_RDWR, 0)) < 0){ return false;}2、查询视频设备的能力,是否具有视频输入,或者音频输入功能 v4l2_capabili...原创 2019-06-04 09:35:57 · 4715 阅读 · 6 评论