Considérant en fait et en droit :
1.
A._, ressortissant camerounais né en 1979, est entré en Suisse en 2014 en provenance de France pour se marier avec une compatriote titulaire d'une autorisation d'établissement. Le mariage a été célébré le 17 avril 2015. De ce fait, A._ a obtenu une autorisation de séjour au titre du regroupement familial, qui a été renouvelée jusqu'au 17 avril 2018. En France, il était au bénéfice d'un titre de séjour, en tant que père d'un enfant mineur de nationalité française.
Les époux ont rapidement rencontré des difficultés qui ont entraîné l'intervention de la police, qui a dressé deux rapports de dénonciation emportant notamment des allégations de violences domestiques. Le Ministère public n'est toutefois pas entré en matière sur la première affaire et a classé la seconde.
Le 30 mai 2017, statuant sur une requête de mesures protectrices de l'union conjugale formée par l'épouse, le tribunal d'arrondissement de la Glâne a autorisé les conjoints à vivre séparés et a intimé à l'époux l'ordre de quitter le domicile conjugal d'ici au 30 juin 2017. Lors de leur audition respective, en janvier 2018, devant le Service de la population et des migrants du canton de Fribourg (ci-après: le Service cantonal), les conjoints ont indiqué faire toujours ménage commun. L'épouse a précisé qu'elle avait voulu que A._ quitte le logement conjugal, mais qu'elle avait accepté qu'il reste en espérant qu'il change. Contactés à nouveau par le Service cantonal le 27 mars 2018, l'épouse a déclaré que son mari devait quitter au plus tard le domicile conjugal le 28 mars 2018 sur ordre de la police et qu'elle avait ouvert une procédure de divorce. Pour sa part, A._ a indiqué qu'il voulait rester au domicile conjugal par amour pour son épouse et qu'il avait déposé une requête judiciaire en ce sens. Le 28 mars 2018, le président du tribunal d'arrondissement de la Glâne l'a autorisé à rester au domicile conjugal jusqu'au 30 avril 2018, dès lors qu'il ne disposait pas d'un logement individuel avant le 1 er mai 2018. Statuant le 27 avril 2018 sur requête de l'épouse, le tribunal d'arrondissement de la Glâne a enjoint A._ à quitter le domicile au 30 avril 2018 au plus tard, ce qu'il a fait ce jour-là, en présence de la police.
2.
Par décision du 6 juin 2018, le Service cantonal a refusé de renouveler l'autorisation de séjour de A._. La vie commune en Suisse avait duré jusqu'au 30 mai 2017, soit moins de trois ans, et aucune raison personnelle majeure n'imposait la poursuite de son séjour en Suisse.
Le 21 juin 2018, A._ a recouru contre cette décision auprès du Tribunal cantonal du canton de Fribourg (ci-après: le Tribunal cantonal), concluant à son annulation et au renouvellement de son autorisation de séjour.
Par arrêt du 31 octobre 2019, le Tribunal cantonal a rejeté le recours. L'autorisation de séjour de A._ ne pouvait pas être renouvelée, car, d'une part, l'union conjugale avait duré moins de trois ans et, d'autre part, A._ ne pouvait pas se prévaloir de raisons personnelles majeures qui imposaient la poursuite de son séjour en Suisse. Au surplus, l'intéressé ne se trouvait pas dans un cas individuel d'extrême gravité justifiant qu'une nouvelle autorisation de séjour, indépendante du regroupement familial, lui soit octroyée.
3.
Agissant par la voie du recours en matière de droit public, déposé le 13 décembre 2019, A._ demande au Tribunal fédéral d'annuler l'arrêt du 31 octobre 2019 du Tribunal cantonal et de renvoyer la cause au Service cantonal pour qu'il prolonge son autorisation de séjour.
Il requiert l'effet suspensif et l'assistance judiciaire partielle (dispense du paiement des frais judiciaires).
Le Tribunal cantonal a transmis son dossier. Il n'a pas été ordonné d'échange d'écritures.
4.
Le recourant, qui ne conteste pas qu'il vit séparé d'une personne titulaire d'une autorisation d'établissement, se prévaut d'un droit à une autorisation de séjour sur la base de l'ancien art. 50 de la loi fédérale du 16 décembre 2005 sur les étrangers (LEtr; RO 2007 5437), intitulée, depuis le 1 er janvier 2019, loi fédérale sur les étrangers et l'intégration (LEI; RS 142.20). L'ancien art. 50 LEtr, dont la teneur est partiellement différente de l'actuel art. 50 LEI, et qui est applicable au présent litige (cf. art. 126 al. 1 LEI), fonde, à certaines conditions, un droit à l'octroi ou à la prolongation d'une autorisation de séjour. Dès lors qu'il n'est pas d'emblée exclu que ces conditions soient remplies en l'espèce, le recours échappe à la clause d'irrecevabilité de l'art. 83 let. c ch. 2 LTF, étant précisé que le point de savoir si les conditions posées par la loi sont effectivement réunies relève de l'examen au fond (cf. <ref-ruling> consid. 1.1 p. 332). La voie du recours en matière de droit public est donc ouverte.
Pour le surplus, le recours a été déposé en temps utile (art. 100 al. 1 LTF) et dans les formes requises (art. 42 LTF) par le recourant, qui a qualité pour recourir (cf. art. 89 al. 1 LTF). II convient donc d'entrer en matière.
5.
5.1. Saisi d'un recours, le Tribunal fédéral applique le droit d'office (art. 106 al. 1 LTF). Selon l'art. 106 al. 2 LTF toutefois, il n'examine la violation de droits fondamentaux que si ce grief a été invoqué et motivé, c'est-à-dire s'il a été expressément soulevé et exposé de façon claire et détaillée (cf. <ref-ruling> consid. 2.4 p. 368 et les arrêts cités).
5.2. Le Tribunal fédéral conduit son raisonnement juridique sur la base des faits constatés par l'autorité précédente (art. 105 al. 1 LTF). Selon l'art. 97 al. 1 LTF, le recours ne peut critiquer les constatations de fait que si les faits ont été établis de façon manifestement inexacte - notion qui correspond à celle d'arbitraire - ou en violation du droit au sens de l'art. 95 LTF et si la correction du vice est susceptible d'influer sur le sort de la cause. Le recourant doit le démontrer de manière conforme aux exigences de motivation de l'art. 106 al. 2 LTF (<ref-ruling> consid. 6 p. 358; <ref-ruling> consid. 1.6 p. 377). Par ailleurs, aucun fait nouveau ni preuve nouvelle ne peut être présenté à moins de résulter de la décision de l'autorité précédente (art. 99 al. 1 LTF). Il ne sera donc pas tenu compte de l'ordonnance pénale du 29 novembre 2019 que le Service cantonal a produite devant le Tribunal fédéral (interne: Act. 11), car il s'agit d'une pièce nouvelle irrecevable.
6. Le recourant se plaint d'arbitraire dans l'appréciation des preuves.
6.1. Lorsque le recourant s'en prend à l'appréciation des preuves et à l'établissement des faits, la décision n'est arbitraire que si le juge n'a manifestement pas compris le sens et la portée d'un moyen de preuve, s'il a omis, sans raison sérieuse, de tenir compte d'un moyen important propre à modifier la décision attaquée ou encore si, sur la base des éléments recueillis, il a procédé à des déductions insoutenables (cf. <ref-ruling> consid. 2.3 p. 266; <ref-ruling> consid. 4.2 p. 560).
6.2. Le recourant reproche d'abord aux juges précédents de n'avoir retenu aucun élément de preuve quant à la date de fin de l'union conjugale. Il ne dit toutefois rien des preuves qui auraient prétendument été omises. Son grief ne respecte ainsi pas les exigences de l'art. 106 al. 2 LTF, de sorte qu'il ne sera pas examiné plus avant.
Le recourant leur fait aussi grief d'avoir arbitrairement omis de tenir compte du fait qu'il avait été obligé de quitter le domicile conjugal et qu'il avait indiqué au Service cantonal qu'il souhaitait de son côté maintenir l'union conjugale, parce qu'il aimait son épouse. Or, ces éléments sont constatés dans l'arrêt attaqué. Le point de savoir s'ils sont pertinents pour juger de l'existence d'une union conjugale est une question de droit (sur ce point cf. infra consid 7.2).
Le recourant reproche finalement aux juges précédents de ne pas avoir pris en compte sa situation privée pour juger de l'exigibilité de son retour au Cameroun, alors qu'il n'y est pas allé depuis plus de dix ans et que la situation sociale qui règne dans ce pays est difficile. Or, ce grief a en réalité trait à l'appréciation juridique que l'instance précédente a effectuée pour conclure à l'inexistence de raisons personnelles majeures justifiant la poursuite du séjour du recourant en Suisse. Ce point relève ainsi également de l'application du droit (cf. infra consid. 7.3).
Au surplus, le recourant présente, dans son mémoire de recours, sa propre version des événements, du reste parfois accompagnée d'offres de preuve, comme il le ferait devant une juridiction d'appel, ce que n'est pas le Tribunal fédéral (cf. notamment arrêts 2C_922/2018 du 13 mai 2019 consid. 3; 2C_497/2011 du 15 mars 2012 consid. 3.2 non publié in <ref-ruling>). Ces faits ne seront partant pas pris en considération, dans la mesure où ils ne résultent pas déjà de l'arrêt entrepris (art. 105 al. 1 LTF).
6.3. Le Tribunal fédéral statuera donc exclusivement sur la base des faits constatés dans l'arrêt.
7.
Le litige porte sur le point de savoir si c'est à bon droit que le Tribunal cantonal a jugé que le recourant n'avait pas de droit à obtenir la prolongation de la durée de validité de son autorisation de séjour en vertu de l'ancien art. 50 LEtr.
7.1. Selon l'ancien art. 50 al. 1 LEtr, après dissolution de la famille, le droit du conjoint et des enfants à l'octroi d'une autorisation de séjour et à la prolongation de sa durée de validité en vertu des art. 42 et 43 subsiste dans les cas suivants: a. l'union conjugale a duré au moins trois ans et l'intégration est réussie; b. la poursuite du séjour en Suisse s'impose pour des raisons personnelles majeures. Selon l'art. 50 a. 2 LEtr, les raisons personnelles majeures visées à l'al. 1 let. b sont notamment données lorsque le conjoint est victime de violence conjugale, que le mariage a été conclu en violation de la libre volonté d'un des époux ou que la réintégration sociale dans le pays de provenance semble fortement compromise.
7.2. Dans l'arrêt attaqué, le Tribunal cantonal a d'abord retenu que le recourant ne pouvait pas se prévaloir de l'ancien art. 50 a. 1 let. a LEtr.
L'application de cette disposition suppose la réunion de deux conditions cumulatives, à savoir l'existence d'une union conjugale qui a duré au moins trois ans et une intégration réussie (<ref-ruling> consid. 4 p. 347).
S'agissant de la notion d'union conjugale, le Tribunal cantonal a correctement appliqué les principes que la jurisprudence a dégagés pour en dessiner les contours. Il a en particulier rappelé que cette notion supposait l'existence d'une relation conjugale effectivement vécue et une volonté réciproque des époux de vivre en union conjugale et que, partant, la seule existence d'un ménage commun n'impliquait pas forcément celle d'une communauté conjugale effective (cf. <ref-ruling> consid. 2 p. 231; <ref-ruling> consid. 3.1.2 p. 347 les références).
La question de la durée de l'union conjugale est une question de fait (arrêts 2C_861/2019 du 18 novembre 2019 consid. 5; 2C_277/2019 du 26 mars 2019 consid. 5.1; 2C_976/2012 du 11 février 2013 consid. 3.2).
En l'occurrence, les juges précédents ont retenu que, s'il était déjà douteux que l'union conjugale du recourant et de son épouse ait été maintenue au-delà du 30 juin 2017, il était en revanche indiscutable qu'elle avait définitivement pris fin le 28 mars 2018 au plus tard. Le fait que le recourant ait été autorisé par le juge à loger chez son épouse jusqu'au 30 avril 2018 n'était en effet pas relevant, puisque cette autorisation n'avait été accordée que parce que l'intéressé n'avait pas de logement avant le 1 er mai 2018.
Le recourant reproche aux juges précédents de ne pas avoir pris en compte sa volonté unilatérale de poursuivre l'union conjugale. Il perd de vue que l'union conjugale suppose une volonté réciproque des conjoints. Il ne fait au surplus valoir aucun grief de constatation arbitraire des faits. Il n'y a donc pas lieu de s'écarter du constat du Tribunal cantonal, selon lequel l'union conjugale a duré moins de trois ans (art. 105 al. 1 LTF).
Dans ces circonstances, le recourant ne peut pas se prévaloir d'une mauvaise application de l'ancien art. 50 al. 1 let. a LEtr, que son intégration ait été réussie ou non dans notre pays.
Au vu de ce qui précède, les juges précédents n'ont pas violé le droit fédéral en refusant de prolonger l'autorisation de séjour du recourant en vertu de l'ancien art. 50 al. 1 let. a LEtr.
7.3. Le recourant reproche aussi au Tribunal cantonal d'avoir nié que la poursuite de son séjour s'imposait pour des raisons personnelles majeures au sens de l'ancien art. 50 al. 1 let. b LEtr. La décision attaquée violerait le principe de la proportionnalité (art. 96 LEtr), car elle n'avait pas pris en compte son intégration réussie en Suisse ni son absence d'attaches dans son pays d'origine.
7.3.1. L'admission d'un cas de rigueur personnel au sens de l'ancien art. 50 al. 1 let. b LEtr survenant après la dissolution de la communauté conjugale suppose que, sur la base des circonstances d'espèce, les conséquences pour la vie privée et familiale de la personne étrangère liées à ses conditions de vie après la perte du droit de séjour découlant de la communauté conjugale (art. 42 al. 1 et 43 al. 1 LEtr) soient d'une intensité considérable (<ref-ruling> consid. 3.1 p. 395; <ref-ruling> consid. 3.2.3 p. 350). Comme il s'agit de cas de rigueur survenant à la suite de la dissolution de la famille, en relation avec l'autorisation de séjour découlant du mariage, les raisons qui ont conduit à sa dissolution revêtent par conséquent de l'importance (<ref-ruling> consid. 3.1 p. 395). Ainsi, l'existence de violences conjugales à l'égard du conjoint étranger peut notamment constituer une raison personnelle majeure justifiant la poursuite du séjour de celui-ci en Suisse (art. 50 al. 2 LEtr; art. 77 al. 2 de l'ordonnance du 24 octobre 2007 relative à l'admission, au séjour et à l'exercice d'une activité lucrative [OASA; RS 142.201]; <ref-ruling> consid. 5.3 p. 4). Le fait que l'étranger ne soit pas à l'origine de la rupture avec le conjoint ne constitue pas en soi une raison personnelle majeure (arrêts 2C_583/2019 du 18 juillet 2019 consid. 4.6; 2C_581/2017 du 20 septembre 2017 consid. 5.4).
Pour constituer une raison personnelle majeure, la réintégration sociale dans le pays de provenance doit être, selon l'ancien art. 50 al. 2 LEtr, " fortement compromise ". La question n'est donc pas de savoir s'il est plus facile pour la personne concernée de vivre en Suisse, mais uniquement d'examiner si, en cas de retour dans le pays d'origine, les conditions de la réintégration sociale, au regard de la situation personnelle, professionnelle et familiale de l'étranger, seraient gravement compromises (<ref-ruling> consid. 5.3 p. 4; arrêt 2C_873/2013 du 25 mars 2014 consid. 4.1 et les références, non publié in <ref-ruling>). Le fait qu'un étranger puisse se prévaloir d'une intégration réussie ne suffit pas en soi pour remplir les conditions de l'autorisation de l'art. 50 al. 1 let. b LEtr (arrêt 2C_777/2015 du 26 mai 2016 consid. 5.1 non publié in <ref-ruling>).
7.3.2. En l'occurrence, les juges précédents ont retenu que rien n'indiquait que le retour du recourant en France ne serait pas envisageable, puisqu'avant de venir en Suisse, il avait vécu dans ce pays au bénéfice d'un titre de séjour, en tant que père d'un enfant mineur de nationalité française. Quoi qu'il en soit, sa réintégration au Cameroun, où il avait vécu jusqu'à ses 28 ans et où résidait toute sa famille, dont un autre de ses enfants, ne présenterait pas de difficultés insurmontables.
Le recourant ne conteste pas le constat des juges précédents selon lequel rien n'indique qu'un retour en France ne serait pas envisageable pour lui. Dans ces circonstances, on peut se demander si les griefs qu'il formule pour contester qu'un retour au Cameroun ne lui poserait pas des difficultés insurmontables sont recevables. Ce point peut toutefois rester indécis, puisque ces griefs doivent de toute manière être rejetés, comme exposé ci-après.
Le recourant reproche d'abord au Tribunal cantonal d'avoir violé le droit fédéral et le principe de la proportionnalité en ne tenant pas compte de son intérêt privé à rester en Suisse, alors qu'il ne s'était plus rendu au Cameroun depuis 10 ans, que ce pays connaissait une situation sociale difficile, qu'il n'avait plus de contacts avec sa famille sur place et qu'il pouvait se prévaloir d'une intégration réussie en Suisse.
Ces éléments, que le recourant invoque du reste de manière largement appellatoire, sont propres à montrer qu'il lui serait plus difficile de vivre au Cameroun qu'en Suisse, mais pas qu'un départ de Suisse représenterait un déracinement excessif au point de constituer une raison personnelle majeure au sens de l'ancien art. 50 al. 1 let. b et al. 2 LEtr.
Le recourant fait aussi grief aux juges précédents de ne pas avoir tenu compte des raisons qui ont conduit à la dissolution de l'union conjugale, soit, en l'occurrence, le fait que son épouse avait agi sur un coup de tête pour se débarrasser de lui, qu'il avait été victime de pressions psychologiques de sa part et été accusé injustement de violences conjugales à son endroit. Cette argumentation ne repose toutefois sur aucun fait constaté dans l'arrêt attaqué. Au surplus, le recourant perd de vue que tenir compte des raisons qui ont conduit à la dissolution de l'union conjugale a avant tout pour but de faire en sorte que l'existence de violences conjugales puissent constituer une raison personnelle majeure. Or, l'arrêt attaqué ne constate pas que le recourant ait été victime de telles violences.
8.
Les considérants qui précèdent conduisent au rejet du recours.
Le recours étant d'emblée dénué de chances de succès, la demande d'assistance judiciaire est rejetée (cf. art. 64 LTF). Succombant, le recourant doit supporter les frais de la procédure fédérale (art. 66 al. 1 LTF). Il n'est pas alloué de dépens (art. 68 al. 1 et 3 LTF).


Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La requête d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'000 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué au recourant, au Tribunal cantonal de l'Etat de Fribourg, Ie Cour administrative, au Service de la population et des migrants du canton de Fribourg et au Secrétariat d'Etat aux migrations.
Lausanne, le 6 février 2020
Au nom de la IIe Cour de droit public
du Tribunal fédéral suisse
Le Président : Seiler
La Greffière : Vuadens