一定要选择
下面新建一个文件就好了 然后就是编辑 再就是编译
再加入hex就ok了
vision的设置
如果在vision中编译后没有hex
在output中设置下
第一个我的设计和代码
org 0
sjmp start
org 30H
start:
MOV SP,#60H
MOV P1,#0FeH
MOV A, #01H
MOV R3,#07H
MAIN:
MOV P1,A
RL A ;RL是循环左移 最高位到最低位 RR是循环右移
CALL DELAY
DJNZ R3,MAIN ;这里的r3可以换成r5 不晓得是什么意思
MOV R3,#07H
SJMP MAIN
DELAY:
MOV R0,#250
D2:MOV R1,#250
D1:DJNZ R1,D1
DJNZ R0,D2
RET
END
编译 ffmpeg 的时候需要加入如下 configure 选项支持PIPE,否则函数avformat_open_input会一直阻塞。
--enable-protocol=pipe \
在当前Android同比于IOS的优点中,Android系统的桌面Widget、消息管理器、功能开放所带来的便捷无疑是提升用户体验的重要一点。
今天给大家带来关于创建桌面快捷方式的知识点,包括创建文件快捷方式、创建APK快捷方式以及一些注意事项。
众所周知,我们能在所有程序里看到应用的图标是因为我们将程序的入口类
在AndroidManiest设置为:<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
后系统会自动为我们在所有程序里添加图标。
但以上方法无法做到将快捷方式添加到Launcher的桌面上(比如UC、QQ都有增加桌面快捷方式的功能)
一、增加桌面快捷方式
我们可以通过如下方法添加:
1.打开权限:在AndroidManifest.xml中添加权限:com.android.launcher.permission.INSTALL_SHORTCUT
2.制作Intent:
1>Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
2>// 快捷方式的"名称"
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.name_xxx));
// 快捷方式的"图标"
ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
3>// 指定要"做什么" 的Intent
简单的,我们可以创建电话快捷方式、邮件快捷方式、短信快捷方式等
Uri uri = Uri.parse("tel:0800000123");
Intent myIntent = new Intent(Intent.ACTION_DIAL, uri);
其次,我们可以创建不同类型文件的快捷方式
Intent myIntent = new Intent(mimetype, uri/*文件绝对路径或者数据库路径*/);
重要的,我们可以对自己的应用创建某个功能模块的快捷方式,一键进入功能,非常方便。
// 指定快捷方式所需要打开的目标类: 如 com.android.xxx.xxx
ComponentName comp = new ComponentName(this.getPackageName()/*包名*/, appClass/*目标类*/);
// 为Intent自定义一个action,此action可以用来辨别进入应用的方式等
String action = "com.action.xxx";
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(action).setComponent(comp));
3.最后,将制作好的过intent通广播发送给launcher
后期,我们还可以进行创建非自身应用的快捷方式、桌面长按列表里的快捷方式等,自己定义的action最重要。
二、删除桌面快捷方式
粗略的删除:
1.打开权限:在AndroidManifest.xml中添加权限:com.android.launcher.permission.UNINSTALL_SHORTCUT
2.制作Intent:同样按照上述的方法,但intent指明为:Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");
3.最后,将制作好的过intent通广播发送给launcher
准确的删除:
通过launcher数据库具体查询吧,还有待自己去进一步搞。
ContentResolver cr = mapViewActivity.getContentResolver();
String AUTHORITY ="com.android.launcher.settings";
final Uri CONTENT_URI = Uri.parse("content://" +AUTHORITY + "/favorites?notify=true");
Cursor c = cr.query(CONTENT_URI,new String[] {"title","iconResource" },"title=?",
new String[] {mapViewActivity.getString(R.string.app_name).trim()}, null);
if(c!=null && c.getCount()>0){
代表存在 ;
}
以上是快捷方式的添加和删除,接下来介绍一些这次用到的解决因增加程序入口引发的栈序紊乱的解决办法。
由于快捷方式、桌面widget等增加入口的方式会导致栈序紊乱,特别是home键返回桌面的问题,那么,解决问题的根本办法就是通过需求的具体分析,设计出在某些时刻的清栈。
我们经常用到的通过launchMode改变activity的运行方式由于改变了activity的特性而变得不够灵活,所以通过API里intent的flag去释放栈空间是最有效的方法。
我们可以利用以下几点:
1.FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP:清除非自己
2.FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_SINGLE_TOP:类似singleTop的效果,只不过是直接弹出栈,直到相应activity到达栈定
3.FLAG_ACTIVITY_NO_HISTORY:无历史性的前行
当然了,这些flag会和很多基础flag有冲突,比如和正常的入口类flag等等,需要择优选择和规避,还有一些其他的flag用法,大家可以去API具体细细研究,API无限可能。