pp助手历史版本deb

pp助手历史版本deb,第1张

1安卓app历史版本

1手机下载安装 在手机浏览器中输入/并确定进入,点击“立即下载”,下载完成后,PP助手安卓版会自动跳出提醒页面,提醒用户安装,点击“安装”按键即能自动完成安装。

所需内存也非常小,几乎不占手机内存。 2电脑下载安装 将你的手机连接电脑,打开PP助手安卓版的官方下载页面/pp_android,直接点击“立即下载”,将PP助手安卓版安装包保存到你手机的指定文件夹中即可。

然后再打开手机中的所保存到的文件夹,打开PP助手安卓版安装包按照指示完成安装。

2PP助手怎么安装deb文件

deb是debian发行版的软件包ubuntu是基于debian 发行的 所有可以用deb是solaris系统下的安装包后缀名。

安装方法如下cd 到安装包的目录dpkg -i 安装包名字dpkg的详细用法:dpkg -i 安装一个Debian包裹文件,如你手动下载的文件。 dpkg -c 列出的内容。

dpkg -I 从中提取包裹信息。 dpkg -r 移除一个已安装的包裹。

dpkg -L 列出 安装的所有文件清单。同时请看 dpkg -c 来检查一个 deb 文件的内容。

dpkg -P 完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。

dpkg -s 显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 deb 文件中提取的包裹信息。

dpkg-reconfigure 重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。你能够重新配制 debconf 它本身,如你想改变它的前端或提问的优先权。

例如,重新配制 debconf,使用一个 dialog 前端,简单运行:dpkg-reconfigure –frontend=dialog debconf。

3PP助手如何安装deb格式Cydia的插件

使用电脑安装deb方法

方法一

1将手机连接电脑打开PP助手--文件--文件系统(越狱)--路径:/var/root/Media/Cydia/AutoInstall(将deb格式的Cydia插件导入。)

2然后重启手机(如果没有安装成功,请再重启一次!)

方法二

1在Cydia安装iFile(文件管理)插件(源地址:威锋源aptweiphone)

2将手机连接电脑打开PP助手--文件--文件系统(越狱)--路径:/var/root/Media/Cydia/AutoInstall(将deb格式的Cydia插件导入。路径可以随便只要自己记住就可以。)

3通过iFile(文件管理)打开路径:/var/root/Media/Cydia/AutoInstall(这路径是自己导入deb格式),点击软件进行安装(安装后没有请重启一次)。

4PP助手怎么安装deb文件

deb是debian发行版的软件包

ubuntu是基于debian 发行的 所有可以用

deb是solaris系统下的安装包后缀名。安装方法如下

cd 到安装包的目录

dpkg -i 安装包名字

dpkg的详细用法:

dpkg -i 安装一个Debian包裹文件,如你手动下载的文件。

dpkg -c 列出的内容。

dpkg -I 从中提取包裹信息。

dpkg -r 移除一个已安装的包裹。

dpkg -L 列出 安装的所有文件清单。同时请看 dpkg -c 来检查一个 deb 文件的内容。

dpkg -P

完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。

dpkg -s

显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 deb 文件中提取的包裹信息。

dpkg-reconfigure

重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。你能够重新配制

debconf 它本身,如你想改变它的前端或提问的优先权。例如,重新配制 debconf,使用一个 dialog

前端,简单运行:dpkg-reconfigure –frontend=dialog debconf

5pp助手如何安装deb

deb包的2种安装安装方法:

一、cydia重启自动安装: 用ifunbox进入//var/root/Media/Cydia/AutoInstall Cydia/AutoInstall 需要分别单独建立,注意大小写。然后把你要安装的deb 拖入此目录,重启两次机器进行安装。

二、iFile安装: 把deb包用ifunbox传到//var/mobile/Documents下。 打开iFile软件,找到上面那个路径。 点击deb包,选d出菜单中的“安装程序”。 等安装完成后,点右上角的“完成”,重启手机。

JavaScript中常见的模态框有以下几种:
1 alert:用于d出一个警示框,只能显示一段文字信息和一个“确定”按钮。
2 confirm:用于d出带有确认和取消两个选项的对话框,用户点击确认返回true,点击取消返回false。
3 prompt:用于d出一个输入框,用户可以在其中输入信息,并返回用户输入的内容。
4 showModalDialog:用于显示模态对话框,与windowopen()方法相似,但d出的窗口是模态的,即必须先处理完该窗口的 *** 作才能回到原窗口。
5 Bootstrap Modal:Bootstrap是一种CSS前端框架,其中包含很多可用于网页开发的组件,包括d出框组件——Modal。Modal可以自定义内容和样式,并支持动画效果,通常用于网站的登录、注册、消息提醒等场景。
需要注意的是,alert、confirm和prompt都是由浏览器提供的默认实现,而showModalDialog和Bootstrap Modal则需要依赖相关的库或组件进行实现。

