Android笔记(一) 常用命令

Android Settings系统属性读写 写为settings put secure 系统属性key 系统属性值。源码地址:frameworks/base/core/java/android/provider/Settings.java。对应xml路径:/data/system/users/0/settings_global.xml。对应xml路径:/data/system/users/0/settings_system.xml。对应xml路径:/data/system/users/0/settings_secure.xml。 阅读详情

驱动文件的编译

由于AndroidQ上BSP可以单独编译,因此,在bsp目录下执行source,lunch之后,可以单独编译ko模块,命令如下:

make modules –m synaptics_dsx_td4310.ko

设置数据库步骤:

adb shell        ---->进入到进入模拟器的shell模式

ums9230_1h10_go:/ # settings get global(数据库名) cast_mode(字段)                                              //从数据库中得到数据

ums9230_1h10_go:/ # settings put global(数据库名) multidisplay_info(字段) unisoc(值)      //向数据库中插入数据

补充:

 * SettingsProvider对数据进行了分类,分别是Global、System、Secure三种类型,它们的区别如下:
 * Global:所有的偏好设置对系统的所有用户公开,第三方APP有读没有写的权限;
 * System:包含各种各样的用户偏好系统设置;
 * Secure:安全性的用户偏好系统设置,第三方APP有读没有写的权限。

发送广播

adb shell am broadcast -a android.media.action.HDMI_AUDIO_PLUG --ei android.media.extra.AUDIO_PLUG_STATE 1                  //发送广播,并且附带数据状态值为1.

adb shell am broadcast -a android.media.action.HDMI_AUDIO_PLUG --ei android.media.extra.AUDIO_PLUG_STATE 0                  //发送广播,并且附带数据状态值为0.

adb shell am broadcast 后面的参数有:

<INTENT> specifications include these flags and arguments:

[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]

[-c <CATEGORY> [-c <CATEGORY>] ...]

[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]

[--esn <EXTRA_KEY> ...]

[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]

[--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]

[--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]

[--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> ...]

[--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]

[--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>]

[--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]

(mutiple extras passed as Integer[])

[--eial <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]

(mutiple extras passed as List<Integer>)

[--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]

(mutiple extras passed as Long[])

[--elal <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]

(mutiple extras passed as List<Long>)

[--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]

(mutiple extras passed as Float[])

[--efal <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]

(mutiple extras passed as List<Float>)

[--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]

(mutiple extras passed as String[]; to embed a comma into a string,

escape it using "\,")

[--esal <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]

(mutiple extras passed as List<String>; to embed a comma into a string,

escape it using "\,")

[--f <FLAG>]

[--grant-read-uri-permission] [--grant-write-uri-permission]

[--grant-persistable-uri-permission] [--grant-prefix-uri-permission]

[--debug-log-resolution] [--exclude-stopped-packages]

[--include-stopped-packages]

[--activity-brought-to-front] [--activity-clear-top]

[--activity-clear-when-task-reset] [--activity-exclude-from-recents]

[--activity-launched-from-history] [--activity-multiple-task]

[--activity-no-animation] [--activity-no-history]

[--activity-no-user-action] [--activity-previous-is-top]

[--activity-reorder-to-front] [--activity-reset-task-if-needed]

[--activity-single-top] [--activity-clear-task]

[--activity-task-on-home]

[--receiver-registered-only] [--receiver-replace-pending]

[--receiver-foreground]

[--selector]

[<URI> | <PACKAGE> | <COMPONENT>]

例1:

adb shell am broadcast -a com.android.test --es test_string "this is test string" --ei test_int 100 --ez test_boolean true

说明:--es 表示使用字符串类型参数  --ei 表示int类型参数  --ez 表示boolean类型参数  蓝色为key,红色为value

快速验证framework修改

以下是FW修改 framework下面的代码,方便快速放到手机进行调试的方法。

这种push的方法需要保证我们的手机的版本和本地代码相匹配(如果本地代码很久没有更新,手机使用了新的pac,有可能会发生系统服务运行crash)

Android 11& 12执行make framework-minus-apex可以编译出framework.jar (Android10及其之前使用 make framework)。services.jar 编译命令依然是make services

service push目录

adb push $OUT/system/framework/services.jar* system/framework/;

adb push $OUT/system/framework/oat/arm/services.* system/framework/oat/arm/;

