我试图在java中使用立方根,Math.pow(n, 1.0/3)但因为它除了双精度,它不会返回确切的答案.例如,对于125,这给出了4.9999999999.有解决办法吗?我知道有一个立方根函数,但我想解决这个问题,所以我可以计算更高的根.
我不想舍入,因为我想知道一个数字是否具有整数根,通过这样做:Math.pow(n, 1.0 / 3) % ((int) Math.pow(n, 1.0 / 3)).
成功设备root后.现在,我需要使设备始终处于唤醒状态,即始终可见UI,无黑屏或任何白日梦屏幕.为此,我想我要完成以下事项:
我发现的是关于应用层的所有内容,即有一些应用程序可以执行上述任务.但是,由于我的移动设备是根植的,我想用系统文件实现,这样即使其他一些应用程序试图改变上述功能,他们也应该不能这样做.
好吧,我一直潜水在低级Android编程(使用CodeSourcery工具链的本机C/C++)的浑水中.我在模拟器上试用了可执行文件,但它确实有效.我想在真实的设备上试一试.所以我插入了我的nexus并将文件推送到文件系统.然后我尝试执行二进制文件,我得到了一个权限错误.无论我如何安装它,或者我发送它的地方都没关系,我不是root,它不会让我执行它.有没有办法在非root手机上运行这样的程序?
我正在寻找一种可用于重启root设备的解决方案.我知道重新启动设备对于用户来说是非常差的设计,如此处所述,并且它不适用于应用程序.主要目的是在测试期间重启手机(我在视频聊天应用程序上工作,有时我需要在一切都向南时重启)
我观察到重新启动手机远比使用终端(adb shell或ConnectBot)中的重启要快得多,而不是通过使用ACTION_REBOOT重新启动,这无论如何都无法使用.
目前,我可以获得超级用户权限
Process root = Runtime.getRuntime().exec("su");
Run Code Online (Sandbox Code Playgroud)
但我不能做实际的重启.我尝试G1(HTC)和Galaxy S(三星)没有任何成功.我找到了重启可执行文件/system/bin/reboot
以下是我的一些尝试:
Process reboot = Runtime.getRuntime().exec("/system/bin/reboot");
Process reboot = Runtime.getRuntime().exec("reboot");
Process reboot = Runtime.getRuntime().exec("su reboot");
Run Code Online (Sandbox Code Playgroud)
我读过这篇关于Runtime.exec()陷阱的文章,但我想我不是这种情况.
由于使用ConnectBot使我能够做这样的动作,我很确定它是可能的.请不要告诉我去看看ConnectBot代码,这是一个庞大而复杂的项目:)
你能帮我解决这个问题吗?
谢谢.
Files.walk(Paths.get("/var/")).count()当作为非特权用户运行时,执行可能会抛出异常,因为内部/var/存在需要遍历root权限的文件夹.
我不是在寻找以root(例如sudo find /var),使用Process等方式执行bash命令的方法.
我只是想确保Files.walk(Paths.get("/var/")).count()不抛出AccessDeniedException:
Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0
at sun.reflect.NativeMethodAccessorImpl.invoke
at sun.reflect.DelegatingMethodAccessorImpl.invoke
at java.lang.reflect.Method.invoke
at org.springframework.boot.devtools.restart.RestartLauncher.run
Caused by: java.io.UncheckedIOException: java.nio.file.AccessDeniedException: /var/cache/httpd
at java.nio.file.FileTreeIterator.fetchNextIfNeeded
at java.nio.file.FileTreeIterator.hasNext
at java.util.Iterator.forEachRemaining
at java.util.Spliterators$IteratorSpliterator.forEachRemaining
at java.util.stream.AbstractPipeline.copyInto
at java.util.stream.AbstractPipeline.wrapAndCopyInto
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential
at java.util.stream.AbstractPipeline.evaluate
at java.util.stream.LongPipeline.reduce
at java.util.stream.LongPipeline.sum
at java.util.stream.ReferencePipeline.count
at com.example.DemoApplication.main
... 5 more
Caused by: java.nio.file.AccessDeniedException: /var/cache/httpd
at sun.nio.fs.UnixException.translateToIOException
at sun.nio.fs.UnixException.rethrowAsIOException
at sun.nio.fs.UnixException.rethrowAsIOException
at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream
at java.nio.file.Files.newDirectoryStream
at …Run Code Online (Sandbox Code Playgroud) 我的python应用程序有问题,我认为它与python垃圾收集有关,即使我不确定...
问题是我的应用程序需要花费大量时间退出并切换到下一个功能.
在我的应用程序中,我处理非常大的字典,包含数千个大型对象,这些对象是从包装的C++类中实例化的.
我在程序中放了一些时间戳输出,我看到在每个函数结束时,当函数内部创建的对象超出范围时,解释器在调用下一个函数之前花费了大量时间.并且我在应用程序结束时观察到同样的问题,程序应该退出:在屏幕上的最后一个时间戳和新提示的外观之间花费了很多时间(〜小时!).
内存使用情况稳定,所以我真的没有内存泄漏.
有什么建议?
可以成千上万的大型C++对象的垃圾收集速度慢吗?
有没有办法加快这个?
更新:
非常感谢您的所有答案,您给了我很多调试我的代码的提示:-)
我在Scientific Linux 5上使用Python 2.6.5,这是一个基于Red Hat Enterprise 5的自定义发行版.实际上,我并没有使用SWIG为我们的C++代码获取Python绑定,而是使用Reflex/PyROOT框架.我知道,它在粒子物理学之外并不是很有名(但仍然是开源的,可以免费获得),我必须使用它,因为它是我们主要框架的默认值.
在这种情况下,来自Python端的DEL命令不起作用,我已经尝试过了.DEL只删除链接到C++对象的python变量,而不是内存中的对象本身,它仍然由C++端拥有...
......我知道,这不是标准我猜,有点复杂,对不起:-P
但是按照你的提示,我会描述我的代码,我会按照你的建议给你回复更多细节.
额外更新:
好的,按照你的建议,我用我的代码检测cProfile,我发现实际上gc.collect()功能是占用大部分运行时间的功能!
这里是cProfile+ pstats print_stats()的输出:
>>> p.sort_stats("time").print_stats(20)
Wed Oct 20 17:46:02 2010 mainProgram.profile
547303 function calls (542629 primitive calls) in 548.060 CPU seconds
Ordered by: internal time
List reduced from 727 to 20 due to restriction
ncalls tottime percall cumtime percall filename:lineno(function)
4 345.701 86.425 345.704 86.426 {gc.collect}
1 167.115 167.115 200.946 200.946 PlotD3PD_v3.2.py:2041(PlotSamplesBranches)
28 … 我目前正在努力修改我的Genymotion Android模拟器的主机文件.
使用Genymotion时,众所周知的重新安装,拉动和推动方式似乎根本不起作用,因为文件系统始终是只读的并且重新安装被拒绝.
之前我认识到Genymotion VM已经附带超级用户,所以我打开了shell并且su'd,但问题是一样的:文件系统是只读的.
有没有人知道如何在Genymotion VM中更改该文件?
谢谢
阿恩
我正在开发一个针对越狱iOS设备的应用程序.它有助于自动执行某些任务.我需要在/ private/var/mobile/Library中创建一个简单的文本文件(实际上是.lua文件).显然,调试器会抛出访问被拒绝的异常.该应用程序现在被命名为"CreateFile",用于测试.
我尝试了以下步骤来获得root访问权限:
打开原始可执行文件并使用以下脚本替换其内容:
#!/bin/bash
dir=$(dirname "$0")
exec "${dir}"/CreateFile "$@"
Run Code Online (Sandbox Code Playgroud)
在iOS上直接启动根应用程序失败.因此,我们使用启动根可执行文件的脚本替换应用程序的主可执行文件.
在终端中,导航到应用包.
chmod 0775原始可执行文件和chmod 6775复制的可执行文件.使用此方法,我可以成功将应用程序安装到/ Applications文件夹并启动它,但是我希望我仍然没有root权限,因为只要应用程序尝试写入操作,它就会崩溃.
如果有人能对这种情况有所了解,我将非常感激!
编辑:
在@creker的建议下做了一些额外的测试.当我尝试在应用程序的文档中创建允许目录中的文件时,它创建就好了,没有任何问题.因此,我确信文件创建不会导致崩溃,并且它只是无法访问的文件夹路径.
同样在@creker的建议下,我尝试将应用程序安装到/ Applications而没有任何启动脚本.应用程序以这种方式打开时崩溃.如果我在安装后将应用程序可执行文件chmod到775,则应用程序将打开但在尝试创建文件时仍会崩溃.
我查看了崩溃记者的系统日志.这是崩溃线:
System.UnauthorizedAccessException: Access to the path "/private/var/mobile/Library/test.txt" is denied
Run Code Online (Sandbox Code Playgroud)
仍然希望解决这个问题,欢迎任何想法!
我对root用户,超级用户,用户和权限感到困惑!我无法在用户"sportu"内创建数据库.以下是我使用的命令: -
athleticu@ip-172-30-4-103:/home/ubuntu$ createdb -T template0 simple_db1
createdb: database creation failed: ERROR: permission denied to create database
athleticu@ip-172-30-4-103:/home/ubuntu$ sudo createdb -T template0 simple_db1
sudo: unable to resolve host ip-172-30-4-103
createdb: could not connect to database template1: FATAL: role "root" does not exist
Run Code Online (Sandbox Code Playgroud)
请有人澄清我的疑惑并告诉我应该写些什么!
我已经运行了我的docker build并且docker run没有 sudo。但是,当我在 docker 容器内启动进程时,它top在主机上显示为根进程(不在容器内)。
虽然由于命名空间和来自 docker 的 cgroups 无法访问主机文件系统,但它是否仍然比以简单用户身份运行更危险?
如果是这样,以非 root 身份在 docker 内部运行事物的正确方法是什么?
我应该USER nonroot在 Dockerfile 的末尾做吗?
更新:
root 它也需要构建一些东西。我应该放在USERDockerfile的最上面,然后sudo与其他依赖项一起安装,然后sudo仅在构建中需要时使用吗?
有人可以在开始、安装和使用 USER 时给出一个简单的 Dockerfile 示例sudo吗?
root ×10
android ×4
java ×3
android-ndk ×1
arm ×1
codesourcery ×1
decimal ×1
docker ×1
double ×1
genymotion ×1
ios ×1
jailbreak ×1
math ×1
nio ×1
performance ×1
postgresql ×1
python ×1
reboot ×1
role ×1
runtime ×1