可能产生这个问题的原因有二:
一、是jquery ui dialog插件的问题。相对于Jquery本身而言,jquery的ui插件在开发的时候不一定严谨,可能会导致一些异常情况出现。我就见到过好几个官方插件出现过莫名其妙的问题。
二、是此jquery ui dialog插件与jquery17minjs版本不兼容的问题。有些插件可能陈旧,有些插件可能必须基于新版jquery。
对于一的解决:因为是jquery17minjs报错缺少对象,说明是jquery ui dialog在某个环节下使用了不正确的函数,只能肯定是jquery ui dialog的问题,却不知道jquery ui dialog具体出错的位置,建议查找ie浏览器的专属代码块,通过打断点的方法去测试,找到正确的位置,然后把jquery ui dialog修改掉。我曾经改过一个类似的错误,花了一天多时间。
对于二的解决:到jquery官网去找最新版的dialog插件(记得要完整下载),同时使用最新版的jquery。
总的来说,最好是换掉当前的jquery ui dialog,无论是通过找最新的,还是换一个同等功效的。
不建议修改jquery ui dialog本身,太出力不讨好了。

1介绍
在使用Android Studio开发的时候,大部分人都会使用一些插件来提高开发效率,比如:
ButterKnife 自动生成注解代码
PermissionsDispatcher 更方便的进行Android 60权限处理
像这样的插件还有很多很多,但我们不能一直停留在用的程度,这样太不符合程序猿的风格了,今天就让我们自己动手来写一个插件,当以后自己有好的想法的时候,也能写一个出色的插件给大家使用。
想到以前写系统原生dialog的时候还要写一大串代码,简直太麻烦,今天就用这个做例子,写一个插件来实现一键生成dialog代码。
注:本文只是为了熟悉Android Studio插件开发,所以用一个比较简单的例子来演示。
2环境搭建
首先需要安装IntelliJ IDEA
安装完成后,运行起来是这个样子的:
IntelliJ IDEA
点击Create New Project新建一个Plugin项目,填写项目名称,选择位置就可以点击finish了。
New Project
项目结构如下图所示:
项目结构
src目录下建包,和平时使用Android Studio的方式是一样的。
到这里,环境就搭建成功了(^-^)V
3编写插件
新建Action
在新建的包下建一个Action类
New Action
然后填写一些信息
填写信息
ActionID:Action唯一的ID,一般的格式为:pluginNameID
ClassName:类名
Name:插件最终显示在菜单上的名称
Description:对这个Action的描述信息
然后往下,选择插件在菜单中的位置,这里选择的是Code菜单下第一的位置,然后定义一个快捷键。
点击OK,就创建了一个Action类了,
public class CreateDialogAction extends BaseGenerateAction {
public CreateDialogAction() {
super(null);
}
public CreateDialogAction(CodeInsightActionHandler handler) {
super(handler);
}
@Override
public void actionPerformed(AnActionEvent e) {
}
}
注意把继承的AnAction改成BaseGenerateAction,下文需要用到BaseGenerateAction类中的相关方法。
代码实现
主要实现在类中自动生成代码,首先获取相关的 *** 作类,已在代码中加入注释说明。
public class CreateDialogAction extends BaseGenerateAction {
public CreateDialogAction() {
super(null);
}
public CreateDialogAction(CodeInsightActionHandler handler) {
super(handler);
}
@Override
public void actionPerformed(AnActionEvent e) {
// 获取编辑器中的文件
Project project = egetData(PlatformDataKeysPROJECT);
Editor editor = egetData(PlatformDataKeysEDITOR);
PsiFile file = PsiUtilBasegetPsiFileInEditor(editor, project);
// 获取当前类
PsiClass targetClass = getTargetClass(editor, file);
// 获取元素 *** 作的工厂类
PsiElementFactory factory = JavaPsiFacadegetElementFactory(project);
// 生成代码
new LayoutCreator(project, targetClass, factory, file)execute();
}
}
生成代码,需要继承WriteCommandActionSimple类,在run方法中写生成代码的逻辑,将生成dialog的代码存入StringBuilder,然后调用targetClass类中的add方法生成代码,最后再导入需要的类。
public class LayoutCreator extends WriteCommandActionSimple {
private Project project;
private PsiFile file;
private PsiClass targetClass;
private PsiElementFactory factory;
public LayoutCreator(Project project, PsiClass targetClass, PsiElementFactory factory, PsiFile files) {
super(project, files);
thisproject = project;
thisfile = files[0];
thistargetClass = targetClass;
thisfactory = factory;
}
@Override
protected void run() throws Throwable {
// 将d出dialog的方法写在StringBuilder里
StringBuilder dialog = new StringBuilder();
dialogappend("public void showDialog(){");
dialogappend("androidsupportv7appAlertDialogBuilder builder = new AlertDialogBuilder(this);");
dialogappend("buildersetTitle(\"Title\")\n");
dialogappend("setMessage(\"Dialog content\")\n");
dialogappend("setPositiveButton(\"OK\", new androidcontentDialogInterfaceOnClickListener() {\n" +
"@Override\n" +
"public void onClick(DialogInterface dialog, int which) {\n" +
"\t\n" +
"}" +
"})\n");
dialogappend("setNegativeButton(\"Cancel\", new DialogInterfaceOnClickListener() {\n" +
"@Override\n" +
"public void onClick(DialogInterface dialog, int which) {\n" +
"\t\n" +
"}" +
"})\n");
dialogappend("show();");
dialogappend("}");
// 将代码添加到当前类里
targetClassadd(factorycreateMethodFromText(dialogtoString(), targetClass));
// 导入需要的类
JavaCodeStyleManager styleManager = JavaCodeStyleManagergetInstance(project);
styleManageroptimizeImports(file);
styleManagershortenClassReferences(targetClass);
}
}
点击编译器右上角的绿色Run按钮,会重新启动一个新的IntelliJ IDEA的界面,在这里创建一个Android工程,点击Code,会看到Android Dialog选项,看下效果:
Android Dialog
OK,到这里我们就成功的创建了一个插件,下面让我们来看看如何来部署插件。
4部署插件
填写相关信息
打开项目中的pluginxml文件,填写相关的信息,这些信息会展示在插件库中,如下图所示。
plugin
点击Bulid菜单下的Prepare Plugin按钮会在项目的根目录生成jar插件,如下图所示:
生成插件
安装插件
打开Andorid Studio,选择File -> Settings -> Plugins -> Install plugin from disk,选择我们生成的jar然后重启即可,如下图所示,红框标记的部分就是我们刚才在pluginxml文件中填写的信息:
安装插件
发布插件
还可以把插件发布到仓库,让其他人也能使用,进入 JetBrains 官网,注册账号,提交插件jar包,填写相关信息,等待审核就可以了。
5遇到的问题
安装插件的时候出现下面的报错,是因为IDEA中jdk的版本是18,而我的Android Studio中jdk的版本是17导致的,版本统一就好了。
Android Dialog threw an uncaught PluginException
6总结
总结一下之前的步骤:
下载Intellij IDEA,新建一个Intellij Platform Plugin的项目(注意jdk版本的问题,最新的IDEA需要jdk 18版本)
在项目中新建一个Action,把继承的AnAction改成BaseGenerateActio
编写API,这个可以参考其他插件的写法
点击Bulid菜单下的Prepare Plugin按钮生成jar,这个jar就可以直接用来安装了