adb push $OUT/system/framework/oat/arm64/services.* system/framework/oat/arm64/

framework push目录

adb push $OUT/system/framework/framework.jar system/framework/;

adb push $OUT/system/framework/boot-* system/framework/;

adb push $OUT/system/framework/arm/boot-* system/framework/arm/;

adb push $OUT/system/framework/arm64/boot-* system/framework/arm64/

Git撤销,放弃本地修改

Git 撤销,放弃本地修改

如果在修改时发现修改错误,而要放弃本地修改时,

一,未使用 git add 缓存代码时。

可以使用 git checkout -- filepathname (比如: git checkout -- readme.md  ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout .  命令。

此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

二,已经使用了  git add 缓存了代码。

可以使用  git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所以的缓存可以使用 git reset HEAD . 命令。

此命令用来清除 git  对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。

三,已经用 git commit  提交了代码。

可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard  commitid

你可以使用 git log 命令来查看git的提交历史。git log 的输出如下,可以看到第一行就是 commitid:

Git操作----删除untracked files

  # 删除 untracked files

    git clean -f

 # 删除指定路径下的没有被track过的文件

    git clean -f <path>

    git clean -f  packages/SystemUI/res-unisoc/layout/display_dialog_activity.xml

  # 连 untracked 的目录也一起删掉

    git clean -fd

  # 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)

    git clean -xfd

  # 在用上述 git clean 前,强烈建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删

    git clean -nxfd

    git clean -nf

    git clean -nfd

  # 删除文件

     git rm test.txt

Git Reset三种模式

Git Reset 三种模式

问题:当前GIT库三个提交,希望把最近的两个提交合并为一个提交。

git reset --soft HEAD^

git commit --amend

git reset

reset(重置) 的本质:移动 HEAD 以及它所指向的 branch

git reset --soft HEAD^,git reset --hard HEAD^和git reset --mixed的区别

--hard 会清空工作目录和暂存区的改动,而 --soft则会保留工作目录的内容,并把因为保留工作目录内容所带来的新的文件差异放进暂存区。

reset 不加参数(mixed):保留工作目录,并清空暂存区.把所有差异都混合(mixed)放在工作目录中.

常用adb命令

1.用adb shell dumpsys meminfo package name看看当前进程的内存使用情况

2.可以在adb shell里输入getevent -ltr  这个可以看到Input上报的事件

3.adb shell pm clear com.android.wallpaper命令清除其数据

4.

        adb shell dumpsys wallpaper  > wallpaper.txt

        adb shell dumpsys SurfaceFlinger > surfaceflinger.txt

        adb shell dumpsys window windows > window.txt

5.android如何判断手机CPU是32位还是64位的?

adb shell getprop ro.product.cpu.abi 

C:\Users\ruya.zhao>adb shell getprop ro.product.cpu.abi

arm64-v8a

6.获得所有进程的列表

要获得所有进程的列表,可以执行命令 ps -ef(POSIX 风格)或 ps ax(BSD 风格)。进程名有方括号的是内核级的进程,执行辅助功能(比如将缓存写入到磁盘);所有其他进程都是使用者进程。您会注意到,就算是在您新安装的(最小化的)系统中,也会有很多进程在运行。熟悉它们,并把它们记录到文档中。

7.使用命令进入Settings

     adb shell am start com.android.settings

回退代码

1.repo sync 全部

2.回退到2022-08-25 20:00  ; 

3.执行repo manifest -r -o mymanifest2000.xml

4.make ; cp_sign; makepac; 生成pac

5.导出pac、mymanifest2000.xml

回退到某一个节点

//正确的命令

//正常会有如下流程

本地整编后打包pac

$make

按照提示执行命令

$make

$cp_sign

$makepac    // pac在out/xx/cp_sign/.pac

logcat

D:\软件\adb tools>adb shell

s9863a1h10:/ # logcat | grep "SurfaceFlinger"

多个筛选条件

logcat | grep -e aaa -e bbb -e ccc

logcat -s ruya ruya2 ruya3

D:\软件\adb tools>adb shell

s9863a1h10:/ # logcat | grep -e WindowManager -e SurfaceFlinger

logcat | grep -e WindowManager -e SurfaceFlinger

//打印出Native Crash的 log

adb shell logcat -v time | grep "Native Crash"

手动dump heap
adb shell am dumpheap pid >out.hprof

查看events.log中的ams log

adb logcat -b events | grep am_

查看kernel.log

C:\Users\ruya.zhao>adb shell

uis7862a_1h10:/ # logcat -b kernel

模拟菜单键事件

adb shell input keyevent 82模拟菜单键事件

如何打Trace

Log.d(TAG,Log.getStackTraceString(new Throwable()));

生成diff文件

git diff > 1613716.diff

跳转到相同目录执行下面命令,git apply 1613716.diff

禁用滑动特效

Android 禁用滑动到底的特效:overScrollMode=never

拉取代码

AndroidQ

1)$mkdir Android10_trunk_19c_rls1:第一次要新建文件夹Android10_trunk_19c_rls1

