android 获取系统时间 android获取当前日期
如何使Android应用程序获取系统权限 来修改系统时间
db1.insert("date", null, values1);//把values1内容加入数据库在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用。 本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。 个方法简单点,不过需要在Android系统源码的环境下用make来编译: 1. 在应用程序的AndroidManifest.xml中的manifest中加入 "android:sharedUserId="android.uid."这个属性。 2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行 3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。 第二个方法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译: 1. 同上,加入"android:sharedUserId="android.uid."这个属性。 2. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。 3. 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。 4. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦, 首先找到密钥文件,在我的Android源码目录中的位置是"build argetproductsecurity",下面的platform.pk8和platform.x509.pem两个文件。 然后用Android提供的Signapk工具来签名,signapk的源代码是在"build oolssignapk"下,用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",文件名使用路径防止找不到,也可以修改源代码直接使用。这样得到的apk和个方法是一样的。 解释一下原理,首先加入android:sharedUserId="android.uid."这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。 只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform key,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。 这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到 platform.pk8和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android 中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.",这样也是保护了系统的安全。
android 获取系统时间 android获取当前日期
android 获取系统时间 android获取当前日期
- 低级别的系统调试Log信息
安卓手机怎么修改系统时间
个方法简单点,不过需要在Android系统源码的环境下用make来编译:若使用的是vivo手机,进入设置--系统管理/更多设置--日期与时间中可修改手机时间。(修改前需将“自动设置”关闭)。
命令行
首先我想到的是手机root,然后命令行
date -s 要设置的时间1
关于如何调用命令行,请点击:安卓程序中调用 linux 命令
如果手机没 root 怎么破呢,继续往下看吧。
如何使Android应用程序获取系统权限来修改系统时间
这里说明一点,由于在manifest文件加入android:sharedUserId=”android.uid.”这个属性,导致 Android Studio 等工具,直接编译运行会出现此提示窗:
获取了权限了,一行代码就可以设置时间:
SystemClock.setCurrentTimeMillis(millTime);
在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用。
android:sharedUserId="android.uid."这个属性。
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。
第二个方法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:
1. 同上,加入android:sharedUserId="android.uid."这个属性。
2. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。
3. 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
4. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,
是"buildtargetproductsecurity",下面的platform.pk8和platform.x509.pem
两个文件。
然后用Android提供的Signapk工具来签名,signapk的源代码是
在"buildtoolssignapk"下,
用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",
文件名使用路径防止找不到,也可以修改源代码直接使用。
这样得到的apk和个方法是一样的。
解释一下原理,首先加入android:sharedUserId="android.uid."这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。
只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform key,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。
这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到platform.pk8 和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.",这样也是保护了系统的安全。
最还说下,这个android:sharedUserId属性不只可以把apk放到系统进程中,也可以配置多个APK运行在一个进程中,这样可以共享数据,应该会很有用的。
1、关闭自动设置,就可以手动修改系统时间;
2、进入手机设置,找到通用
3、进入通用,找到日期与时间
4、进入日期与时间,找到自动设置,关闭自动与设置开关,然后可以手动滑动日期和时间来修改
你好.不知道你手机的系统是什么?我用原生安卓系统的修改方法来回答吧:
在桌面点击设置.打开设置后一直往下拉.你会在界面看到日期和时间.点击进去后.如果想自定义修改时间.则需要把“自动确定日期和时间”前面的勾去掉.然后在“设置日期”和“设置时间”自己修改即可完成修改时间
Linux怎样修改系统时间
修改linux的时间可以使用date指令
修改日期:
时间设定成2009年5月10日的命令如下:
#date -s 05/10/2009
修改时间:
将系统时间设定成上午10点18分0秒的命令如下。
#date -s 10:18:00
修改时区:
找到相应的时区文件 /usr/share/zone/Asia/Shanghai替换当前的/etc/localtime。
修改/etc/sysconfig/clock文件的内容为:
ZONE=”Asia/Shanghai”
UTC=false
ARC=false
同步bios时间:
同步BIOS时钟,强制把系统时间写入CMOS,命令如下:
#clock -w
date命令的功能是显示和设置系统日期和时间。
输入date 查看目前系统时间。
修改时间需要 date -功能字符 修改内容
命令中各选项的含义分别为:
-d datestr, --date datestr 显示由datestr描述的日期
-s datestr, --set datestr 设置datestr 描述的日期
-u, --universal 显示或设置通用时间
时间域
%H 小时(00..23)
%I 小时(01..12)
%k 小时(0..23)
%l 小时(1..12)
%M 分(00..59)
%p 显示出AM或PM
%r 时间(hh:mm:ss AM或PM),12小时
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 秒(00..59)
%T 时间(24小时制)(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 时区 日期域
%a 星期几的简称( Sun..Sat)
%B 月的全称(January..December)
%c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
%d 一个月的第几天(01..31)
%D 日期(mm/dd/yy)
%h 和%b选项相同
%m 月(01..12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00..53,星期一为天)
%x 显示日期的格式(mm/dd/yy)
%Y 年(例如:1970,1996等)
需要特别说明的是,只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。
例1:用指定的格式显示时间。
$ date '+This date now is =>%x ,time is now =>%X ,thank you !'
This date now is =>11/12/99 ,time is now =>17:53:01,thank you !
例2:用预定的格式显示vivo手机可进入设置--系统管理/更多设置--日期与时间,可打开自动设置,联网后会自动对时。也可以关闭自动设置,设置时间,手动输入时间和日期。当前的时间。
# date
Fri Nov 26 15:20:18 CST 1999
例3:设置时间为下午14点36分。
# date -s 14:36:00
Fri Nov 26 14:15:00 CST 1999
例4:设置时间为1999年11月28号。
# date -s 28
Sun Nov 28 00:00:00 CST 1999
实例:设置时间伟2008年8月8号12:00
修改完后,记得输入:clock -w
把系统时间写入CMOS
点你手机的设置键或设置单,里面就有时间日期设置 安卓机不全都一样的。
设置——日期和时间设置——勾掉自动——设置时间
下个手机管家 可以自动校时
android adb命令修改系统时间
本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。修改前提:获取系统root权限,然后adb shell进入shell界面。
在adb shell中试图使用 date -s "yyyymmdd.[[[hh]mm]ss]"修改系统系统时间时,会提示 date: Unknown option s。
adb的全称为Android Debug Bridge.是android用户经常用到的工具,adb shell下的am与pm,am和pm命令必须先切换到adb shell模式下才能使用。
am全称activity mar,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等。
扩展资料:
注意事项:
2、查看ADB帮助:adb
3、查看log:adb logcat
4、终止adb服务进程:a使用DatePickerDialogTimePickerDialog来实现修改系统时间,系统时间不是那么好修改的,涉及到修改应用程序权限的问题,必须使应用程序有系统的签名才可以修改系统时间,这里附上作步骤:db kill-server
5、重启adb服务进程:adb start-server
6、显示系统中全部android平台:android list targets、
参考资料来源:
参考资料来源:
手机时间在哪更改
多次点击 ok 无效,因为设置了系统属性,所以,下次你运行别的项目,出现此情况时,可以检查下时候添加了该属性的,有的话,去掉,再编译运行就可以的。所有手机更改日期大致相同,这里以三星手机为例说明:
Android框架则是通过Logger驱动打印log信息,这些log并没有归并到kmesg文件中,而是单独存储的,位于/dev/log目录下,在Shell终端可以通过logcat命令来查看。1. 在手机桌面中点击打开“设定”,要进入“设定”中,才能对日期和时间做出调整的。
2. 点击打开“设定”之后,在“设定”下找到“日期和时间”。找到“日期和时间”以后,点击打开。
3. 点击打开“日期和时间”以后,在“日期和时间”下找到“设置日期”。找到之后,点击打开。
5. 日期调整以后,点击下方的“设定”。这样,日期的设置就算完成了
1、打开手机,点击进入“设置”。
2、在“设置”界面,点击“全部设置”,然后找到“安全”选项,并点击进入。
3、在“安全”界面,找到“直接显示密码锁屏界面”。当“直接显示密码锁屏界面”处于关闭状态时,锁屏时间位置在屏幕下方,当开启时,锁屏时间位置则位于屏幕中间。
以华为mate20手机为例,华为手机时区设置办法如下:
1、在华为mate20手机桌面上打开“设置”,然后单击“高级设置”。
2、打开华为mate20手机“时间和日期”。
4、可以根据自己的需要更改华为mate20手机时区了。
扩展华为Mate20手机很不错,参数如下:
1、屏幕:屏幕尺寸是6.53英寸,屏幕色彩为1670万色,分辨率FHD+ 1080 x 2244 像素,屏幕清晰,玩游戏、看视频更爽。
2、摄像头:后置徕卡三摄1200万像素(广角,f/1.8光圈)+1600万像素(超广角,f/2.2光圈)+800万像素(长焦,f/2.4光圈),支持自动对焦(激光对焦/相位对焦/反对焦),支持AIS防抖。前置摄像2400万像素,f/2.0光圈,支持固定焦距,更加细腻。
3、性能:华为Mate 20手机采用EMUI 9.0(基于Android 9)作系统,搭载麒麟980+八核处理器,多应用同时运行无压力,游戏运行更流畅。
4、电池:电池容量4000mAh(典型值),手机支持4.5V/5A或5V/4.5A超级快充,兼容9V/2A快充,理论充电时间约1.5小时,持久续航。
以华为P30 Pro手机为例:
可以根据需要,手动调整日期、时间、时区。
进入设置 > 系统和更新 > 日期和时间,按需设置。
1.自动获取或手动设置日期和时间
(1)开启自动设置开关,手机将与当前网络上的时间同步。
(2)或关闭自动设置开关手动调整日期和时间。
2.设置 12 小时制或 24 小时制
(1)开启24小时制开关,时间将以 24 小时格式显示。
(2)关闭24小时制开关,时间将以 12 小时格式显示。
3.修改时区
(1)开启自动设置开关,手机将与当前网络上的时区同步。
(2)关闭自动设置开关您可以手动修改时区。
android系统如何通过$ adb 来获得/data/data目录的访问权限
<6> [ 6.613861] Freeing init memory: 176K首先需要将你SDK下的adb.exe的路径加入到电脑的PATH环境变量中,然后adb shell 回车 cd data/data 就好了
开启自动设置开关,手机将与当前网络上的时间同步。adb shell
chmod 777 -R /data/data
Android系统原理及开发要点详解的前 言
获取系统权限修改Android 是Google历经数年和投资数亿美元开发出来的智能手机系统,Google也发起了围绕Android的组织——开放手机联盟,其英文全1、查看adb版本:adb version称为“Open Handset Alliance”。
手机时间怎么设置?
OPPO手机时间显示的设置方法:vivo手机进入设置--系统管理/更多设置--日期与时间,可打开自动设置,联网后会自动对时。也可以关闭自动设置,设置时间,手动输入时间和日期。
那么,如何找到Android系统启动完成的标志呢?所有手机均具有联网获取世界标准时(含时间)的功能。同时手机在设置页面下,还具有手动调整世界时区、日期及小时、分钟和秒的设置。如果个人不明白,可以到当地手机专卖店或手机售后服务窗口进行咨询和了解。
苹果 打开设置 上滑到最上面有个搜索 搜索上面输入时间 就会看到一个日期与时间 里面点击进去就可以设置了
android得到系统时间如何判断是白天还是晚上
3、关闭华为mate20手机“自动确定日期和时间”和“自动确定时区”以修改时间和时区。需要得到时间是白天还是晚上分别处理。但是得到的系统时间是十二小时制的,没有显示出白天还是晚上。即使我把手机改成二十四小时制的得到的时间也是十二小时制的。就像白天七点和晚上七点是分不出来的。而且还有一个问题就是,万一用户用的是十二小时制的话,那我也没法判断。大家帮帮忙有什么好的办法能判断是白天还是晚上。先谢谢大家了。 ------解决方案--------------------------------------------------------这东西通过客户端来判断有些困难吧 ,客户端时间可以随意更改的 ------解决方案--------------------------------------------------------可以判断的,12小时制的时间里面的AM、PM分别代表上午、下午 ContentResolver cv = getBaseContext().getContentResolver(); String strTimeFormat = android.provider.Settings.System.getString(cv, android.provider.Settings.System.TIME_12_24); if(strTimeFormat!=null && strTimeFormat.equals("24")){Log.i("Debug","24小时制");}else{String amPmValues; Calendar c = Calendar.getInstance();你不需要理会用户的时间是12小时还是24小时,只要时间是正确的就行,
1. 在应用程序的AndroidManifest.xml中的manifest中加入android开发过程中怎样通过代码设置系统时间,求详细解答。从步到实现????
%y 年的两个数字( 199# date -s "2008-08-08 12:00:00"9则是99)高通平台android怎么过去开机时间
(1) Android是基于Linux内核的系统,因此Android的启动过程是分为两个阶段的:
第二个阶段就是Android框架的启动(包括核心服务和程序)。
(2)Android的log系统是于Linux内核的log系统的。
Linux内核通过prin开启自动设置开关,手机将与当前网络上的时间同步。tk打印的log信息,这些log写入到了/dev/kmsg文件中,在Shell终端可以通过dmesg命令查看这些log信息。
下面我们分别从两种log信息中找到如何统计系统启动时间的方法。
1. 通过dmesg信息统计Linux内核启动时间
首先,我们通过dmesg命令抓取Linux内核的log信息(部分系统可能需要先执行 adb root):
$ adb shell dmesg > dmesg.txt
Linux内核启动完成,一般都有如下的标准输出信息:
因此,只要我们在dmesg.txt文件中找到“Freeing init memory”这一行即可,从上面的log可以看出,Linux内核启动只用了6.613861s。
很多An%A 星期几的全称( Sunday..Saturday)droid设备在系统启动完成后,会在内核log中打印如下信息:
<6>[ 29.3726] init: processing action 0x96bb8 (property:sys.boot_completed=1)
因此,找到“boot_completed”这一行也就得到了整个系统的启动时间了,从这一行可以看出,整个系统启动用了29.3726s。
当然,并不是所有的Android设备都会打印出这条log,因此,我们一般用下面介绍的方法来专门统计Android系统的启动时间,
2. 通过logcat统计Android Logger启动时间
文章开头我们已经介绍过,Android的log系统是于Linux内核log系统的,通过在终端输入adb shell 进入Android系统,cd到/dev/log目录,你会发现里面有四个文件,分别是:nts,main,radio,.
Android系统把Log分为了四类,不同的类别记录不同的Log信息:
main - 主要的Log信息,大部分应用级别的Log信息都在这里
nts - 系统相关的Log信息
radio - /电话相关的Log信息
默认通过logcat抓取的是main信息,如果想抓取指定类别的log信息的方法,在logcat命令后加-b参数,例如:
1234
$ adb logcat -d -v time -b "main" > main.txt$ adb logcat -d -v time -b "nts" > nts.txt$ adb logcat -d -v time -b "" > .txt$ adb logcat -d -v time -b "radio" > radio.txt
关于Android Log系统的分类,你可以访问如下页面详细了解: 《Android Logging System》
那么,如何统计Android系统的启动时间呢?
我们可以重点关注nts类别的log信息,通过如下命令:
$ adb logcat -v time -d -b nts | grep "boot"
如图所示,这是我在高通的APQ8064开发板上抓取的log信息:
“boot_progress_start”代表着Android屏幕点亮,开始显示启动动画,即15.492s开始闪烁Android字样。
“boot_progress_enable_screen”代表着整个系统启动结束,即用了29.986s,用这个总时间减去Linux Kernel的启动时间即可得到Android OS部分的时间。
3. 小结
由于本文重点关注如何统计Android系统的启动时间,因此,很多启动log文件的分析就不做详细展开了,下一篇文章将会对系统启动的log做稍微详细的分析。有任何疑问或者建议欢迎留言或者来信lujun.hust@gmail交流,或者关注我的新浪微博 @卢_俊 获取的文章和资讯。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。