Faits: A. Ressortissante de la République démocratique du Congo (ci-après: le Congo) née en 1978, X._ est entrée illégalement en Suisse le 14 janvier 2001 et a déposé une demande d'asile qui a été rejetée le 8 mars 2001. Le renvoi prononcé à son encontre est entré en force en mai 2001. B. X._ a fait l'objet de différentes condamnations. - Le 27 août 2003, elle a été condamnée dans le canton de Bâle-Ville à 15 jours de prison et 500 fr. d'amende pour entrée illégale en Suisse, sans visa ni documents de voyage valables et malgré un renvoi entré en force. - En septembre 2005, elle a été condamnée en France à 3 mois de prison après être entrée dans ce pays sous une fausse identité pour y déposer une demande d'asile. - A deux reprises, les 2 novembre 2006 et 29 juin 2007, elle a été condamnée dans le canton de Soleure pour avoir circulé sans titre de transport valable. C. Le 31 mai 2007, X._ a donné naissance à un fils, Y._, qui a été reconnu, le 3 décembre 2007, par Z._, ressortissant suisse d'origine congolaise, de sorte que cet enfant a acquis la nationalité suisse. Le 29 janvier 2008, les parents de Y._ ont signé une convention d'entretien prévoyant que le droit de garde et l'autorité parentale soient attribués à la mère et que le père verse une contribution mensuelle d'entretien de 357 fr. à quoi s'ajouteraient les allocations pour enfant. Le 16 février 2009, ils ont signé une convention réglant le droit de visite du père. D. Le 11 décembre 2007, X._ a requis l'octroi d'une autorisation de séjour au titre du regroupement familial. Par décision du 27 mars 2008, le Service des migrations du canton de Berne (ci-après: le Service cantonal) a rejeté la demande. Le 15 janvier 2009, la Direction de la police et des affaires militaires du canton de Berne (ci-après: la Direction cantonale) a rejeté le recours de X._ contre la décision précitée du 27 mars 2008. E. X._ a alors porté sa cause devant la Cour des affaires de langue française du Tribunal administratif du canton de Berne (ci-après: le Tribunal administratif), qui a rejeté le recours par jugement du 10 juin 2009. Dans le cadre de la pesée des intérêts en présence, le Tribunal administratif a notamment retenu que l'enfant Y._ et son père n'entretenaient pas une relation particulièrement forte sur les plans affectif et économique. Il a aussi considéré que le comportement de X._ était loin d'être irréprochable. F. A l'encontre du jugement du Tribunal administratif du 10 juin 2009, X._ a déposé au Tribunal fédéral un recours en matière de droit public, subsidiairement un recours constitutionnel subsidiaire. Elle conclut, sous suite de frais et dépens, à l'annulation du jugement attaqué, à l'exception de l'assistance judiciaire qui lui a été accordée. Elle conclut aussi à l'octroi en sa faveur d'une autorisation de séjour en Suisse (permis B), subsidiairement, au renvoi du dossier "à l'autorité cantonale" pour nouvelle décision lui accordant une autorisation de séjour en Suisse (permis B) et, plus subsidiairement, au renvoi du dossier au Tribunal administratif pour complément d'instruction. La recourante se plaint de violation de son droit d'être entendue et d'arbitraire; elle invoque le droit au respect de sa vie privée et familiale. Elle requiert l'assistance judiciaire complète, son mandataire étant désigné comme avocat d'office. Le Tribunal administratif se réfère au jugement entrepris. La Direction cantonale conclut au rejet du recours, sous suite de frais. Le Service cantonal a indiqué qu'il rejoignait la prise de position de la Direction cantonale. L'Office fédéral des migrations propose le rejet du recours.