jsp页面d出登录对话框是通过js来实现的。
比如,用loading方法载入提示动作:
<head>
<script>
function loading()
{
windowalert("");
windowprompt("输入用户名和密码登录","用户登录");
var r=windowconfirm("请确认是否要登录");
}
</script>
</head>
<body onload="loading()">
</body>

插件放在用户目录下的plugins目录。插件后缀该为pyd, pypv(加密文件)。 C4D 启动后,寻找并执行此目录下所有以pyp 或 pypv结尾的插件。一个简单的插件如下:

这个插件不好玩,就能输出个hello world! 但是,我们可以在程序的各个部分注册插件钩子。

所有插件的钩子都从 BaseData 继承而来, 这些类包含能被C4D调用的方法。 MessageData 的例子:

向C4D注册插件需使用 Register () 。 注册函数可接收实例也能接收类,在内部自己创建对象:
pluginsRegisterCommandPlugin(id=PLUGIN_ID, str="TestBase-Plugin", info=0, dat=SampleData())

NodeData的注册方法需要一个类名:

数据类的声明周期还有点说道,上面的例子中将新的实例传给了注册函数,在C4D的session周期内此实例都存在。其构造和析构函数正常调用,不用多想多做。需要将名字传给注册函数的数据类在C4D的节点上游对应的 1:1 标志,其生命周期和node一样,分配和删除都由C4D控制。其构造和析构也如常调用,但C4D会额外调用 NodeDataInit()