2)$cd Android10_trunk_19c_rls1

3)$repo init -u ssh://gitadmin@gitmirror.spreadtrum.com/platform/manifest.git -b sprdroid10_trunk_19c_rls1

4)$repo sync -cdq -j30     或者    $repo sync -cdq -j8(全拉)

repo sync只同步部分代码的方法

repo sync只同步部分代码的方法

首先打开源码目录下的.repo目录,打开manifest.xml,里面是一个子项目列表,针对不同种类的仓库进行一个总的分类,若是查看系统应用的仓库名,可以前往system文件夹下的default.xml文件查看

  <!-- Include system component repos -->

  <include name="system/default.xml" />

  <!-- Include common repos -->

  <include name="common/default.xml" />

  <!-- Include vendor component repos -->

  <include name="vendor/default.xml" />

  <!-- Include unisoc_bin.xml -->

  <include name="unisoc_bin.xml" />

.repo\manifests\system\default.xml,若是查看AOSP的仓库名,则前往system文件夹下的aosp.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<manifest>

  <!-- Include aosp.xml -->

  <include name="system/aosp.xml" />

  <!-- Include carriers.xml -->

  <include name="system/carriers.xml" />

  <include name="system/common.xml" />

  <!-- Include lego.xml -->

  <include name="system/lego.xml" />

  <!-- Include partner.xml -->

  <include name="system/partner.xml" />

  <!-- Include vendor_app.xml -->

  <include name="system/vendor_app.xml" />

</manifest>

找到需要同步的子仓库,例如launcher3

 <project name="platform/packages/apps/Launcher3" path="packages/apps/Launcher3"  groups="pdk-fs"/>

执行以下命令同步该代码库

 repo sync platform/packages/apps/Launcher3

Android开发中获取SDK自带的图片

 在开发中要用到很多的图片,其实我们可以直接使用android sdk自带的图片,有大量供你选择,而且都有不同大小的图片来适应分辨率,很方便。

那么如何获取到这些图片呢?

在我的电脑上,路径是

/home/ruya.zhao/Android/Sdk/platforms/android-30/data/res/drawable-ldpi(Ubuntu) 或者 E:\Android\Sdk\platforms\android-30\data\res\drawable-ldpi(Windows)

 即路径为Sdk/platforms/android-30/data/res/drawable-ldpi

Java中String类下的isEmpty()和android中的TextUtils.isEmpty( )区别:

Java中,String类下的isEmpty( )返回的只是字符串的长度是否为0,如果字符串为null就会直接报空指针。

源码如下:

public boolean isEmpty() {

    return count == 0;

}

android中,TextUtils.isEmpty(要判断的字符串)会对null和长度进行判断,所以不会报空指针。

源码如下:

public static boolean isEmpty(@Nullable CharSequence str) {

    if (str == null || str.length() == 0) {

        return true;

    } else {

        return false;

    }

}

切换屏幕分辨率

切HD: adb shell wm size 720x1440

             adb shell wm density 408

切HD+: adb shell wm size 1080x2160

              adb shell wm density 480

录屏方法

adb shell screenrecord data/1.mp4

adb pull data/1.mp4

从手机中pull出来手机录屏的视频

adb pull /storage/emulated/0/Movies/screen-20210305-023328.mp4 d:/films/3.mp4

截屏方法

adb shell screencap data/1.png

adb pull data/1.png d:/pictures/1.png

adb pull /storage/emulated/0/Pictures/Screenshots/Screenshot_20210429-165657.png d:/pictures/screenshot

查看数据库的值:

D:\软件\adb tools>adb shell

s9863a1h10_go_32b:/ # cd data/data/com.android.launcher3/databases

