有针对原生Android应用程序的特定官方分析SDK(请注意,我不是在谈论手机应用程序中的网页).此库基本上将页面和事件发送到Google Analytics,您可以在与网站完全相同的仪表板中查看分析.由于我的背景是应用而不是网站,并且由于许多Google Analytics术语似乎特别不适用于原生应用,因此我需要一些指导.请讨论我的评论,在你认为我偏离轨道的地方提供一些说明,最重要的是分享好的经验!
页面大多数可以匹配正在显示的不同活动(和对话框).但是,非全屏活动背后可以看到活动,但只能与顶级活动进行交互.这种分类与"(页面)视图"发生冲突.更新 - >阅读http://android-developers.blogspot.com/2010/12/analytics-for-android-apps.html并接受它.
您还希望每次访问至少有一个页面视图,因此在Application类中放置一个页面视图跟踪器.然而,这不构成窗口或种类.通常,活动将同时打开,因此在该页面上花费的时间将为0.这将影响您的"花费时间"统计信息.这些怎么算?
此外,通过Intents,活动之间存在松散耦合.用户可以像在任何网站上一样,参与任何活动,尽管通常这会涉及恢复他离开的应用程序.这使得活动的层次结构通常非常平坦.而且因为没有涉及网址.使用页面标题中的斜杠有什么意义,比如"/ Home"?所有页面在报告中都会出现在同等级别,因此没有内容明细.
非唯一页面浏览量似乎被视为某种成功指标:访问者多久重新访问该页面.当用户旋转屏幕时,通常会重新创建一个Activity,从而使其成为新的页面视图.这种情况发生了很多.也许一个经过深思熟虑的电话会议可以解决这个问题,或者放几个,我不确定.
如何处理页面浏览量?
我会说有两种:
后者特别令我头疼.首先,许多事件不再用代码编写,而是通过Intents在逻辑上拼凑在一起.这意味着没有地方可以进行分析调用.您要么必须放弃这种优势,又要采用老式的方式来支持良好的分析,或者只是错过一些事件.
其次,作为开发人员,当用户单击按钮时,您并不是那么感兴趣,而是应该执行应该执行的操作以及结果是什么.似乎没有明确的方法可以将结果数据导入Google Analytics(整数有什么用?我想放入Strings!).
适用于平面页面层次结构的内容也适用于事件类别.您可以执行"垂直"类别(局部,即),但某些代码是"水平"共享的,并且跟踪将平等分享.与Intents机制一样,继承使您很难将跟踪始终放在正确的位置.我无法想象"横向"类别.除非你开始制作非常小的类别,例如所有项目在一个类别中形成相同的菜单,否则我很难掌握这个概念.
最后,你如何处理取消?通常你们都有一个按钮的显式取消机制,以及当按下"后退"按钮离开活动并且没有任何变化时的隐式取消.当按下后退按钮并且ARE发生变化时,后者也适用于"保存".如果不是通过自己完成所有"后退"按钮工作,你怎么会抓住所有这些?
如何处理事件?
对于目标类型,我可以选择:URL目的地,网站停留时间和页面/访问.大多数应用都没有引导用户进行"注册完成"或"下订单"页面的漏斗.已经购买了应用(在这种情况下,您希望刺激用户热爱您的应用,以便他可以吸引新的买家)或者通过应用内广告付费.所以URL Destination不是一个非常重要的目标.
现场时间似乎也很麻烦.首先,我对如何衡量它有一些疑问.其次,我不一定希望我的用户在我已经付费的应用中花费大量时间,只需要积极和内容.同样,为什么不提及用户使用您应用的频率?
关于页面/访问我已经提到了屏幕方向更改如何炸毁页面视图编号.
在应用程序中,我最感兴趣的是事件/访问,以衡量用户的参与/活动.如果他正在密切使用该应用程序,那么他一定非常喜欢它吗?
此外,我还有一些小漏斗(虽然不会导致转换)我希望看到简化.在我看来,这些漏斗将以事件而不是页面视图结束,但这似乎是不可能的.
我还可以衡量应用内广告的点击次数,但鉴于"网址目标",我需要将其作为网页浏览量而不是事件进行跟踪.
什么是应用程序的智能目标,以及如何使它们适合Google Analytics?
是否有一种智能方法可以手动执行"网站优化工具"为网站执行的操作?最重要的是,我如何跟踪不同的目标网页设计?更新 - >似乎我可以使用自定义变量.更多细节仍然欢迎.
如果你足够聪明,那么推荐会处理安装时间推荐.但也许我还想获得第三方应用程序将用户发送到我的应用程序以执行某些操作的一些数据(此应用程序可通过Intents实现互操作性).
许多与"流量来源"相关的术语似乎毫无意义,并且无法在AdSense中进行连接.
这些数据的智能用途是什么?
在"浏览器功能","网络属性"和"移动"选项卡中,许多事情毫无意义,因为它们对我的大多数离线应用程序没有影响/关系,无论如何都不会使用闪存.只有深入了解,才能获得操作系统版本,这些版本非常重要.我甚至忘了你可以检查哪些Android设备访问过的地方.
这些数据的智能用途是什么?如何使相关信息更加突出?
没有页内分析.我必须将我的应用注册为网址(What!?)?
我想要一个热键,在Notepad ++中全部保存,然后切换到浏览器并刷新页面.我必须每天做数千次并执行Save All热键,然后按Alt-Tab到右侧窗口,然后F5一次又一次刷新,必须有更好的解决方案吗?如果有另一个可以做到这一点,我愿意切换编辑器.
我尝试过使用运行命令,但问题是虽然它允许你制作像[firefox.exe"当前文件"]这样的东西,如果你想要在像localhost这样的网址上打开它,因为它需要运行服务器端,然后你必须手动指定字符串的其他部分,如[chrome.exe"自定义var(网址)/文件名"],它总是打开一个新的选项卡,然后创建大量的混乱.此外,如果您正在编辑包含文件,那么当您使用run命令时,它将尝试打开而不是您想要查看的页面,刷新将是我能想到的唯一可行的方法.
编辑:我有Cpfohl解决方案工作!如果您有其他方法,请分享,因为我将仍然监视此线程.
Esc:: ; The hotkey I like to use
SetTitleMatchMode, 2 ; Match Partial Title Mode
SetKeyDelay 10, 10 ; Set Keystroke Delays
Send {F5} ; Save All In Editor / I set to F5 in npp
IfWinExist, Firefox
WinActivate
Send {F5} ; Refresh Browser
Run Code Online (Sandbox Code Playgroud) 我计划在hook_schema的帮助下添加一个表.我已经定义了模式,并在我的模块中调用它.但是,没有创建架构.我哪里错了.我的sample2.install文件中有以下代码
function sample2_schema(){
$schema['mytable1'] = array(
'description' => t('My table description'),
'fields' => array(
'mycolumn1' => array(
'description' => t('My unique identifier'),
'type' => 'serial',
'unsigned' => true,
'not null' => true,
),
'myvarchar' => array(
'description' => t('My varchar'),
'type' => 'varchar',
'length' => 32,
'not null' => true,
),
'mytimestamp' => array(
'description' => t('My timestamp'),
'type' => 'int',
'not null' => true,
),
),
'indexes' => array(
'myvarchar' => array('myvarchar'),
),
'primary key' => array('mycolumn1'),
'unique keys' …Run Code Online (Sandbox Code Playgroud) 我正在尝试为软件应用程序创建一个帮助系统.接口是用WPF编写的.我有一个XPS文件(由Word文档生成),我想从应用程序访问.XPS文件包含在XPS文件中重定向的超链接.我可以使用DocumentViewer控件显示该文件,但超链接不起作用.(当我在XPS查看器中查看相同的XPS文件时,超链接可以工作.)我是WPF的新手,所以我可能会忽略一些东西,但我一直在努力让这项工作工作一周,尽管我我沿途学习我手头的任务无处可去.我非常感谢任何帮助.戴夫
其实我正在研究非常简单的FTP服务器.现在我遇到发送文件的问题(FTP协议中的RETR).我在我的客户端使用套接字和二进制模式.带文本的文件发送完美,但问题是二进制文件(图像等).
这是我的代码片段:
FILE *fin=fopen(fileloc,"rb");
if(fin != NULL){
fpos_t filelen;
fseek (fin, 0, SEEK_END);
fgetpos (fin, &filelen);
fseek (fin, 0, SEEK_SET);
printf("Sending file %s (%d b)", fileloc, filelen);
sprintf(sbuffer,"150 Opening BINARY mode data connection for file transfer.\r\n");
bytes = send(ns, sbuffer, strlen(sbuffer), 0);
byte temp_buffer[512];
long int totalsent;
totalsent = 0;
while (!feof(fin)){
memset(temp_buffer, '\0', sizeof(sbuffer));
fgets((char *)temp_buffer, sizeof(sbuffer), fin);
if (!active) bytes = send(ns_data, (char *)temp_buffer, strlen(sbuffer), 0);
else bytes = send(s_data_act, (char *)temp_buffer, strlen(sbuffer), 0);
totalsent = totalsent + …Run Code Online (Sandbox Code Playgroud) 我有一个C程序通过sqlite3_open_v2()打开一个sqlite3数据库,然后定期运行一些SELECT查询.如果我在程序运行时替换该文件,会发生什么不好的事吗?有没有正确的方法来避免问题?我想避免重启它.
我见过很多人写的Java ME(J2ME)正在濒临死亡.这是真的吗?它的未来是什么?如果我想为智能手机创建应用程序,我应该学习Java ME吗?如果是,从哪里开始?
我试图导出一个简单的测试函数,用于处理一个应用程序(fyi:mIRC),它将调用约定指定为:
int __stdcall test_func(HWND mWnd, HWND aWnd, char *data, char *parms, BOOL show, BOOL nopause)
Run Code Online (Sandbox Code Playgroud)
现在,要从应用程序中调用它,我将使用test_func,但我注意到由于名称错误,它并不像我想象的那么简单.
通过类似的主题,我已经了解到将extern"C"与__declspec(dllexport)结合使用是一种等效的(某种程度上)方法,可以将重整数据删除到模块定义(.def).但是,当使用extern/dllexport方法时,我的函数(作为示例)始终是_test_func @ numbers,而.def删除了所有需要导出到的应用程序所需的修改.
有人可以解释一下这是为什么吗?我只是对这两种方法感到好奇.谢谢!
我有一个小字节数组(25K以下),我收到并解码为更大的消息信封的一部分.有时这是一个图像,当它是图像时,有时它是一个jpg.我没有字节数组以外的上下文信息,并且需要识别它是否是图像,以及图像是否为jpg类型.
是否有一些神奇的数字或魔术字节存在于开头,结尾或某些偏移处,我可以看一下来识别它?
我的代码示例如下(来自内存,而不是c/p):
byte[] messageBytesAfterDecode = retrieveBytesFromEnvelope();
if(null != messageBytesAfterDecode && messageBytesAfterDecode > 0){
if(areTheseBytesAJpeg(messageBytesAfterDecode)){
doSomethingWithAJpeg(messageBytesAfterDecode)
}else{
flagEnvelopeAsHavingBadContentInTheField();
}
}
Run Code Online (Sandbox Code Playgroud)
我真的需要做什么
areTheseBytesAJpeg(byte[] mBytes){}
Run Code Online (Sandbox Code Playgroud)
方法,甚至指向详细说明的规范的指针.我希望有一个非常快速的方法来做出这个决定,因为我真的不想把它们读成图像等.
这个例外是什么意思,我该怎么做才能解决它?