pyp 或pypv 可以放在插件目录,将其组织成层次会更好。 插件的标准层次结构如下:

主文件myPluginpyp 注册了钩子。 res目录包含插件资源,现指dialogs,description, strings。

每个description都会有一个h文件,枚举了description用到的常量。 查看Descriptions in cinema4D。 每个dialog包含自己的 res文件。 c4d_symbolsh包含了res使用的常量。

可能会有个string_xx的目录来做国际化,xx是两个目录,代表一种语言,依据是iso 639,iso3361-1 当前C4D有一下编码:

每种语言的目录应该包含dialog的str文件。 c4d_stringstr是给其他资源用的。 推荐的做法是先做一种语言,翻译前拷贝一份。最后你可以有很多文件,例如插件的icon和logo,这些可以方便地通过 file 访问

PluginMessage(id, data)
定义此函数可以接收插件信息。 可以从C4D或者从其他插件调用GetPluginMessage()

随时接收C4D的命令行参数,实现PluginMessage() 填入 C4DPL_COMMANDLINEARGS 信息:

C4D的函数重载,重编译pyp文件。 被pyp文件import的库不会reload python首先检查模块是否导入, 已导入就跳过,并建立引用

当PluginMessage()接收到 C4DPL_RELOADPYTHONPLUGINS , 可以用reload()来强制重载python模块 此处可以关闭以前打开的资源(socket,file等)

添加自己的菜单, 在PluginMessage()中拦截 C4DPL_BUILDMENU, 并调用GetMenuResource()来接收主菜单容器,下面是一个完整的例子。

能够在eclipse上运行调试应用程序之前,你必须为它创建一个启动项。启动项指定哪个工程将被启动,哪个activity开始工作,以及使用哪些模拟器选项等。

按照以下步骤为Eclipse版本的应用程序创建合适的启动项:

打开启动项管理工具。

在Eclipse33(Europa)的版本中,酌情选择Run>OpenRunDialogorRun>OpenDebugDialog。

在Eclipse34(Ganymede)版本中,酌情选择Run>RunorRun>Debug。

在左边的工程类型列表选择AndroidApplication选择,双击(或者点击右键选择new),创建一个新的启动项。

输入启动项名称。

在Android标签中,浏览要开始的工程和Activity。

在Target标签中,设置想要显示的屏幕及网络属性,以及其他任何模拟器启动选项。

你可以在Common标签中设置更多的选项

按下Apply保存启动配置,或者按下Run或Debug()。

运行和调试应用程序

一旦你设定了工程和工程启动配置,你就可以按照以下的说明运行和调试应用程序了。

从eclipse主菜单,根据情况选择Run>Run或者Run>Debug,开始运行或者调试活动启动项。

注意,这里活动启动项是在运行配置管理中最最近一次选中的那个。它不一定就是在EclipseNavigation面板中选择的程序(如果有的话)

设置和修改活动启动项,可以使用启动项管理工具。如何获得启动项管理工具可以参考创建一个启动项

运行或调试应用程序将触发以下动作:

启动模拟器,如果他还没有开始运行。

编译工程,如果在上次编译的基础上修改过代码,将重新编译。在模拟器上安装应用程序。

Run选项,开始运行程序。

Debug在"Waitfordebugger"模式下启动程序,然后打开调试窗口并将EclipseJava调试器和程序关联。

利用其他IDEs和工具开发Android应用程序

通常我们使用安装有ADT插件的eclipseEclipsewiththeADTplugin来开发Android程序,这个插件将编辑,build和调试功能集成到IDE上。

然而,如果你想在其他的IDE上开发程序,例如IntelliJ,或者使用没有ADT插件的eclipse也可以。SDK提供了安装,编译,调试应用程序所需要的工具。

创建一个android工程

AndroidSDK包含一个的程序,它将为工程产生多个stub文件和一个build文件。你可以用这个程序创建一个新的Android工程或者在现有代码上创建工程,如SDK中包含的例子。对于Linux和Mac系统,SDK提供py,一个Python脚本,Windows上则是bat一个批处理脚本。无论是哪种平台,用法是一样的。

按以下步骤运行创建Android工程:

在命令行下,切换到SDK下的tools/目录下,为你的工程文件新建一个目录。如果你是在现有代码上创建工程,切换到程序的根目录下。

运行。在命令行下,你必须指定完全合格的类名作为参数。如果你是创建一个全新的工程,这个类代表的与它同名的stub类和脚本文件。如果是在现有代码上创建工程,必须指定软件包中其中一个Activity类的名称。命令选项的脚本包括:

--out设定输出目录。默认情况下输出目录为当前目录。如果你想为工程文件创建一个新的目录,可以使用这个选项来指向它。

--ideintellij,在一个新的项目中生成工程文件。

这里有个例子:

~/android_linux_sdk/tools$/py--outpackagename

package:yourpackagename

out_dir:myproject

activity_name:

~/android_linux_sdk/tools$

脚本生成以下文件和目录(但是不能重写已有文件):

xml程序的清单文件,同时为工程指定Activity类。

buildxml一个Ant文件,用来编译/打包应用程序。

src/your/package/name/java你指定的输入Activity类。

your_activityiml,your_activityipr,your_activityiws[onlywiththe-ideintelliJflag]intelliJ工程文件

res/资源目录

src/源代码目录

bin/build脚本的输出目录

现在你可以将开发文件夹移到任何地方,但是记住,必须使用tool/文件夹下的adb程序将文件发送到模拟器上。因此你需要在你工作环境和tools/文件夹之间活动。

当然你需要避免移动SDK目录,因为它将打断编译脚本。(再重新build之前需要手动更新SDK的映射路径)

编译android应用程序

使用生成的Ant文件buildxml来编译程序

如果你没有,你可以通过ApacheAnthomepage得到Ant文件。安装它,并确定它在你的可执行文件路径下。

呼叫Ant之前,你需声明JAVA_HOME环境变量,并将它设置为JDK的安装路径。

注意:在windows上,JDK默认的安装路径为"ProgramFiles",这个路径将会引起Ant失败,因为路径中间有空格。解决这个问题,你可以像这样指定环境变量JAVA_HOME:JAVA_HOME=c:\Prora~1\Java\然而简单的解决方法是将JDK安装在没有空格的目录下。例如:c:\java\jdk160_02

如果你还没有这么准备好,按照上面创建一个新的工程的介绍建立一个工程。

现在你可以为你的工程运行Ant编译文件,只需在buildxml同文件夹下输入ant即可。每次修改原文件或是资源,都需要重新运行ant,它将把最新版的应用程序打包以便deploy

运行Android程序

运行一个编译好的程序,你需要用adb工具将apk文件加载到模拟器的/data/app/目录下,用法如下面介绍。

启动模拟器(命令行下运行sdk目录下的/tools/emulator)。

模拟器切换到主画面(最好不要在程序运行的时候向模拟器安装程序,可以按home键离开应用程序)。

运行adb,安装myproject/bin/apk文件。例如,安装LunarLander示例,命令行下,切换到SDK目录下的/sample/LunarLander子目录下,输入//tools/adbinstallbin/LunarLanderapk

在模拟器中,打开可执行程序列表,卷动屏幕,选中并启动你的应用程序。

注意:当你第一次安装一个Activity时,你可能需要在启动项显示之前,或者其它程序调用它之前重新启动模拟器。因为软件包管理工具通常只有在模拟器启动时才能完全的审查manifests。

为程序附加调试器

这一节我们介绍如何在屏幕上显示调试信息(例如CPU使用率),以及如何将IDE和模拟器上运行的程序关联起来。

使用eclipse插件可以自动的生成调试器。但你也可以通过配置IDES来监听调试端口得到调试信息。

启动DalvikDebugMonitorServer(DDMS)工具,它在IDE和模拟器之间扮演着端口转换服务的角色。?

设置模拟器调试配置选项。例如,等到调试信息被加载后才启动应用程序。注意,很多调试选项无需DDMS也可以使用,例如模拟器上显示CPU的使用效率,或者屏幕的刷新频率。

配置IDE,使得调试时IDE与8700端口关联howtosetupEclipsetodebugyourproject包含以下信息。

配置IDE附加调试端口

DDMS将为每一个虚拟机分配一个特殊的调试端口,这个端口在模拟器上可以找到。你必须将你的IDE与此端口(虚拟机上信息栏中有列出这些端口)关联或者是默认的端口8700。这样可以使IDE连接到模拟器上程序列表中的任一个程序。

你的IDE需要能够关联模拟器上正在运行的程序,显示它的线程,并允许你挂起它,检查它的状态,设置断点。如果你在开发设置面板选择了“等待调试”,应用程序将等到Eclipse连接后才运行,所以你需要在连接之前设置断点。

修改正在调试的程序,或者在当前程序运行时选择“等待调试”将引起系统杀死这个应用程序。如果你的程序处于一种坏的状态,你可以使用方式杀死它,方法很简单,只需要设置和钩掉复选框。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13395932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-28
下一篇 2023-07-28

发表评论

登录后才能评论

评论列表(0条)

保存