cd data/data/com.android.launcher3/databases

s9863a1h10_go_32b:/data/data/com.android.launcher3/databases # ls

ls

app_icons.db launcher.db widgetpreviews.db

s9863a1h10_go_32b:/data/data/com.android.launcher3/databases # sqlite3 launcher.db

qlite3 launcher.db                                                            <

SQLite version 3.22.0 2019-09-03 18:36:11

Enter ".help" for usage hints.

sqlite> select * from favorites;

select * from favorites;

Hotseat

Q:Launcher3中怎么修改让横屏的时候Hotseat是在屏幕底部

A:把config.xml里的hotseat_transpose_layout_with_orientation设置为false

adb 获取当前activity信息

8.1之前

window 通过adb shell dumpsys activity | findstr “mFocus”

Linux 通过adb shell dumpsys activity | grep “mFocus”

8.1之后

window 通过adb shell dumpsys activity | findstr “mResume”

Linux 通过adb shell dumpsys activity | grep “mResume”

12之后

window 通过adb shell dumpsys activity | findstr “Resumed”

Linux 通过adb shell dumpsys activity | grep “mResume”

如何快速定位当前的Activity和Fragment页面?

(1)查看当前Activity :adb shell “dumpsys window w | grep name=”

(2)查看当前栈顶的Activity :adb shell dumpsys activity | grep “mFocusedActivity” 

(3)查看当前栈顶的Activity的Fragment :adb shell dumpsys activity your.package.name

SecondaryDisplayLauncher

我们可以通过以下指令来启动SecondaryDisplayLauncher预览界面:

A10

AOSP版本:

adb shell am start -n com.android.launcher3/com.android.launcher3.SecondaryDisplayLauncher

Pixel机器:

adb shell am start -n com.google.android.apps.nexuslauncher/com.android.launcher3.SecondaryDisplayLauncher

A11/A12

AOSP版本:

adb shell am start -n com.android.launcher3/com.android.launcher3.secondarydisplay.SecondaryDisplayLauncher

Pixel机器:

adb shell am start -n com.google.android.apps.nexuslauncher/com.android.launcher3.secondarydisplay.SecondaryDisplayLauncher

Sensor

陀螺仪是测角速度的,G-Sensor是测重量加速度的,它是加速度计的一种。

G-sensor中文是加速度传感器的意思(英文全称是Accelerometer-sensor),它能够感知到加速力的变化,加速力就是当物体在加速过程中作用在物体上的力,比如晃动、跌落、上升、下降等各种移动变化都能被G-sensor转化为电信号

加速度传感器又叫G-sensor,返回x、y、z三轴的加速度数值。

android Settings系统的三种数据属性及其adb修改指令 如:adb shell settings put global http_proxy 127.0.0.1:8888。adb shell settings put global http_proxy 代理IP地址:端口号。1.global:所有的偏好设置对系统的所有用户公开,第三方APP有读没有写的权限;3.secure:安全性的用户偏好系统设置,第三方APP有读没有写的权限。2.system:包含各种各样的用户偏好系统设置;列出global配置表中的所有属性值。取出指定配置表中指定属性值。 阅读详情

相关推荐

【可行】adb修改手机代理方式

设置全局命令 adb shell settings put global http_proxy 代理IP地址:端口号 因为设置的是全局代理,不管连接的是哪个wifi,都是会通过这个代理转发请求。所以在抓包完之后相应的需要移除代理信息。 adb shell settings delete global http_proxy adb shell settings delete global global_http_proxy_host adb shell settings delete global glob

未名编程 5522

Settings属性读写

Settings系统属性存储均为xml,分三种: 1.global:所有的偏好设置对系统的所有用户公开,第三方APP有读没有写的权限; 对应xml路径:/data/system/users/0/settings_global.xml adb指令读写方法: 先adb shell进入终端。 读为settings get global 系统属性key 写为settings pu......

4247

什么是Android逆向?如何学习安卓逆向?Android逆向自学笔记入门到实战

*其实上面说了这么多,钱是永远赚不完的,在这个知识付费的时代,知识技能提升才是是根本!我作为一名8年的高级工程师,知识技能已经学习的差不多。**在看这篇文章的可能有刚刚入门,刚刚开始工作,或者大佬级人物。像刚刚开始学Android开发小白想要快速提升自己,最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以这里分享一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。这么重要的事情说三遍啦!

