2015年工作中遇到的问题:11-20

11. Android手机上运行Linux C程序

在没有Android源代码的前提下,编写LinuxC程序,放到手机上运行。

Android中有bioniC库,提供了c程序运行环境。

永远的hello,world。

#include <stdio.h>

void main()
{
        printf("nihao, hello\n");
        printf("您好\n");
        printf("Wuyq\n");
}

编译:root@bfq:~# arm-none-linux-gnueabi-gcc AndroidC.c -o AndroidC -static

将可执行程序搞到你的手机上。手机或许需要root,自己去尝试吧。

2015年工作中遇到的问题:11-20_第1张图片

修改权限:

2015年工作中遇到的问题:11-20_第2张图片

运行看效果:

2015年工作中遇到的问题:11-20_第3张图片

思考???

① 手机上面直接编写一个appapp能够去运行我们自己写的demo么?

② 能够将demo搞到android的服务中去,使其开机自动运行??


12.Linux程序的前后台运行

问题的提出??

Android的源代码通常放到远程服务器上面,我们通过自己的pc使用secureCRT软件连接上远程的服务器,进行编译操作。 编译一次android源代码的时间通常是很久很久的,但是由于网络进行会掉线,导致远程连接的终端中断,使得整个编译过程失败。 

由于编译android源代码的程序是在远程的服务器主机上面运行的,而我们本地的pc机器只是充当了一个输入输出设备。 故当网络断开的时候,远程服务器主机上面的程序应该一直存活,不应该关闭的。 

验证实验:

写一个c程序,while(1)死循环一直占用着终端窗口。当终端被关闭的时候,查看程序是否还在存活??

void  main()
{
	while(1)
	{
		printf("I am alive\n");
		sleep(1);
		printf("I want to You!\n");
	}	
}

终端1./a.out &

终端2ps -u wuyingqiang

当终端1关闭的时候,再终端2查看,此时a.out 已经死掉了。

结论:前台、后台运行的依托的是终端本身。 

看来要解决问题,只能使用守护进程了。

2015年工作中遇到的问题:11-20_第4张图片

    此时带来了一个新的问题,就是为什么这里的tty为?了。因为守护进行已经脱离了终端了。所以为?。那么当我想把这个守护进程搞到前端运行的时候,这个时候应该怎么搞呢?蒙圈了?迷糊了?。。。。。。。。



13.扫描二维码下载安装文件

自己制作的apk,发布到网站http://www.xxx.com/yyy.apk上,通过生成二维码工具制作生成二维码,然后放到网站上面,供用户扫描下载安装。具体制作过程,so easy! 不会的同学请百度。

手机扫描二维码,安装下载没有问题。完美运行。

Pc端通过浏览器访问http://www.xxx.com/yyy.apk网站下载,百度、360浏览器可以下载成apk文件,但是ie浏览器下载的确是zip压缩包,多少有些不爽。

下载完后把扩展名修改成apk就可以了。可是真的很麻烦哎。

找到tomcat/conf/web.xml配置文件。

修改MIME标签

<mime-mapping>  
        <extension>apk</extension>  
        <mime-type>application/vnd.android.package-archive</mime-type>  
  </mime-mapping> 

重启服务器,清空ie缓存,解决。


14.如何使得自己制作的apk不能被卸载。

A)有源代码的情况下,直接将apk文件放到out/.../system/app/目录下,重新编译生成镜像文件进行烧写就可。相当于重新刷了一次ROM。

B)如果没有源代码了,只能通过其他的技术手段进行实现。例如,短信木马。


15.定制android系统,不要锁屏界面。

./frameworks/base/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java文件中的192行改为false

private boolean mExternallyEnabled = true; 将true开关量改为false。重新编译源码生成镜像。


16.电路共地问题

    经常使用第三方厂家的模块,由于模块一般都是提供一个电源,串口tx,rx,而是的电平是ttl电平,pc机器上的串口是Rs232电平。通常需要借助一个max232芯片进行转换。在使用的过程中,此芯片经常发烫,烧坏。造成数据的不正确。

    解决方案:购买了usb-ttl模块。直接安装上驱动即可使用。使用还真是很方便。完美的很。就是先太短了,就先很是费劲,此时找来一根usb延长线,一头公一头母。连上usb延长线,在设备管理器中,能够看到usb-ttl串口号,但是串口助手中,咋也没有数据。后来找来硬件工程师帮忙。将串口的gnd连接上。完美解决问题。

    在后期的使用过程中,还需要多多注意这个问题。


17.销售合同的签订

A.先做好电话咨询,了解清楚相关的各种细节。最好在进行电话沟通之前,先把所需要了解的各种问题点,在笔记上做一个简单的总结。

B.电话沟通的过程中,应该仔细听取对方的描述细节。避免主观臆断,进行猜测的行为。

C.合同的范本,各种格式的细节描述,先做到心中有数,再及时进行沟通。

18.Ubuntu64系统制作32位的可执行程序

2015年工作中遇到的问题:11-20_第5张图片

19.android开发中,应该修改什么值能够使同一个程序在手机中安装多个?

就是同一个程序,修改什么值能够安装多次而不覆盖?

修改包名即可。

Android程序是以包名作为线程名字。

程序中是不允许有两个相同包名的程序的。

例如:将qq.exe重命名为qq1.exeqq2.exe在一台电脑上进行安装。

2015年工作中遇到的问题:11-20_第6张图片

改变包名, 和AndroidMainfest.xml文件中的

package="com.wuyq.linearlayout"

20.Android4.0Ble蓝牙

        安卓4.3(API 18)BLE的核心功能提供平台支持和APIApp可以利用它来发现设备、查询服务和读写特性。相比传统的蓝牙,BLE更显著的特点是低功耗。这一优点使android App可以与具有低功耗要求的BLE设备通信,如近距离传感器、心脏速率监视器、健身设备等。

// 使用此检查确定BLE是否支持在设备上,然后你可以有选择性禁用BLE相关的功能
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
    Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show();
    finish();
}



你可能感兴趣的:(2015年工作中遇到的问题:11-20)