精华内容
下载资源
问答
  • 深信服EasyConnect安卓软件,让你的手机轻松访问内网! 保证可用,官网下载,最新版本! 深信服EasyConnect安卓软件,让你的手机轻松访问内网!
  • 首先使用sdkmanager安装安卓最新的 sdk. 链接 https://developer.android.google.cn/studio, 页面下面方sdk-tools-windows-4333796.zip。MAC点这里,注意搭配jdk为 Java SE Development Kit 8。先安装JDK。如果你有...

    首先使用sdkmanager安装安卓最新的 sdk. 链接 https://developer.android.google.cn/studio, 页面下面方sdk-tools-windows-4333796.zip。MAC点这里,注意搭配jdk为 Java SE Development Kit 8。先安装JDK。
    如果你有android sdk可以跳过这部。
    然后使用 sdkmanager 更新android sdk. 这里放到了D:sdk-tools-windows目录,如果
    sdkmanager "build-tools;23.0.2"
    sdkmanager "platforms;android-23"
    sdkmanager "platform-tools"
    sdkmanager "sources;android-23"
    sdkmanager "system-images;android-18;default;x86"//模拟器,占地很大,可以不要sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"
    sdkmanager "extras;google;usb_driver"
    sdkmanager "extras;google;m2repository"
    sdkmanager "extras;android;m2repository"
    sdkmanager "emulator"
    sdkmanager "tools"

    //注意当前sdkmanager在tools目录,所以占用下无法更新,可以先把tools目录改名, 然后更新,更新完删掉旧的目录
    sdkmanager "ndk-bundle"//拉取最新的ndk, 如果其他地方安装好了ndk, 也可以不拉取这个

    安卓工程需要开启 INTERNET 和 PROFILER 权限, 即在AndroidManifest.xml 配置中加入

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="com.qti.permission.PROFILER" />

    unity player setting 安卓 中如果Minimum API Level选择的版本太高,会有这个警告。可以按新安卓目录方式配置

    OBSOLETE - Providing Android resources in Assets/Plugins/Android/res is deprecated, please move your resources to an AAR or an Android Library. See "AAR plug-ins and Android Libraries" section of the Manual for more details.
    UnityEditor.HostView:OnGUI()

    因为我在unity用的老的Android配置方式, 所以这里选的安卓Minimum API Level 为Android 4.3 (API Level 18)

    72cfff0389be6c21b1ee933961cb9652.png

    也可以在unity 发布页选择Development Build 和 Autoconnect Profiler

    29813d44e55af100112724ee4fa4abfe.png


    Snapdragon Profiler2018.2 需要使用比较新的NDK

    279d455abcf6f959c65c85e665d0f7d3.png


    需要NDK版本包含simpleperf 目录,我这里用的android-ndk-r18b
    之后再Setting 中设置好 adb 目录(上面更新的sdk目录)和 ndk 目录(可单独下载)

    40384f3b3a06bef8f608386154d5c682.png

    之后点击Connect连接到手机

    6b4dfe3b773036fc3b28b7cb137759db.png

    点击New snapshot Capture

    7c4f2448bcb5d78d8c5529adf8e6cbcd.png

    选择要profiler 的进程,之后点击 Take Snapshot , 有时要稍等一下,进程才会出现

    b43bf2507dc100707735f35ef61d32cd.png

    等待数据传输完成,就可以看到一帧的API调用等信息

    d7c388945d1ff33f3a0eed910f37e592.png
    展开全文
  • 虽然小企鹅程序员都认识,但是在安卓系统定制开发中,客户看到小企鹅的第一眼一般就是“能不能把这个企鹅换成我们的logo?”,所以这就成为了第一个定制需求。这个需求也适合新手上路,第一次动手修改、编译、烧录,...
    640?wx_fmt=gif

    点击上方蓝字关注我哦~

    01

    前言

    640?wx_fmt=png

    安卓系统原生的开机画面是一只可爱的小企鹅,它是Linux的吉祥物。虽然小企鹅程序员都认识,但是在安卓系统定制开发中,客户看到小企鹅的第一眼一般就是“能不能把这个企鹅换成我们的logo?”,所以这就成为了第一个定制需求。这个需求也适合新手上路,第一次动手修改、编译、烧录,并能直观的看到修改的成果。下面以瑞星微RK3399平台为例,介绍开机logo的显示流程,及更换方式。

    02

    开机画面启动流程介绍

    驱动代码:

    u-boot/board/rockchip/rk33xx/rk33xx.cvoid board_fbt_preboot(void)//开机启动进入{  drv_lcd_init();//lcd驱动初始化  #if defined(CONFIG_ROCKCHIP_DISPLAY)    else if (!rockchip_display_init()) {//显示初始化      g_logo_on_state = 1;    }#endif#ifdef CONFIG_ROCKCHIP_DISPLAY    if (g_is_new_display) {      rockchip_show_logo();//显示logo    } else#endiflcd_standby(0);//dsi输出使能rk_pwm_bl_config(-1);//打开背光}u-boot/drivers/video/rockchip_display.cint rockchip_display_init(void){    /*读取uboot的logo图片路径,来自于设备树中的“logo,uboot”属性*/    fdt_get_string(blob, child, "logo,uboot", &s->ulogo_name);    /*读取kernel的logo图片路径,来自于设备树中的“logo,kernel”属性*/    fdt_get_string(blob, child, "logo,kernel", &s->klogo_name);    fdt_get_string(blob, child, "logo,mode", &name);}u-boot/drivers/video/rockchip_display.cvoid rockchip_show_logo(void){  struct display_state *s;  list_for_each_entry(s, &rockchip_display_list, head) {    s->logo.mode = s->logo_mode;    if (load_bmp_logo(&s->logo, s->ulogo_name))//载入UbootLogo图片      printf("failed to display uboot logo\n");    else      display_logo(s);//显示Logo图片    if (load_bmp_logo(&s->logo, s->klogo_name))      printf("failed to display kernel logo\n");  }}

    设备树文件:

    kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-android.dts&display_subsystem {  status = "okay";  ports = , ;  memory-region = ;  route {    route_hdmi: route-hdmi {//hdmi屏      status = "okay";      logo,uboot = "logo.bmp";//logo图片的名称      logo,kernel = "logo_kernel.bmp";      logo,mode = "fullscreen";      charge_logo,mode = "center";      connect = ;    };    route_edp: route-edp {//edp屏      status = "okay";      logo,uboot = "logo.bmp";      logo,kernel = "logo_kernel.bmp";      logo,mode = "fullscreen";      charge_logo,mode = "center";      connect = ;    };  };};

    总结logo显示流程为:Uboot启动->显示屏初始化->从设备树读取logo图片名->载入图片->显示图片->开启背光。

    03

    RK平台修改开机logo

    那么定制开机logo图片就是替换指定路径的图片即可:

    U-boot开机logo:kernel/ logo.bmp

    Kernel开机logo:kernel/ logo_kernel.bmp

    图片格式为bmp,分辨率保持与显示屏分辨率一致的最佳。另外可以通过logo,mode属性来选择小像素logo图示居中显示还是拉伸显示。

    编译烧录后的效果如下:

    640?wx_fmt=png

    高通平台的开机logo存储在splash分区,替换logo的方式制作将图片编译成splash.img,烧录进splash分区。MTK平台的开机logo基本和RK平台一样,替换图片编译下载即可。

    / The End /

    推荐阅读

    Android系统system.img解包和重新打包

    新增LED设备--从上层到底层理解安卓架构之Service篇

    本文由【嵌入式案例Show】原创出品,未经许可,请勿转载

    640?wx_fmt=gif

    扫码关注我们

    看更多嵌入式案例

    640?wx_fmt=jpeg

    喜欢本篇内容请给我们点赞、在看

    640?wx_fmt=png
    展开全文
  • 阿拉德 (Matthew Allard ACS)在CP+展会现场,我们意外撞见一个新奇的小玩意——永诺YN450,一台安卓系统无反相机。其实去年11月永诺就放出过消息,正式发布前一直在忙于改进。永诺YN450一句话总结,永诺YN450是用...
    82b292b5-d920-eb11-8da9-e4434bdf6706.gif

    作者 | 马修.阿拉德 (Matthew Allard ACS)

    83b292b5-d920-eb11-8da9-e4434bdf6706.jpeg

    在CP+展会现场,我们意外撞见一个新奇的小玩意——永诺YN450,一台安卓系统无反相机。其实去年11月永诺就放出过消息,正式发布前一直在忙于改进。

    永诺YN450

    一句话总结,永诺YN450是用松下1600万像素M4/3影像传感器搭配高通8核处理器的产物,内存3GB,自带32GB存储空间。出于一些未知的原因,外置的存储卡也只支持最大32GB。它的软件系统是安卓7.1。

    85b292b5-d920-eb11-8da9-e4434bdf6706.jpeg

    虽然搭载M4/3影像传感器,镜头卡口却是佳能EF,有点怪吧?EF卡口镜头的成像圈对于M4/3这么小的面积来说过大,不过换个角度想想,要找到一支没有畸变的广角镜头好像也很难。如果直接搭配M4/3卡口,你最终可能还是要另外花钱买Metabones转接环,然后用EF镜头。

    89b292b5-d920-eb11-8da9-e4434bdf6706.jpeg

    我想还有一个原因,就是方便搭配永诺自有品牌的EF镜头。

    8ab292b5-d920-eb11-8da9-e4434bdf6706.png

    永诺自己的EF镜头看起来就是佳能原厂镜头的翻版。

    8cb292b5-d920-eb11-8da9-e4434bdf6706.jpeg

    这台相机能够录制30fps 4K UHD和1600万像素的RAW照片。

    8db292b5-d920-eb11-8da9-e4434bdf6706.jpeg

    机身的设计有一点怪异,因为镜头卡口超大,没法直接揣到口袋里。

    8eb292b5-d920-eb11-8da9-e4434bdf6706.jpeg

    机身背面是一块5" 1080P的多点触控屏,看上去好像是直接借用智能手机的屏幕。所有的操作,包括对焦,都在触控屏上完成,另外,也可以半按快门键来对焦。

    YN450内建立体声麦克风、3.5 mm耳机接口和GPS,电池容量4000 mAh。在机身底部有一个标准的1/4"螺孔和SIM卡槽,也就是说可以连接手机运营商的4G/3G数据网络。

    90b292b5-d920-eb11-8da9-e4434bdf6706.png

    永诺公司曾在自己的脸书主页发起一项为YN450取名的竞赛活动,最后的胜出者给YN450取的名字叫“智能相机”。

    永诺公司希望将YN450的定价控制在500美元以内,计划4月在中国上市。虽然传统相机影像组件结合智能系统的理念有点意思,不过它存在一些问题。就我们在现场的观察,YN450的画质非常一般,而且缺少重要的手动控制和监看功能,例如峰值对焦和斑马纹。这台相机离上市还有一段时间,永诺仍有机会推出新版固件,改进机身功能。

    本文完

    93b292b5-d920-eb11-8da9-e4434bdf6706.jpeg

    如您觉本文值得一读, 请点好看 

    95b292b5-d920-eb11-8da9-e4434bdf6706.gif
    展开全文
  • nRF Connect4.24.1.zip 新版本,Android安卓版本。低功耗蓝牙BLE开发必备工具,有需要的工程师朋友拿去用。
  • 安卓端 package com.wm.remusic.activity; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import ...
    开发端
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    import com.online.dao.Users;
    import com.online.dao.UsersOperation;
    import org.codehaus.jettison.json.JSONException;
    import org.codehaus.jettison.json.JSONObject;
    
    import javax.servlet.annotation.WebServlet;
    
    
    @WebServlet(name = "ServletTest")
    public class ServletTest extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            System.out.println("servlet action");
            String loginName = request.getParameter("username");
            String loginPassword = request.getParameter("passwd");
            System.out.println(loginName);
            System.out.println(loginPassword);
            Users users=new UsersOperation();
            boolean flag=users.LoginuserCounter(loginName,loginPassword);
            JSONObject jsondata=new JSONObject();
            try {
                jsondata.put("flag",flag);
                response.setCharacterEncoding("UTF-8");
                response.setContentType("text/html;charset=UTF-8");
                response.getWriter().println(request.toString());
            } catch (JSONException e) {
                e.printStackTrace();
            }
    
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request,response);
        }
    

     

     

     

     

    web.xml

    <servlet>
        <servlet-name>ServletTest</servlet-name>
        <servlet-class>ServletTest</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>ServletTest</servlet-name>
        <url-pattern>/ServletTest</url-pattern>
    </servlet-mapping>

     

     

    安卓端

    package com.wm.remusic.activity;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    import com.wm.remusic.R;
    import com.wm.remusic.http.HttpUtils;
    
    import org.apache.http.message.BasicNameValuePair;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     *
     */
    
    public class LogActivity extends Activity{
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.log);
            initView();
        }
    
        private void initView() {
    
            final EditText logcount = (EditText) findViewById(R.id.count);
            final EditText logPwd = (EditText) findViewById(R.id.logPwd);
            Button btn = (Button) findViewById(R.id.logBtn);
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                   String count = logcount.getText().toString().trim();
                   String pwd = logPwd.getText().toString().trim();
    
    
    
                   Map<String,String> data =new HashMap<String,String>();
                   data.put("username",count);
                   data.put("passwd",pwd);
                   String url= HttpUtils.URL+"/Servlet";
                   String returndata=HttpUtils.SendPostMethod((List<BasicNameValuePair>) data);
                    try {
                        JSONObject jsondata=new JSONObject(returndata);
                        if(jsondata.getBoolean("flag")){
                            Toast.makeText(LogActivity.this, "登录成功!", Toast.LENGTH_SHORT).show();
                        }else{
                            Toast.makeText(LogActivity.this, "登录失败!", Toast.LENGTH_SHORT).show();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
    
    
                }
            });
        }
    }

     

    httputils.java

     

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.client.utils.URLEncodedUtils;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.util.List;
    
    public class HttpUtils {
        // static final String URL =
        // "http://10.1.1.186:8080/MyServer_andrioid/login.do";
        public static final String URL = "http://localhost:8080/home/zqr/IdeaProjects/musiconlineshop";
        public static final String GETURL = "http://192.168.191.1:8080/MyServer_andrioid/main.do";
        public static final String ENCODING = "UTF-8";
        public static String TAG = "Server responce:";
        public static String result = "it's a test.";
    
        public static HttpClient httpClient;
        public static HttpPost httpPost;
        public HttpGet httpGet;
    
        public HttpUtils() {
            httpClient = new DefaultHttpClient();
            httpPost = new HttpPost(URL);
        }
    
        public static String SendPostMethod(List<BasicNameValuePair> params) {
            try {
                UrlEncodedFormEntity encodedFormEntity = new UrlEncodedFormEntity(params, ENCODING);
                httpPost.setEntity(encodedFormEntity);
                HttpResponse httpResponse = httpClient.execute(httpPost);
                HttpEntity entity = httpResponse.getEntity();
    
                int resCode = httpResponse.getStatusLine().getStatusCode();
                if (resCode == 200) {
                    result = (String) EntityUtils.toString(entity, ENCODING);
                }
                httpClient.getConnectionManager().shutdown();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return result;
        }
    
        public String SendGetMethod(List<BasicNameValuePair> params) {
            String param = URLEncodedUtils.format(params, ENCODING);
            httpGet = new HttpGet(GETURL + "?" + param);
            try {
                HttpResponse httpResponse = httpClient.execute(httpGet);
                int resCode = httpResponse.getStatusLine().getStatusCode();
                if (resCode == 200) {
                    result = EntityUtils.toString(httpResponse.getEntity());
                }
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
    
            return result;
        }
    }

    http包可能没有得去设置一下下https://wenku.baidu.com/view/93ef1a248762caaedc33d40f.html

     

     

     

     

     

     

     

     

    展开全文
  • 昨天把服务器放到了本地,调试安卓程序的时候报了这个错误,后将127.0.0.1改成localhost报同样的错误。 在模拟器中中默认把localhost和127.0.0.1当做本身了,用10.0.0.2代替即可。
  • 香港友邦自发布电子保单管理(AIA connect)以来,越来越多的客户前来咨询和询问,如何使用,以及有哪些功能,官方公布的...安装教程安卓手机安装指南1.1) 下载手机Apphttps://aiaprod.appgreen.co m/AIA-Connect.html...
  • unable to connect to adb.check the event log for a possible issue, verify that localhost entry is pointing to 127.0.0.1 or:: 1 for ipv4 or ipv6报错 安卓studio编译安装到机器的时候,提示连接不上,这个...
  • 在进行adb调试时,可以通过数据线和IP地址,两种方式...必备条件:通过adb connect [IP]连接,笔记本与安卓手机需在同一网络环境下 实现步骤: 1.首先通过数据线连接至安卓手机,进入adb shell,输入adb tcpip 5...
  • nrf52832使用nrfconnect通过安卓和苹果(IOS)手机升级固件 1 安卓手机升级固件 2 苹果(IOS)手机升级固件 2.1 下载nrfconect软件,在苹果应用商店搜索下载即可 2.2 导入要升级的固件 IOS...
  • 微信开发工具,苹果手机都没问题,只有安卓手机发送聊天信息失败。...检查好久发现:wx.connectSocket 里的 url 包含竖线 | ,安卓手机不知道为什么识别不了,直接不访问这个url,改成 & 就没问题了。 ...
  • 安卓把localhost/127.0.0.1当成安卓虚拟机本身了,可以使用本机局域网地址192.168.xx.xx来代替
  • 手机是小米的MAX2,是前几年的安卓机,手机本身的文件管理器提供了远程管理,在一个WiFi下,通过FTP协议进行文件的共享操作。因此我在笔记本中安装了Filezilla这款FTP客户端,不得不再次夸夸KDE Plasma,直接在桌面...
  • 一开始还以为是http和https的问题。结果百度了这个错误发现是不能使用localhost,如果要请求本地的服务器,要用本地网络地址代替localhost。 打开控制台(win10),输入ipconfig,可以看到本地网络地址。 ...
  • 近日,上汽通用旗下别克向外界展示了最新的车联技术别克eConnect 2.0,不仅将操作系统从Linux升级为Android,还采用了全新的卡片式界面和离在线混合式导航,体现了车企对车载系统的全新思考。 车载系统因具备OTA...
  • 今天app突然报这个错,一时间很慌,然后各种百度在一个小时之后终于解决的这个问题,所以想在这总结一下,同时给大家一些参考。 解决方式有两种:  1....  如果还是不行,那一定是你的手机和电脑没在同一个局域网 ...
  • 今天app突然报这个错,一时间很慌,然后各种百度在一个小时之后终于解决的这个问题,所以想在这总结一下,同时给大家一些参考。 解决方式有两种: 1. 关闭你要连接电脑的防火墙。 2. 如果还是不行,那一定是你的手机...
  • 这次的报错是因为我在安卓虚拟机上连接数据库使用的是localhost,但是这样会使安卓虚拟机认为是本机(127.0.0.1),因此在连接本地数据库时将ip改为10.0.2.2或局域网内本机的ip,即可在安卓虚拟机上连接电脑的本地...
  • 近日,上汽通用旗下别克向外界展示了最新的车联技术别克eConnect 2.0,不仅将操作系统从Linux升级为Android,还采用了全新的卡片式界面和离在线混合式导航,体现了车企对车载系统的全新思考。 车载系统因具备OTA...
  • Error running Android Debugger (8600): Unable to open debugger port (localhost:8600): java.net.ConnectException "Connection refused: connect" 解决方法: adb kill-server adb start-server ...
  • ip问题 1.不能使用local host 和127.0.0.1作为本地服务器的地址,而网上无论10.0.0.2还是10.0.2.2的8080端口都无法访问。真正的地址应该在CMD 键入...2.在安卓模拟器运行时,通过debug发现无法执行HttpUrlConnect...
  • 安卓真机调试出现问题: java.net.SocketTimeoutException:failed to connect to /192.168.105.1 (port 8080) from /192.168.1.100 (port 60248) after 30000ms 解决方式: 1、关闭你要连接电脑的防火墙。 2、...
  • ERROR: Connection timed out: connect:错误:连接超时:连接 这个错误 一般来说是因为.gradle引起的 (1).gradle下载的不全 (2)网络原因<10kb/s 解决方法: 1.手动下载一下(不行就翻墙下载一下,因为库...
  • 实际测试等级0的PUBLISH报文 我们首先发送CONNECT报文,成功后,发送PUBLISH报文,因为是等级0,所以服务器不会有什么回复,我们需要到后台看一下,数据有没有上传到后台。 查看数据是否正确上传 左侧导航栏选择...
  • [img=https://img-bbs.csdn.net/upload/201508/31/1440954250_38012.jpg][/img]
  • 是PE官网下载的最新版安卓9.0的Pie 杂料 查询到别人也遇到这个问题,但是说是手机管家说明的,9.0手机有这个情况,其他非9.0没有 正巧我也遇到了,就捣鼓一下,发现是Pie的省电策略搞的鬼。。。 #解决方案 依照...
  • 最近被安排到移动开发项目,刚导入了别人的一个demo,突然两行报错迎面袭来!!! 如图所示! ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ...网上搜了好久,试了很多解决办法,最终解决了 在gradle.properties...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 709
精华内容 283
关键字:

安卓connect