我开发了一个应用程序,供用户在屏幕上看到某些时间。我正在使用 pygames 库,并且在用户运行 .py 文件后 GUI 将全屏显示。
我想要一个解决方案,以便用户不需要运行该文件,而是在登录完成后该文件自行执行。
某些程序(某种恶意软件)在启动时在我的 Windows 7 上运行,但我的启动文件夹是空的(即使在删除文件夹中所有程序的隐藏和系统属性之后)。但 msconfig 显示正在运行的脚本。
这意味着程序可以在启动时运行,而无需实际位于启动文件夹中。
请帮助我解释一下这些软件是如何做到这一点的,或者我缺少任何启动概念?
提前致谢。
我正在尝试找到一种方法来衡量在 ARM 平台上使用 relro 和早期绑定链接选项对启动性能的影响。
有人可以建议我如何找到使用该选项编译的二进制文件链接共享库所花费的时间?
非常感谢。
编辑 1:我的机器上没有时间信息。
root@arm:/# LD_DEBUG=统计信息/bin/date
Run Code Online (Sandbox Code Playgroud)1470: number of relocations: 90 1470: number of relocations from cache: 3 1470: number of relative relocations: 1207 Thu Jan 1 00:17:00 UTC 1970 1470: 1470: runtime linker statistics: 1470: final number of relocations: 108 1470: final number of relocations from cache: 3
我们正在使用最新版本的 Lollipop 构建我们自己的 AOSP/自定义 ROM。
我们试图归档的是构建自定义 ROM,并在设备上预安装两个主屏幕。一个是标准的Andoid“Launcher3”,另一个是我们自己的主屏幕应用程序“foobarhome”。到现在为止还挺好 :-)
我们当前的初始设备启动阶段大致如下:
- 设备启动动画
- GMS SetupWizard(Wi-Fi、语言、Google 帐户设置等)
**** 设备达到设置完成状态 ****
- ResolverActivity 开始显示选择在我们自己的 Home 应用程序“foobarhome”和 Launcher3(>>BAD GUY<<)之间
- 我们必须选择“foobarhome”来“始终”运行
- 我们的主屏幕应用程序已启动并运行
问题:不幸的是,我们将在之后立即获得 ResolverActivity GMS 设置向导已完成。
ResolverActivity 为我们提供了 Launcher3 和主屏幕应用程序之间的选择,我们必须手动选择我们的主应用程序(始终运行)。
目标:
准备工作:
在构建自定义 ROM 并执行我们和 Android 的所有 make 文件期间,我们将所谓的preferred-activities-home.xml复制到设备上的system/etc/preferred-apps/。
在我们的whatever.mk中,我们有以下几行代码:
首选应用程序设置:
PRODUCT_COPY_FILES += \
myLocalPath/preferred_activities/preferred-activities-home.xml:system/etc/preferred-apps/preferred-activities-home.xml
Run Code Online (Sandbox Code Playgroud)
并且这种preferred-activities-home.xml 的内容如下所示:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<preferred-activities>
<item name="com.example.foobarhome/.MainActivity" match="100000" set="2">
<set name="com.android.launcher3/com.android.launcher3.Launcher" />
<set name="com.example.foobarhome/.MainActivity" />
<filter>
<action name="android.intent.action.MAIN" …Run Code Online (Sandbox Code Playgroud) 我们已经将我们的环境升级为WLS12.2.1.2.0来自WLS12.1.1.0并遇到@Startup了@Singletonbean方法中的事务问题。
所述 bean 部署在 EAR 内,该 EAR 将消息发布到事务下的 JMS 队列。这在目标服务器运行时有效,但在容器启动期间失败:
Timeout during commit processing
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:281)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:301)
at weblogic.transaction.internal.CoordinatorImpl_12212_WLStub.commit(Unknown Source)
at weblogic.transaction.internal.TransactionImpl$1.run(TransactionImpl.java:378)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
at weblogic.transaction.internal.SecureAction.runAction(SecureAction.java:71)
at weblogic.transaction.internal.PlatformHelperImpl.runAction(PlatformHelperImpl.java:1493)
at weblogic.transaction.internal.TransactionImpl.commit(TransactionImpl.java:375)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:270)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:257)
at weblogic.ejb.container.manager.BaseEJBManager.handleLifecycleCallbackTx(BaseEJBManager.java:412)
at weblogic.ejb.container.manager.SingletonSessionManager.constructAndInitBean(SingletonSessionManager.java:301)
...
Caused by: javax.transaction.SystemException: Timeout during commit processing
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:340)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:257)
at weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:99)
at weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:645)
at weblogic.rmi.internal.BasicServerRef$2.run(BasicServerRef.java:534)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:531)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:138)
... 7 …Run Code Online (Sandbox Code Playgroud) 有很多使用 BOOT_COMPLETED 在设备启动时启动应用程序的示例。我尝试将这些示例用于我的 Flutter 应用程序。让它启动应用程序。这是用于显示图像的简单标牌应用程序。基本上类似于相框。
在下面的示例代码中,应用程序正在编译,但是,例如,当我重新启动模拟器时,代码似乎没有任何效果。
我的猜测是我没有调用正确的代码来实际启动应用程序。清单如下..
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="au.net.digitall.cmplayer">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:name="io.flutter.app.FlutterApplication"
android:label="cm_player"
android:icon="@mipmap/ic_launcher"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/cmTheme2"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<receiver
android:enabled="true"
android:name=".StartCmPlayerServiceAtBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
Run Code Online (Sandbox Code Playgroud)
然后StartCmPlayerServiceAtBootReceiver类启动APP..
package au.net.digitall.cmplayer;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class StartCmPlayerServiceAtBootReceiver extends BroadcastReceiver {
private static final String TAG = StartCmPlayerServiceAtBootReceiver.class.getSimpleName();
@Override
public void …Run Code Online (Sandbox Code Playgroud) 所以我有一个生成动画的 python 脚本 - 它需要我在 conda 环境中拥有的库。我需要在计算机打开后立即运行此脚本,因此我编写了一个简短的 bash 脚本,并将其添加到“启动应用程序”中。这个 bash 脚本在启动时运行,内容如下:
#!/bin/bash
conda activate myenv
cd ~/scripts
python generate.py
Run Code Online (Sandbox Code Playgroud)
当我自己在终端中运行它时,这很好,但是每当我打开计算机时,脚本的 python 部分都不会执行,当我检查错误时,我发现:
conda: command not found
Run Code Online (Sandbox Code Playgroud)
然后我还看到 python 脚本无法运行,因为它缺少库(来自未激活的 conda 环境)
我尝试在 bash 脚本中添加行,用“源激活”替换“conda activate”,我尝试添加echo ". /home/<user>/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc到 bash 脚本,用 替换“conda” /home/barrat/anaconda3/bin/conda,甚至添加whoami到在启动时运行的 bash 脚本以确保我不是偶然神奇地成为 root 的……这一切都没有奏效。我真的很感激任何帮助。现在是凌晨 3 点,我有点绝望。
对于有C启动代码的微控制器和嵌入式系统来说,C启动代码的功能之一就是初始化堆栈指针。
这个初始栈指针地址和C启动代码一般是芯片厂商定义和提供的吗?
还是由我们作为固件/软件开发人员手动修改或创建 C 启动代码并指定堆栈指针?这部分让我感到困惑。
我在这里和整个谷歌搜索并尝试了很多解决方案。我的情况如下。
我只是不希望 Apache 运行。
1) localhost 导致“它有效!” 第
2页)该命令sudo apachectl stop导致:
/System/Library/LaunchDaemons/org.apache.httpd.plist:找不到指定的服务
3)sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist导致与数字 2 相同的输出。
我正在尝试在 Windows 启动时添加 mongoDB 服务,但我仍然无法做到。
每次我必须手动启动 mongoDB 服务。
我研究了如何在 Windows 启动时添加应用程序,但它只启动应用程序而不是这样的服务
那么你能帮我找到在windows中添加mongoDB服务以使其自动启动的解决方案吗?提前致谢。
startup ×10
android ×2
windows ×2
apache ×1
bash ×1
binary ×1
c ×1
conda ×1
dart ×1
elf ×1
embedded ×1
environment ×1
flutter ×1
gcc ×1
homescreen ×1
jakarta-ee ×1
launch ×1
macos ×1
mongodb ×1
performance ×1
python ×1
raspberry-pi ×1
singleton ×1
weblogic12c ×1