我有一个UWP Windows 10应用程序,并注意到任务管理器中的内存使用量随着时间的推移而增加.
我将应用程序剥离,发现导航页面时内存正在增加.所以我制作了一个只有几页的简单应用程序来测试,在这个简单的应用程序中内存仍在增加.我有一个MainPage,可以将一个帧从Page1导航到Page2,然后返回一个计时器.
public sealed partial class MainPage : Page
{
private DispatcherTimer _timer;
private bool _page1Showing;
private bool _timerRunning;
public MainPage()
{
this.InitializeComponent();
_timer = new DispatcherTimer();
_timer.Interval = new TimeSpan(0, 0, 0, 0, 200);
_timer.Tick += _timer_Tick;
}
private void _timer_Tick(object sender, object e)
{
GC.Collect();
this.rootFrame.BackStack.Clear();
this.rootFrame.ForwardStack.Clear();
if (_page1Showing)
{
this.rootFrame.Navigate(typeof(Page2));
_page1Showing = false;
}
else
{
this.rootFrame.Navigate(typeof(Page1));
_page1Showing = true;
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (_timerRunning)
{
_timer.Stop();
_timerRunning = …Run Code Online (Sandbox Code Playgroud) 有没有人在Android L中使用任务锁定工作?他们可以分享一些有关它如何运作的细节吗?我已经看到了下面的说明,但很难理解这一点.
目前我已经制作了一个我希望在自助服务终端模式下运行的应用程序.我已经看过它是一个启动器应用程序或使用Surelock,但新的任务锁定看起来将来是最好的选择.
我需要创建一个Android L的userdebug构建?我以前没有从源代码构建Android,我开始考虑制作一个版本,但我不认为Android-L的源代码可用吗?
To set up a device owner, follow these steps:
Attach a device running an Android userdebug build to your development machine.
Install your device owner app.
Create a device_owner.xml file and save it to the /data/system directory on the device.
$ adb root
$ adb shell stop
$ rm /tmp/device_owner.xml
$ echo "<?xml version='1.0' encoding='utf-8' standalone='yes' ?>">> /tmp/device_owner.xml
$ echo "<device-owner package=\"<your_device_owner_package>\"name=\"*<your_organization_name>\" />" >> /tmp/device_owner.xml
$ adb push /tmp/device_owner.xml /data/system/device_owner.xml
$ adb reboot
Run Code Online (Sandbox Code Playgroud)
https://developer.android.com/preview/api-overview.html
编辑:更多信息 …
我正在尝试使用NFC在设备上设置设备所有者包.这里的Lollipop概述中提到了:
要部署和激活设备所有者,您必须在设备处于未设置状态时执行从编程应用程序到设备的NFC数据传输.此数据传输发送的信息与托管配置中描述的配置意图相同.
原因是一旦设置完毕,您就可以使用屏幕固定功能将设备锁定在自助服务终端模式.我已经能够通过在rooted设备上将device_owner.xml文件放到data/system /来手动设置设备所有者来测试此kiosk模式.
我之前从未使用过NFC,所以我可能会离开,但我根据这里的信息提出了以下NdefMessage :
Properties properties = new Properties();
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME, "com.my.package");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_SSID, "MyWiFiSSID");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_PASSWORD, "WifiPassword");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM, "C9AD9E082457819B54CF76255A400375E4127112");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION, "https://dl.dropboxusercontent.com/u/xxx/app-release.apk");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(bos);
out.writeObject(properties);
byte[] yourBytes = bos.toByteArray();
NdefRecord ndefRecord = NdefRecord.createMime(DevicePolicyManager.MIME_TYPE_PROVISIONING_NFC, yourBytes);
NdefMessage msg = new NdefMessage(ndefRecord);
Run Code Online (Sandbox Code Playgroud)
将此发送到我刚刚使用Lollipop预览恢复的设备会导致它显示:
哎呀!无法设置您的设备.联系您的IT部门.
它似乎正在认识到它正在接收一个提供请求的事实,但我不认为它正在读取我设置的属性,它不会尝试连接wifi.