2401_84149875的博客 2644

adb 全屏沉浸命令

adb shell settings put global policy_control immersive.full=*

跋涉者901214的博客 6123

2020年安卓学习笔记目录

一、讲课笔记 安卓学习笔记01:安装集成开发环境Android Studio 安卓学习笔记02:测试安卓开发环境 安卓学习笔记03:安卓应用目录结构 安卓学习笔记04:安卓平台架构 安卓学习笔记05:Activity概述 安卓学习笔记06:Activity生命周期与启动模式 安卓学习笔记07:事件处理、窗口跳转与传递数据 安卓学习笔记08:线性布局 安卓学习笔记09:帧式布局 安卓学习笔记10:相对布局 安卓学习笔记11:网格布局 安卓学习笔记12:安卓按键事件 安卓学习笔记13:安卓触摸事件 安卓学习笔

howard2005的专栏 3660

安卓讲课笔记1.1 安装Android Studio

1. 能安装配置Android Studio; 2. 能创建安卓虚拟机(AVD); 3. 能创建简单安卓应用

howard2005的专栏 3371

安卓逆向学习笔记(一)

这些都是通过学长给予,以及网络上的资源来做的个人理解、总结,大牛们不要喷。 零基础小萌新在角落瑟瑟发抖的认真记笔记。 安卓逆向学习笔记(一) 写一个安卓程序(附上原帖链接教我兄弟学Android逆向01) 安装所需软件android studio,因为貌似被墙了所以没有用官网下载。 官网下载链接及教程,链接官网下载链接,教程安装及下载教程 网上另找的资源(内附教程)android studi...

qq_43593334的博客 1708

告别“静态组件”:Adobe XD的堆栈+状态,打造“活”的响应式UI

今天,我想分享一套能彻底告别这种“笨方法”的、Adobe XD中的进阶技巧,通过组合使用“堆栈”、“内边距”和“组件状态”,去构建一个能自动适应内容、真正“活”起来的智能响应式组件。

Kingsdesigner的博客 761

手写笔记软件android,有笔没笔一样写 五款安卓手写笔记APP

智能手机的出现极大方便了我们的生活,现在的白领们开会都很少拿纸笔,直接用手机就能随时记下信息。不但在之后方便检索,也能省下不少纸张。比如iOS平台上的墨笔和UPAD,就是手写笔记类应用中最强的两款,可惜这两款应用都是iOS独占,没有安卓版本。不过这也使得安卓平台上出现了诸多有自己特点的应用,今天我就给大家介绍几款完全不输给墨笔和UPAD的手写笔记应用。好写笔记《好写笔记》是一款专注文字记录的应用,...

weixin_35851240的博客 2万+

从内参矩阵到归一化平面:揭秘相机成像的标准化核心

本文深入解析了相机成像中的核心概念——归一化平面。通过拆解内参矩阵(包含焦距、主点等参数)的作用,详细阐述了如何将像素坐标转换为与具体相机硬件无关的归一化坐标。这一标准化过程是计算机视觉算法(如多相机系统对齐、视觉SLAM)实现跨设备通用性的关键,能有效提升算法的鲁棒性和泛化能力。

opencv7vision的博客 449

RAG开源框架深度评测:从RAGFlow到Dify的实战选型指南

本文深度评测了主流RAG开源框架(RAGFlow、Dify、WeKnora)的核心能力与实战表现,提供企业级选型指南。重点对比了文档解析、检索性能和生产部署等关键指标,揭示RAGFlow在复杂文档处理、Dify在低代码开发、WeKnora在腾讯生态集成的差异化优势,并给出技术选型决策树与成本优化方案。

weixin_29294597的博客 828

安卓内核定制开发笔记(一)内核源码编译

本文详细记录了安卓内核定制开发流程,以一加3T设备为例,从环境准备到内核编译和刷入全过程。内容包括:安装编译依赖、获取交叉编译工具链、下载AnyKernel3和内核源码;执行编译命令生成内核镜像;使用AnyKernel3打包并刷入手机;针对一加3T的WiFi驱动问题提供了两种解决方案。特别强调刷机风险,适合具备Android开发基础的用户参考实践。通过修改内核版本字符串或内核模块校验机制,成功解决了驱动兼容性问题。

某互联网大厂安全架构师,从事移动安全行业8年 拒绝AI生成,拒绝抄袭搬运,输出优质原创 matrix_oc 1104

数学建模学习(78):多输入多输出回归预测模型(结合XGBoost实现)

多输入多输出回归预测问题求解

全栈川川 8130

双系统笔记本 android,安卓不止平板有 教你使用笔记本装安卓,和WINDOWS一起双系统亦可以的哦!(图解)...

随着新iPad的发售,苹果CEO蒂姆·库克发表了“后PC时代”言论都表明平板市场的迅速扩张。不过现在我们在日常工作中还是离不开笔记本电脑的。通过开发移植,笔记本现在也可以安装只有移动设备才能使用的安卓系统,并实现大部分功能,同时笔记本拥有着比平板更强劲的性能。接下来我就为大家介绍一下实现笔记本安装安卓系统的详细过程。安卓系统镜像下载:点击下面的网址,我们进入android-x86网站,首页中有着各...

weixin_39607447的博客 3739

张力控制速度闭环控制算法

这个算法的核心思想是通过比较实际速度和期望速度的差异来调整控制信号,以达到稳定的速度控制。比例项用于直接根据误差调整输出,积分项用于积累误差并进行补偿,微分项用于预测误差的变化趋势并进行调整。张力控制是在许多工程和工业应用中非常重要的一个过程,它涉及到通过调节力的大小来实现稳定的工作状态。通过合理设置比例、积分和微分系数,并结合实际系统的特性进行调试和优化,可以实现准确稳定的张力控制。速度闭环控制算法通过比较实际速度和期望速度之间的差异,并根据差异调整系统的输出,以保持速度稳定。

LiJavascript的博客 1304

提示工程架构师干货:AI上下文工程在社交媒体舆情溯源中的应用

在舆情溯源中,“上下文”不是单一的“文本内容”,而是多维度、多源的信息集合溯源时间:从事件爆发到找到源头,只用了24小时(传统方法需要3-5天);溯源准确性:100%(通过人工验证确认);后续行动:品牌X发布了澄清声明,揭露了品牌Y的恶意行为,舆情在48小时内平息。社交媒体舆情溯源是一个“复杂的系统工程”,需要结合数据、模型、上下文理解。AI上下文工程的出现,让我们从“被动应对”转向“主动溯源”,从“模糊判断”转向“精准分析”。

Java大师兄的博客 813

android 笔记管理app,安卓有什么记笔记的软件?安卓平台好用的笔记app

原标题:安卓有什么记笔记的软件?安卓平台好用的笔记app物极必反的道理,我每年放寒暑假的时候都深有体会,刚开始放假那几天,我每天都觉得很开心,日子久了之后,该玩的也都玩了,该见的人也都见了,快乐的事情都做完了,以至于现在整日无所事事,只剩抱着手机无聊地刷剧了。我也常常反思这样的状态,想到的解释就是那些快乐的事情总是很容易获得,维持的时间也比较短暂,如果多做一些像读书、学习这样半衰期长的事情,我想自...

weixin_29211309的博客 475

一、OpenSM 架构部署及原理详解

OpenSM 是 InfiniBand 网络的核心组件,通过自动化的拓扑发现、路由计算和状态维护,确保网络的高效运行。部署时需关注配置文件参数、路由算法选择和高可用性设计,调试时可借助日志和诊断工具快速定位问题。

jundao1997的专栏 1131

我的学习笔记~自学安卓(一):安卓开发环境

现在主流的安卓开发都是用的android studio,所以就需要安装android studio 1.首先需要安装jdk,配置好安卓开发环境 2.下载android studio,养成良好的习惯从官网下载,这里要注意有的版本的as包含有sdk,而有的没有包含,我们分两种情况介绍: 第一种:包含有sdk android studio的安装步骤我就不再赘述,一键默认选项即可,...

海蓝的博客 434

如何合法抓取TikTok视频信息和评论:完整Python爬虫教程

尽管TikTok没有开放的公共API来直接抓取视频内容和评论,开发者仍然可以通过合法的方式使用第三方API工具来获取公开数据。无论使用什么工具,都应当严格遵守TikTok的使用条款和当地的隐私法规,确保数据抓取行为符合规定。通过本文介绍的TikTok-Api库和Python技术,你可以合法地抓取公开的视频信息和评论,并进行数据存储与分析。使用这些技术时,务必确保抓取行为不会侵犯用户隐私,并遵守平台的API使用规定。

2201_76125261的博客 1710

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 安装在笔记本,笔记本安装安卓系统图解_笔记本电脑如何安装安卓系统-win7之家...

很多用户都喜欢在电脑中运行安卓软件,就需要安装安卓模拟器,但是安卓模拟器会占用较大的系统资源而且运行起来也不流畅,那么其实我们可以在笔记本电脑中安装安卓系统,它是基于Linux内核的自由及开放源代码的操作系统,该如何操作呢?本文给大家带来笔记本安装安卓系统图解吧。具体步骤如下:1、首先大家需要准备安装系统的介质,其实装这款安卓系统和装winxp、win7都一样,无非就是刻成盘或者烧录U盘或者PE安...

weixin_29201859的博客 4627

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

一加连续点Android版本号,一加6升级安卓p教程

一加6升级安卓p教程来源:天天游戏吧|2018-11-08 19:44:05|阅读:53一加6怎么升级安卓p,一加6升级安卓p教程一加6是首批支持安卓P系统升级的手机之一,所以可以下载对应的ROM更新包,更新升级为最新的Android P Beta 版,它给开发者提供了直接分享、反馈、尝鲜的机会。下面,就由统一小编为大家介绍一下一加6怎么升级安卓p教程感兴趣的快来看看吧!更新前的准备:数据备份:升...

weixin_39915367的博客 1037

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

基于安卓的云笔记系统

本文设计实现了一款基于安卓的云笔记系统,采用MVVM架构结合SpringBoot和MySQL技术栈。系统支持多方式注册登录、富文本编辑、附件上传、版本回溯等核心功能,并集成社交分享、活动管理、论坛交流等扩展模块。技术实现上采用阿里云OSS存储和HTTPS加密保障数据安全,测试显示系统支持2000用户并发访问。研究解决了传统笔记的跨设备同步与社交协作痛点,未来将引入AI智能分类和分布式缓存技术进行优化。开发环境为Java+SpringBoot+MySQL5.7,采用混合开发模式实现安卓客户端。

QQ80213251的博客 750

安卓开发学习笔记

​ (1) 修改布局管理器:将布局管理器修改为帧布局管理器 FrameLayout。​ (1) 在Android应用的res/layout目录下编写XML布局文件。​ (2) 在Activity中使用以下Java代码显示XML文件中布局的内容。占据屏幕中的一块矩形区域,负责提供组件绘制和事件处理的方法。​ (1) 使用XML布局控制UI界面 (推荐)安卓图标,显示安卓开发中常用的工程文件(建议使用的结构)​ (2) 在Java代码中控制UI界面。

深思纵似丁香结,一展芭蕉寸凡心。 1764

基于Android的安卓云笔记系统(程序+文档+讲解)

随着移动办公与碎片化记录需求增长,传统本地笔记工具存在数据易丢失、多设备不同步、功能单一等问题,难以满足用户 “随时随地记录、安全存储、便捷管理” 的需求。基于 Android 的安卓云笔记系统,依托 Android 平台的移动端适配优势,结合云存储技术(如阿里云 OSS / 腾讯云 COS)与 SQLite 本地数据库(保障离线使用),构建集笔记创建、云端同步、分类管理、安全保护于一体的移动端云笔记平台,覆盖日常记录、学习整理、工作备忘等多场景需求。​ 系统核心功能围绕 “记录 - 管理 - 同步 - 安

876

android 安装在笔记本,笔记本电脑怎么装安卓系统_笔记本安装安卓教程-系统城...

现在电脑的功能越来越全面,我们甚至都可以在电脑上使用手机系统了。一些朋友就比较好奇,笔记本电脑该怎么安装安卓系统呢?其实很简单,接下来小编就给大家带来笔记本安装安卓系统的教程。具体步骤如下:1、首先大家需要准备安装系统的介质,其实装这款安卓系统和装winxp、win7都一样,无非就是刻成盘或者烧录U盘或者PE安装,这里小编用U盘和PE的方法给大家简单说下,当然你也可以浪费一张盘刻录收藏。2、使用U...

weixin_42130889的博客 7246
上一篇: Android Studio中怎么看R.java文件
下一篇: Android笔记(二) 常见log
Ting_maple
博客等级 码龄9年 27粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值